You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
61 lines
2.0 KiB
/** |
|
* @author Toru Nagashima |
|
* See LICENSE file in root directory for full license. |
|
*/ |
|
"use strict" |
|
|
|
const check = require("../util/check-restricted") |
|
const visit = require("../util/visit-import") |
|
|
|
module.exports = { |
|
meta: { |
|
type: "suggestion", |
|
docs: { |
|
description: "disallow specified modules when loaded by `require`", |
|
category: "Stylistic Issues", |
|
recommended: false, |
|
url: |
|
"https://github.com/mysticatea/eslint-plugin-node/blob/v11.1.0/docs/rules/no-restricted-import.md", |
|
}, |
|
fixable: null, |
|
schema: [ |
|
{ |
|
type: "array", |
|
items: { |
|
anyOf: [ |
|
{ type: "string" }, |
|
{ |
|
type: "object", |
|
properties: { |
|
name: { |
|
anyOf: [ |
|
{ type: "string" }, |
|
{ |
|
type: "array", |
|
items: { type: "string" }, |
|
additionalItems: false, |
|
}, |
|
], |
|
}, |
|
message: { type: "string" }, |
|
}, |
|
additionalProperties: false, |
|
required: ["name"], |
|
}, |
|
], |
|
}, |
|
additionalItems: false, |
|
}, |
|
], |
|
messages: { |
|
restricted: |
|
// eslint-disable-next-line @mysticatea/eslint-plugin/report-message-format |
|
"'{{name}}' module is restricted from being used.{{customMessage}}", |
|
}, |
|
}, |
|
|
|
create(context) { |
|
const opts = { includeCore: true } |
|
return visit(context, opts, targets => check(context, targets)) |
|
}, |
|
}
|
|
|