Skip to content

Commit

Permalink
chore: refactor a few rules
Browse files Browse the repository at this point in the history
  • Loading branch information
aladdin-add committed Aug 9, 2022
1 parent c9138e5 commit d879ccb
Show file tree
Hide file tree
Showing 17 changed files with 67 additions and 40 deletions.
6 changes: 2 additions & 4 deletions lib/rules/no-extraneous-import.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkExtraneous = require("../util/check-extraneous")
const { checkExtraneous, messages } = require("../util/check-extraneous")
const getAllowModules = require("../util/get-allow-modules")
const getConvertPath = require("../util/get-convert-path")
const getResolvePaths = require("../util/get-resolve-paths")
Expand Down Expand Up @@ -32,9 +32,7 @@ module.exports = {
additionalProperties: false,
},
],
messages: {
extraneous: '"{{moduleName}}" is extraneous.',
}
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
6 changes: 2 additions & 4 deletions lib/rules/no-extraneous-require.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkExtraneous = require("../util/check-extraneous")
const { checkExtraneous, messages } = require("../util/check-extraneous")
const getAllowModules = require("../util/get-allow-modules")
const getConvertPath = require("../util/get-convert-path")
const getResolvePaths = require("../util/get-resolve-paths")
Expand Down Expand Up @@ -34,9 +34,7 @@ module.exports = {
additionalProperties: false,
},
],
messages: {
"extraneous": '"{{moduleName}}" is extraneous.'
}
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
3 changes: 2 additions & 1 deletion lib/rules/no-missing-import.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkExistence = require("../util/check-existence")
const { checkExistence, messages } = require("../util/check-existence")
const getAllowModules = require("../util/get-allow-modules")
const getResolvePaths = require("../util/get-resolve-paths")
const visitImport = require("../util/visit-import")
Expand All @@ -30,6 +30,7 @@ module.exports = {
additionalProperties: false,
},
],
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
3 changes: 2 additions & 1 deletion lib/rules/no-missing-require.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkExistence = require("../util/check-existence")
const { checkExistence, messages } = require("../util/check-existence")
const getAllowModules = require("../util/get-allow-modules")
const getResolvePaths = require("../util/get-resolve-paths")
const getTryExtensions = require("../util/get-try-extensions")
Expand Down Expand Up @@ -32,6 +32,7 @@ module.exports = {
additionalProperties: false,
},
],
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
11 changes: 5 additions & 6 deletions lib/rules/no-restricted-import.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const check = require("../util/check-restricted")
const { checkForRestriction, messages } = require("../util/check-restricted")
const visit = require("../util/visit-import")

module.exports = {
Expand Down Expand Up @@ -47,14 +47,13 @@ module.exports = {
additionalItems: false,
},
],
messages: {
restricted:
"'{{name}}' module is restricted from being used.{{customMessage}}",
},
messages,
},

create(context) {
const opts = { includeCore: true }
return visit(context, opts, targets => check(context, targets))
return visit(context, opts, targets =>
checkForRestriction(context, targets)
)
},
}
11 changes: 5 additions & 6 deletions lib/rules/no-restricted-require.js
Expand Up @@ -5,7 +5,7 @@
*/
"use strict"

const check = require("../util/check-restricted")
const { checkForRestriction, messages } = require("../util/check-restricted")
const visit = require("../util/visit-require")

module.exports = {
Expand Down Expand Up @@ -47,14 +47,13 @@ module.exports = {
additionalItems: false,
},
],
messages: {
restricted:
"'{{name}}' module is restricted from being used.{{customMessage}}",
},
messages,
},

create(context) {
const opts = { includeCore: true }
return visit(context, opts, targets => check(context, targets))
return visit(context, opts, targets =>
checkForRestriction(context, targets)
)
},
}
3 changes: 2 additions & 1 deletion lib/rules/no-unpublished-import.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkPublish = require("../util/check-publish")
const { checkPublish, messages } = require("../util/check-publish")
const getAllowModules = require("../util/get-allow-modules")
const getConvertPath = require("../util/get-convert-path")
const getResolvePaths = require("../util/get-resolve-paths")
Expand Down Expand Up @@ -32,6 +32,7 @@ module.exports = {
additionalProperties: false,
},
],
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
3 changes: 2 additions & 1 deletion lib/rules/no-unpublished-require.js
Expand Up @@ -4,7 +4,7 @@
*/
"use strict"

