From 8f0725b8d1f79035ead0411b279af8de51c07c5e Mon Sep 17 00:00:00 2001 From: Zihong Qu <50311274+ZihongQu@users.noreply.github.com> Date: Fri, 31 May 2024 06:25:02 +0930 Subject: [PATCH] tools: move webcrypto into no-restricted-properties Since eslint fixed https://github.com/eslint/eslint/issues/16412 and we are on eslint v8.57.0 so that we can take advantage of no-restricted-properties rule for webcrypto. PR-URL: https://github.com/nodejs/node/pull/53023 Reviewed-By: Antoine du Hamel Reviewed-By: Luigi Pinca --- eslint.config.mjs | 6 ++++-- test/eslint.config_partial.mjs | 2 -- test/parallel/test-global-webcrypto-classes.js | 1 - test/parallel/test-global-webcrypto.js | 2 +- tools/eslint.config_utils.mjs | 9 --------- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 8cafaa35a9bfbf..e9ac911a666fd4 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -9,7 +9,6 @@ import toolsConfig from './tools/eslint.config_partial.mjs'; import { noRestrictedSyntaxCommonAll, noRestrictedSyntaxCommonLib, - noRestrictedSyntaxCommonTest, requireEslintTool, resolveEslintTool, } from './tools/eslint.config_utils.mjs'; @@ -191,12 +190,15 @@ export default [ property: '__defineSetter__', message: '__defineSetter__ is deprecated.', }, + { + property: 'webcrypto', + message: 'Use `globalThis.crypto`.', + }, ], 'no-restricted-syntax': [ 'error', ...noRestrictedSyntaxCommonAll, ...noRestrictedSyntaxCommonLib, - ...noRestrictedSyntaxCommonTest, ], 'no-self-compare': 'error', 'no-template-curly-in-string': 'error', diff --git a/test/eslint.config_partial.mjs b/test/eslint.config_partial.mjs index 54646463f76204..b1db96b20b8a5a 100644 --- a/test/eslint.config_partial.mjs +++ b/test/eslint.config_partial.mjs @@ -2,7 +2,6 @@ import { noRestrictedSyntaxCommonAll, - noRestrictedSyntaxCommonTest, requireEslintTool, } from '../tools/eslint.config_utils.mjs'; @@ -26,7 +25,6 @@ export default [ 'no-restricted-syntax': [ 'error', ...noRestrictedSyntaxCommonAll, - ...noRestrictedSyntaxCommonTest, { selector: "CallExpression:matches([callee.name='deepStrictEqual'], [callee.property.name='deepStrictEqual']):matches([arguments.1.type='Literal']:not([arguments.1.regex]), [arguments.1.type='Identifier'][arguments.1.name='undefined'])", message: 'Use strictEqual instead of deepStrictEqual for literals or undefined.', diff --git a/test/parallel/test-global-webcrypto-classes.js b/test/parallel/test-global-webcrypto-classes.js index 2b929680019b1c..ae1a846fa6a591 100644 --- a/test/parallel/test-global-webcrypto-classes.js +++ b/test/parallel/test-global-webcrypto-classes.js @@ -7,7 +7,6 @@ if (!common.hasCrypto) const assert = require('assert'); -/* eslint-disable no-restricted-syntax */ const webcrypto = require('internal/crypto/webcrypto'); assert.strictEqual(Crypto, webcrypto.Crypto); assert.strictEqual(CryptoKey, webcrypto.CryptoKey); diff --git a/test/parallel/test-global-webcrypto.js b/test/parallel/test-global-webcrypto.js index 2afb0ac55886d4..9eb18ca9d1cd29 100644 --- a/test/parallel/test-global-webcrypto.js +++ b/test/parallel/test-global-webcrypto.js @@ -7,7 +7,7 @@ if (!common.hasCrypto) const assert = require('assert'); const crypto = require('crypto'); -/* eslint-disable no-restricted-syntax */ +/* eslint-disable no-restricted-properties */ assert.strictEqual(globalThis.crypto, crypto.webcrypto); assert.strictEqual(Crypto, crypto.webcrypto.constructor); assert.strictEqual(SubtleCrypto, crypto.webcrypto.subtle.constructor); diff --git a/tools/eslint.config_utils.mjs b/tools/eslint.config_utils.mjs index 9109acfa3cd949..aab2cac4c32c95 100644 --- a/tools/eslint.config_utils.mjs +++ b/tools/eslint.config_utils.mjs @@ -24,12 +24,3 @@ export const noRestrictedSyntaxCommonLib = [ message: '`setTimeout()` must be invoked with at least two arguments.', }, ]; - -export const noRestrictedSyntaxCommonTest = [ - { - // TODO(@panva): move this to no-restricted-properties - // when https://github.com/eslint/eslint/issues/16412 is fixed. - selector: "Identifier[name='webcrypto']", - message: 'Use `globalThis.crypto`.', - }, -];