Files
NapCatQQ/.pnpm-store/v3/files/39/aa7d6e9f92296f1de391bd0812e11bf5469b0e94072524f784197a0d0ea4ef33c6ee57131b9e4a59966cc795ad5f1b542358aeaf3ebe88dd99295836da9975
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

48 lines
1.5 KiB
Plaintext

import { importType, createRule, moduleVisitor } from '../utils/index.js';
export default createRule({
name: 'no-nodejs-modules',
meta: {
type: 'suggestion',
docs: {
category: 'Module systems',
description: 'Forbid Node.js builtin modules.',
},
schema: [
{
type: 'object',
properties: {
allow: {
type: 'array',
uniqueItems: true,
items: {
type: 'string',
},
},
},
additionalProperties: false,
},
],
messages: {
builtin: 'Do not import Node.js builtin module "{{moduleName}}"',
},
},
defaultOptions: [],
create(context) {
const options = context.options[0] || {};
const allowed = options.allow || [];
return moduleVisitor((source, node) => {
const moduleName = source.value;
if (!allowed.includes(moduleName) &&
importType(moduleName, context) === 'builtin') {
context.report({
node,
messageId: 'builtin',
data: {
moduleName,
},
});
}
}, { commonjs: true });
},
});
//# sourceMappingURL=no-nodejs-modules.js.map