const checkPublish = require("../util/check-publish")
const { checkPublish, messages } = require("../util/check-publish")
const getAllowModules = require("../util/get-allow-modules")
const getConvertPath = require("../util/get-convert-path")
const getResolvePaths = require("../util/get-resolve-paths")
Expand Down Expand Up @@ -34,6 +34,7 @@ module.exports = {
additionalProperties: false,
},
],
messages,
},
create(context) {
const filePath = context.getFilename()
Expand Down
10 changes: 5 additions & 5 deletions lib/rules/no-unsupported-features/es-builtins.js
Expand Up @@ -5,7 +5,10 @@
"use strict"

const { READ } = require("eslint-utils")
const checkUnsupportedBuiltins = require("../../util/check-unsupported-builtins")
const {
checkUnsupportedBuiltins,
messages,
} = require("../../util/check-unsupported-builtins")
const enumeratePropertyNames = require("../../util/enumerate-property-names")

const trackMap = {
Expand Down Expand Up @@ -165,10 +168,7 @@ module.exports = {
additionalProperties: false,
},
],
messages: {
unsupported:
"The '{{name}}' is not supported until Node.js {{supported}}. The configured version range is '{{version}}'.",
},
messages,
},
create(context) {
return {
Expand Down
10 changes: 5 additions & 5 deletions lib/rules/no-unsupported-features/node-builtins.js
Expand Up @@ -5,7 +5,10 @@
"use strict"

const { READ } = require("eslint-utils")
const checkUnsupportedBuiltins = require("../../util/check-unsupported-builtins")
const {
checkUnsupportedBuiltins,
messages,
} = require("../../util/check-unsupported-builtins")
const enumeratePropertyNames = require("../../util/enumerate-property-names")

const trackMap = {
Expand Down Expand Up @@ -400,10 +403,7 @@ module.exports = {
additionalProperties: false,
},
],
messages: {
unsupported:
"The '{{name}}' is not supported until Node.js {{supported}}. The configured version range is '{{version}}'.",
},
messages,
},
create(context) {
return {
Expand Down
1 change: 1 addition & 0 deletions lib/rules/process-exit-as-throw.js
@@ -1,3 +1,4 @@
/* eslint-disable eslint-plugin/prefer-message-ids */
/**
* @author Toru Nagashima
* See LICENSE file in root directory for full license.
Expand Down
8 changes: 6 additions & 2 deletions lib/util/check-existence.js
Expand Up @@ -20,7 +20,7 @@ const mapTypescriptExtension = require("../util/map-typescript-extension")
* @param {ImportTarget[]} targets - A list of target information to check.
* @returns {void}
*/
module.exports = function checkExistence(context, targets) {
exports.checkExistence = function checkExistence(context, targets) {
const allowed = new Set(getAllowModules(context))

for (const target of targets) {
Expand All @@ -47,9 +47,13 @@ module.exports = function checkExistence(context, targets) {
context.report({
node: target.node,
loc: target.node.loc,
message: '"{{name}}" is not found.',
messageId: "notFound",
data: target,
})
}
}
}

exports.messages = {
notFound: '"{{name}}" is not found.',
}
6 changes: 5 additions & 1 deletion lib/util/check-extraneous.js
Expand Up @@ -17,7 +17,7 @@ const getPackageJson = require("./get-package-json")
* @param {ImportTarget[]} targets - A list of target information to check.
* @returns {void}
*/
module.exports = function checkForExtraneous(context, filePath, targets) {
exports.checkExtraneous = function checkExtraneous(context, filePath, targets) {
const packageInfo = getPackageJson(filePath)
if (!packageInfo) {
return
Expand Down Expand Up @@ -50,3 +50,7 @@ module.exports = function checkForExtraneous(context, filePath, targets) {
}
}
}

exports.messages = {
extraneous: '"{{moduleName}}" is extraneous.',
}
6 changes: 5 additions & 1 deletion lib/util/check-publish.js
Expand Up @@ -20,7 +20,7 @@ const getPackageJson = require("./get-package-json")
* @param {ImportTarget[]} targets - A list of target information to check.
* @returns {void}
*/
module.exports = function checkForPublish(context, filePath, targets) {
exports.checkPublish = function checkPublish(context, filePath, targets) {
const packageInfo = getPackageJson(filePath)
if (!packageInfo) {
return
Expand Down Expand Up @@ -69,3 +69,7 @@ module.exports = function checkForPublish(context, filePath, targets) {
}
}
}

exports.messages = {
notPublished: '"{{name}}" is not published.',
}
7 changes: 6 additions & 1 deletion lib/util/check-restricted.js
Expand Up @@ -90,7 +90,7 @@ function createRestrictions(defs) {
* @param {ImportTarget[]} targets - A list of target information to check.
* @returns {void}
*/
module.exports = function checkForRestriction(context, targets) {
exports.checkForRestriction = function checkForRestriction(context, targets) {
const restrictions = createRestrictions(context.options[0])

for (const target of targets) {
Expand All @@ -107,3 +107,8 @@ module.exports = function checkForRestriction(context, targets) {
}
}
}

exports.messages = {
restricted:
"'{{name}}' module is restricted from being used.{{customMessage}}",
}
10 changes: 9 additions & 1 deletion lib/util/check-unsupported-builtins.js
Expand Up @@ -80,7 +80,10 @@ function supportedVersionToString({ backported, supported }) {
* @param {{modules:object,globals:object}} trackMap The map for APIs to report.
* @returns {void}
*/
module.exports = function checkUnsupportedBuiltins(context, trackMap) {
module.exports.checkUnsupportedBuiltins = function checkUnsupportedBuiltins(
context,
trackMap
) {
const options = parseOptions(context)
const tracker = new ReferenceTracker(context.getScope(), { mode: "legacy" })
const references = [
Expand All @@ -106,3 +109,8 @@ module.exports = function checkUnsupportedBuiltins(context, trackMap) {
}
}
}

exports.messages = {
unsupported:
"The '{{name}}' is not supported until Node.js {{supported}}. The configured version range is '{{version}}'.",
}
3 changes: 3 additions & 0 deletions tests/lib/configs/recommended.js
Expand Up @@ -71,6 +71,7 @@ describe("node/recommended config", () => {
endColumn: 13,
endLine: 1,
line: 1,
messageId: "notFound",
message: '"foo" is not found.',
nodeType: "Literal",
ruleId: "n/no-missing-import",
Expand Down Expand Up @@ -109,6 +110,7 @@ describe("node/recommended config", () => {
endColumn: 13,
endLine: 1,
line: 1,
messageId: "notFound",
message: '"foo" is not found.',
nodeType: "Literal",
ruleId: "n/no-missing-import",
Expand Down Expand Up @@ -146,6 +148,7 @@ describe("node/recommended config", () => {
endColumn: 13,
endLine: 1,
line: 1,
messageId: "notFound",
message: '"foo" is not found.',
nodeType: "Literal",
ruleId: "n/no-missing-import",
Expand Down

0 comments on commit d879ccb

Please sign in to comment.