diff --git a/packages/eslint-config-sdk/src/index.js b/packages/eslint-config-sdk/src/index.js index 593f47be1696..b93cc63508df 100644 --- a/packages/eslint-config-sdk/src/index.js +++ b/packages/eslint-config-sdk/src/index.js @@ -143,8 +143,6 @@ module.exports = { }, ], - // We want to prevent async await & optional chaining usage in our files to prevent uncessary bundle size. Turned off in tests. - '@sentry-internal/sdk/no-async-await': 'error', '@sentry-internal/sdk/no-optional-chaining': 'error', // JSDOC comments are required for classes and methods. As we have a public facing codebase, documentation, @@ -178,7 +176,6 @@ module.exports = { '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-empty-function': 'off', - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, }, diff --git a/packages/eslint-plugin-sdk/src/index.js b/packages/eslint-plugin-sdk/src/index.js index 2dc7b745120b..8b94bbe4705b 100644 --- a/packages/eslint-plugin-sdk/src/index.js +++ b/packages/eslint-plugin-sdk/src/index.js @@ -10,7 +10,6 @@ module.exports = { rules: { - 'no-async-await': require('./rules/no-async-await'), 'no-optional-chaining': require('./rules/no-optional-chaining'), 'no-eq-empty': require('./rules/no-eq-empty'), }, diff --git a/packages/eslint-plugin-sdk/src/rules/no-async-await.js b/packages/eslint-plugin-sdk/src/rules/no-async-await.js deleted file mode 100644 index b4fe4733085a..000000000000 --- a/packages/eslint-plugin-sdk/src/rules/no-async-await.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @fileoverview Rule to disallow using async await - * @author Abhijeet Prasad - */ -'use strict'; - -// ------------------------------------------------------------------------------ -// Rule Definition -// ------------------------------------------------------------------------------ - -module.exports = { - meta: { - type: 'problem', - docs: { - description: 'disallow usage of async await', - category: 'Best Practices', - recommended: true, - }, - fixable: null, - schema: [], - }, - create: function (context) { - // variables should be defined here - - // ---------------------------------------------------------------------- - // Helpers - // ---------------------------------------------------------------------- - - // any helper functions should go here or else delete this section - - // ---------------------------------------------------------------------- - // Public - // ---------------------------------------------------------------------- - - return { - FunctionDeclaration(node) { - if (node.async) { - context.report({ - node, - message: - 'Using async-await can add a lot to bundle size. Please do not use it outside of tests, use Promises instead', - }); - } - }, - - ArrowFunctionExpression(node) { - if (node.async) { - context.report({ - node, - message: - 'Using async-await can add a lot to bundle size. Please do not use it outside of tests, use Promises instead', - }); - } - }, - }; - }, -}; diff --git a/packages/eslint-plugin-sdk/test/lib/rules/no-async-await.js b/packages/eslint-plugin-sdk/test/lib/rules/no-async-await.js deleted file mode 100644 index 90300122f471..000000000000 --- a/packages/eslint-plugin-sdk/test/lib/rules/no-async-await.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @fileoverview Rule to disallow using async await - * @author Abhijeet Prasad - */ -'use strict'; - -// ------------------------------------------------------------------------------ -// Requirements -// ------------------------------------------------------------------------------ - -const RuleTester = require('eslint').RuleTester; - -const rule = require('../../../src/rules/no-async-await'); - -// ------------------------------------------------------------------------------ -// Tests -// ------------------------------------------------------------------------------ - -RuleTester.setDefaultConfig({ - parserOptions: { - ecmaVersion: 8, - }, -}); -const ruleTester = new RuleTester(); - -ruleTester.run('no-async-await', rule, { - valid: [], - invalid: [ - { - code: 'async function hello() { await new Promise(); };', - errors: [ - { - message: - 'Using async-await can add a lot to bundle size. Please do not use it outside of tests, use Promises instead', - type: 'FunctionDeclaration', - }, - ], - }, - { - code: 'const hello = async () => { await new Promise(); };', - errors: [ - { - message: - 'Using async-await can add a lot to bundle size. Please do not use it outside of tests, use Promises instead', - type: 'ArrowFunctionExpression', - }, - ], - }, - ], -}); diff --git a/packages/nextjs/.eslintrc.js b/packages/nextjs/.eslintrc.js index feca51e00112..b6f6b1b9938c 100644 --- a/packages/nextjs/.eslintrc.js +++ b/packages/nextjs/.eslintrc.js @@ -9,7 +9,6 @@ module.exports = { ignorePatterns: ['test/integration/**'], extends: ['../../.eslintrc.js'], rules: { - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, overrides: [ diff --git a/packages/node/.eslintrc.js b/packages/node/.eslintrc.js index f1dd86468e11..9899ea1b73d8 100644 --- a/packages/node/.eslintrc.js +++ b/packages/node/.eslintrc.js @@ -4,7 +4,6 @@ module.exports = { }, extends: ['../../.eslintrc.js'], rules: { - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, }; diff --git a/packages/opentelemetry-node/.eslintrc.js b/packages/opentelemetry-node/.eslintrc.js index f1dd86468e11..9899ea1b73d8 100644 --- a/packages/opentelemetry-node/.eslintrc.js +++ b/packages/opentelemetry-node/.eslintrc.js @@ -4,7 +4,6 @@ module.exports = { }, extends: ['../../.eslintrc.js'], rules: { - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, }; diff --git a/packages/remix/.eslintrc.js b/packages/remix/.eslintrc.js index f42e5b96cbf0..4195984e1745 100644 --- a/packages/remix/.eslintrc.js +++ b/packages/remix/.eslintrc.js @@ -9,7 +9,6 @@ module.exports = { ignorePatterns: ['playwright.config.ts', 'test/integration/**'], extends: ['../../.eslintrc.js'], rules: { - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, overrides: [ diff --git a/packages/replay/.eslintrc.js b/packages/replay/.eslintrc.js index 85d8dbf13a1e..bb645aac9ed1 100644 --- a/packages/replay/.eslintrc.js +++ b/packages/replay/.eslintrc.js @@ -20,13 +20,6 @@ module.exports = { sourceType: 'module', }, }, - { - files: ['*.ts', '*.tsx', '*.d.ts'], - rules: { - // Since we target only es6 here, we can leave this off - '@sentry-internal/sdk/no-async-await': 'off', - }, - }, { files: ['jest.setup.ts', 'jest.config.ts'], parserOptions: { diff --git a/packages/serverless/.eslintrc.js b/packages/serverless/.eslintrc.js index ddc5fe29c131..99fcba0976da 100644 --- a/packages/serverless/.eslintrc.js +++ b/packages/serverless/.eslintrc.js @@ -4,7 +4,6 @@ module.exports = { }, extends: ['../../.eslintrc.js'], rules: { - '@sentry-internal/sdk/no-async-await': 'off', '@sentry-internal/sdk/no-optional-chaining': 'off', }, overrides: [ diff --git a/packages/utils/src/buildPolyfills/_asyncNullishCoalesce.ts b/packages/utils/src/buildPolyfills/_asyncNullishCoalesce.ts index c1b075ee5222..6030dae0d939 100644 --- a/packages/utils/src/buildPolyfills/_asyncNullishCoalesce.ts +++ b/packages/utils/src/buildPolyfills/_asyncNullishCoalesce.ts @@ -15,7 +15,6 @@ import { _nullishCoalesce } from './_nullishCoalesce'; * @param rhsFn A function returning the value of the expression to the right of the `??` * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value */ -// eslint-disable-next-line @sentry-internal/sdk/no-async-await export async function _asyncNullishCoalesce(lhs: unknown, rhsFn: () => unknown): Promise { return _nullishCoalesce(lhs, rhsFn); } diff --git a/packages/utils/src/buildPolyfills/_asyncOptionalChain.ts b/packages/utils/src/buildPolyfills/_asyncOptionalChain.ts index 71c0382451b5..1d939833b9bd 100644 --- a/packages/utils/src/buildPolyfills/_asyncOptionalChain.ts +++ b/packages/utils/src/buildPolyfills/_asyncOptionalChain.ts @@ -10,7 +10,6 @@ import type { GenericFunction } from './types'; * @param ops Array result of expression conversion * @returns The value of the expression */ -// eslint-disable-next-line @sentry-internal/sdk/no-async-await export async function _asyncOptionalChain(ops: unknown[]): Promise { let lastAccessLHS: unknown = undefined; let value = ops[0]; diff --git a/packages/utils/src/buildPolyfills/_asyncOptionalChainDelete.ts b/packages/utils/src/buildPolyfills/_asyncOptionalChainDelete.ts index bf0260337919..ea84435db75e 100644 --- a/packages/utils/src/buildPolyfills/_asyncOptionalChainDelete.ts +++ b/packages/utils/src/buildPolyfills/_asyncOptionalChainDelete.ts @@ -12,7 +12,6 @@ import { _asyncOptionalChain } from './_asyncOptionalChain'; * property (one which can't be deleted or turned into an accessor, and whose enumerability can't be changed), in which * case `false`. */ -// eslint-disable-next-line @sentry-internal/sdk/no-async-await export async function _asyncOptionalChainDelete(ops: unknown[]): Promise { const result = (await _asyncOptionalChain(ops)) as Promise; // If `result` is `null`, it means we didn't get to the end of the chain and so nothing was deleted (in which case,