From d83bc8e214e3ff59fb20750e84946135a416daf3 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Thu, 28 Mar 2019 12:11:24 +1100 Subject: [PATCH] feat(eslint-plugin) improve schema extension technique --- .../src/rules/no-magic-numbers.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-magic-numbers.ts b/packages/eslint-plugin/src/rules/no-magic-numbers.ts index 849bcf57bbb4..9054cfcaac32 100644 --- a/packages/eslint-plugin/src/rules/no-magic-numbers.ts +++ b/packages/eslint-plugin/src/rules/no-magic-numbers.ts @@ -11,13 +11,7 @@ import { JSONSchema4 } from 'json-schema'; type Options = util.InferOptionsTypeFromRule; type MessageIds = util.InferMessageIdsTypeFromRule; -// Extend base schema with additional property to ignore TS numeric literal types -const properties = { - ...(baseRule.meta.schema as JSONSchema4[])[0].properties, - ignoreNumericLiteralTypes: { - type: 'boolean', - }, -}; +const baseRuleSchema = (baseRule.meta.schema as JSONSchema4[])[0]; export default util.createRule({ name: 'no-magic-numbers', @@ -28,7 +22,16 @@ export default util.createRule({ category: 'Best Practices', recommended: false, }, - schema: { ...baseRule.meta.schema, ...properties }, + // Extend base schema with additional property to ignore TS numeric literal types + schema: [{ + ...baseRuleSchema, + properties: { + ...baseRuleSchema.properties, + ignoreNumericLiteralTypes: { + type: 'boolean', + }, + }, + }], messages: baseRule.meta.messages, }, defaultOptions: [