eslint-plugin-esm 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common.d.ts +8 -3
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/rules/no-circular-imports.d.ts +8 -0
- package/dist/rules/no-circular-imports.d.ts.map +1 -0
- package/dist/rules/no-circular-imports.js +56 -0
- package/dist/rules/no-dynamic-imports.d.ts +2 -1
- package/dist/rules/no-dynamic-imports.d.ts.map +1 -1
- package/dist/rules/no-dynamic-imports.js +1 -1
- package/dist/rules/no-empty-exports.d.ts +2 -1
- package/dist/rules/no-empty-exports.d.ts.map +1 -1
- package/dist/rules/no-empty-exports.js +1 -1
- package/dist/rules/no-query-suffixes.d.ts +5 -0
- package/dist/rules/no-query-suffixes.d.ts.map +1 -0
- package/dist/rules/no-query-suffixes.js +10 -0
- package/dist/rules/no-side-effect-imports.d.ts.map +1 -1
- package/dist/rules/no-side-effect-imports.js +1 -1
- package/dist/rules/top-side-effect-imports.d.ts.map +1 -1
- package/dist/rules/top-side-effect-imports.js +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/package.json +5 -4
- package/CHANGELOG.md +0 -96
- package/doc/rules/existing-file-imports.md +0 -28
- package/doc/rules/no-declaration-file-imports.md +0 -35
- package/doc/rules/no-directory-imports.md +0 -30
- package/doc/rules/no-dynamic-imports.md +0 -30
- package/doc/rules/no-empty-exports.md +0 -29
- package/doc/rules/no-git-ignored-imports.md +0 -36
- package/doc/rules/no-phantom-dep-imports.md +0 -31
- package/doc/rules/no-relative-parent-imports.md +0 -33
- package/doc/rules/no-rename-exports.md +0 -29
- package/doc/rules/no-rename-imports.md +0 -28
- package/doc/rules/no-side-effect-imports.md +0 -30
- package/doc/rules/no-useless-path-segments.md +0 -54
- package/doc/rules/required-exports.md +0 -31
- package/doc/rules/top-side-effect-imports.md +0 -31
- package/src/common.ts +0 -97
- package/src/index.ts +0 -31
- package/src/rules/existing-file-imports.test.ts +0 -28
- package/src/rules/existing-file-imports.ts +0 -25
- package/src/rules/no-declaration-file-imports.test.ts +0 -33
- package/src/rules/no-declaration-file-imports.ts +0 -12
- package/src/rules/no-directory-imports.test.ts +0 -31
- package/src/rules/no-directory-imports.ts +0 -34
- package/src/rules/no-dynamic-imports.test.ts +0 -27
- package/src/rules/no-dynamic-imports.ts +0 -15
- package/src/rules/no-empty-exports.test.ts +0 -22
- package/src/rules/no-empty-exports.ts +0 -14
- package/src/rules/no-git-ignored-imports.test.ts +0 -40
- package/src/rules/no-git-ignored-imports.ts +0 -58
- package/src/rules/no-phantom-dep-imports.test.ts +0 -35
- package/src/rules/no-phantom-dep-imports.ts +0 -124
- package/src/rules/no-relative-parent-imports.test.ts +0 -28
- package/src/rules/no-relative-parent-imports.ts +0 -13
- package/src/rules/no-rename-exports.test.ts +0 -22
- package/src/rules/no-rename-exports.ts +0 -17
- package/src/rules/no-rename-imports.test.ts +0 -22
- package/src/rules/no-rename-imports.ts +0 -16
- package/src/rules/no-side-effect-imports.test.ts +0 -24
- package/src/rules/no-side-effect-imports.ts +0 -39
- package/src/rules/no-useless-path-segments.test.ts +0 -52
- package/src/rules/no-useless-path-segments.ts +0 -31
- package/src/rules/required-exports.test.ts +0 -24
- package/src/rules/required-exports.ts +0 -22
- package/src/rules/top-side-effect-imports.test.ts +0 -24
- package/src/rules/top-side-effect-imports.ts +0 -22
- package/src/utils.ts +0 -18
- package/tsconfig.json +0 -5
package/dist/common.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { Rule } from "eslint";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type { GetNode } from "./utils.ts";
|
|
3
|
+
type ExtractArray<T> = T extends Array<infer U> ? U[] : never;
|
|
4
|
+
type ExportAllDeclaration = GetNode<"ExportAllDeclaration">;
|
|
5
|
+
type ExportNamedDeclaration = GetNode<"ExportNamedDeclaration">;
|
|
6
|
+
type ImportDeclaration = GetNode<"ImportDeclaration">;
|
|
7
|
+
type ImportExpression = GetNode<"ImportExpression">;
|
|
4
8
|
export declare const DEFAULT_MESSAGE_ID = "default";
|
|
5
9
|
export declare function createRule({ name, message, schema, fixable, type, create: createFn, }: {
|
|
6
10
|
name: string;
|
|
7
11
|
message: string;
|
|
8
|
-
schema?:
|
|
12
|
+
schema?: ExtractArray<Rule.RuleMetaData["schema"]>;
|
|
9
13
|
fixable?: Rule.RuleMetaData["fixable"];
|
|
10
14
|
type?: Rule.RuleMetaData["type"];
|
|
11
15
|
create: (context: Rule.RuleContext) => Rule.RuleListener;
|
|
@@ -23,4 +27,5 @@ export type ImportationNode = ImportDeclaration | ImportExpression | ExportAllDe
|
|
|
23
27
|
*/
|
|
24
28
|
export declare function create(context: Rule.RuleContext, check: (filename: string, source: string, node: ImportationNode) => boolean): Rule.RuleListener;
|
|
25
29
|
export declare function getSourceType(source: string): "local" | "builtin" | "module";
|
|
30
|
+
export {};
|
|
26
31
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;AAE9D,KAAK,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAC5D,KAAK,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAChE,KAAK,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACtD,KAAK,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEpD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,EACP,IAAmB,EACnB,MAAM,EAAE,QAAQ,GACjB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC;CAC1D,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAA;CAAE,CAiB1C;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,UAGhD;AAED,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,gBAAgB,GAChB,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,GAC1E,IAAI,CAAC,YAAY,CAcnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,kCAc3C"}
|
package/dist/common.js
CHANGED
|
@@ -60,4 +60,4 @@ export function getSourceType(source) {
|
|
|
60
60
|
}
|
|
61
61
|
return "module";
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVd6QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUM7QUFFNUMsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQ0osT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsSUFBSSxHQUFHLFlBQVksRUFDbkIsTUFBTSxFQUFFLFFBQVEsR0FRakI7SUFDQyxNQUFNLElBQUksR0FBb0I7UUFDNUIsSUFBSSxFQUFFO1lBQ0osR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMzQixRQUFRLEVBQUU7Z0JBQ1IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU87YUFDOUI7WUFDRCxJQUFJO1lBQ0osSUFBSSxFQUFFO2dCQUNKLEdBQUcsRUFBRSxzRkFBc0YsSUFBSSxLQUFLO2dCQUNwRyxXQUFXLEVBQUUsT0FBTzthQUNyQjtTQUNGO1FBQ0QsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQztJQUNGLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsYUFBcUI7SUFDL0MseUJBQXlCO0lBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdkQsQ0FBQztBQVFEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsT0FBeUIsRUFDekIsS0FBMkU7SUFFM0UsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUN6QixJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU87UUFDdEMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPO1FBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQztJQUNGLE9BQU87UUFDTCxpQkFBaUIsRUFBRSxNQUFNO1FBQ3pCLGdCQUFnQixFQUFFLE1BQU07UUFDeEIsb0JBQW9CLEVBQUUsTUFBTTtRQUM1QixzQkFBc0IsRUFBRSxNQUFNO0tBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLElBQ0UsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDdEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDdkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUc7UUFDZCxNQUFNLEtBQUssSUFBSSxFQUNmLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSB7IEdldE5vZGUgfSBmcm9tIFwiLi91dGlscy50c1wiO1xuXG50eXBlIEV4dHJhY3RBcnJheTxUPiA9IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IFVbXSA6IG5ldmVyO1xuXG50eXBlIEV4cG9ydEFsbERlY2xhcmF0aW9uID0gR2V0Tm9kZTxcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCI+O1xudHlwZSBFeHBvcnROYW1lZERlY2xhcmF0aW9uID0gR2V0Tm9kZTxcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIj47XG50eXBlIEltcG9ydERlY2xhcmF0aW9uID0gR2V0Tm9kZTxcIkltcG9ydERlY2xhcmF0aW9uXCI+O1xudHlwZSBJbXBvcnRFeHByZXNzaW9uID0gR2V0Tm9kZTxcIkltcG9ydEV4cHJlc3Npb25cIj47XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01FU1NBR0VfSUQgPSBcImRlZmF1bHRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJ1bGUoe1xuICBuYW1lLFxuICBtZXNzYWdlLFxuICBzY2hlbWEsXG4gIGZpeGFibGUsXG4gIHR5cGUgPSBcInN1Z2dlc3Rpb25cIixcbiAgY3JlYXRlOiBjcmVhdGVGbixcbn06IHtcbiAgbmFtZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHNjaGVtYT86IEV4dHJhY3RBcnJheTxSdWxlLlJ1bGVNZXRhRGF0YVtcInNjaGVtYVwiXT47IC8vIEkgd291bGQgbGlrZSB0byB1c2UgYEpTT05TY2hlbWE0W11gIG9ubHkuXG4gIGZpeGFibGU/OiBSdWxlLlJ1bGVNZXRhRGF0YVtcImZpeGFibGVcIl07XG4gIHR5cGU/OiBSdWxlLlJ1bGVNZXRhRGF0YVtcInR5cGVcIl07XG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpID0+IFJ1bGUuUnVsZUxpc3RlbmVyO1xufSk6IHsgbmFtZTogc3RyaW5nOyBydWxlOiBSdWxlLlJ1bGVNb2R1bGUgfSB7XG4gIGNvbnN0IHJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgICBtZXRhOiB7XG4gICAgICAuLi4oc2NoZW1hICYmIHsgc2NoZW1hIH0pLFxuICAgICAgLi4uKGZpeGFibGUgJiYgeyBmaXhhYmxlIH0pLFxuICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgW0RFRkFVTFRfTUVTU0FHRV9JRF06IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgdHlwZSxcbiAgICAgIGRvY3M6IHtcbiAgICAgICAgdXJsOiBgaHR0cHM6Ly9naXRodWIuY29tL3phbm1pbmtpYW4vZmVuZ2UvYmxvYi9tYWluL3BhY2thZ2VzL2VzbGludC1wbHVnaW4tZXNtL2RvYy9ydWxlcy8ke25hbWV9Lm1kYCxcbiAgICAgICAgZGVzY3JpcHRpb246IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3JlYXRlOiBjcmVhdGVGbixcbiAgfTtcbiAgcmV0dXJuIHsgbmFtZSwgcnVsZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UnVsZU5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKSB7XG4gIC8vIHJlbW92ZSAnLmpzJyBleHRlbnNpb25cbiAgcmV0dXJuIHBhdGgucGFyc2UoZmlsZVVSTFRvUGF0aChpbXBvcnRNZXRhVXJsKSkubmFtZTtcbn1cblxuZXhwb3J0IHR5cGUgSW1wb3J0YXRpb25Ob2RlID1cbiAgfCBJbXBvcnREZWNsYXJhdGlvblxuICB8IEltcG9ydEV4cHJlc3Npb25cbiAgfCBFeHBvcnRBbGxEZWNsYXJhdGlvblxuICB8IEV4cG9ydE5hbWVkRGVjbGFyYXRpb247XG5cbi8qKlxuICogQ3JlYXRlIEVTTGludCBSdWxlTGlzdGVuZXIgdG8gY2hlY2sgc3RyaW5nIGltcG9ydGF0aW9uIHNvdXJjZS5cbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBSdWxlQ29udGV4dFxuICogQHBhcmFtIGNoZWNrIHRoZSBjaGVjayBsb2dpY1xuICogQHJldHVybnMgRVNMaW50IFJ1bGVMaXN0ZW5lclxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBjaGVjazogKGZpbGVuYW1lOiBzdHJpbmcsIHNvdXJjZTogc3RyaW5nLCBub2RlOiBJbXBvcnRhdGlvbk5vZGUpID0+IGJvb2xlYW4sXG4pOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gIGNvbnN0IGhhbmRsZSA9IChub2RlOiBJbXBvcnRhdGlvbk5vZGUpID0+IHtcbiAgICBpZiAoIW5vZGUuc291cmNlKSByZXR1cm47XG4gICAgaWYgKCEoXCJ2YWx1ZVwiIGluIG5vZGUuc291cmNlKSkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2Ygbm9kZS5zb3VyY2UudmFsdWUgIT09IFwic3RyaW5nXCIpIHJldHVybjtcbiAgICBpZiAoY2hlY2soY29udGV4dC5maWxlbmFtZSwgbm9kZS5zb3VyY2UudmFsdWUsIG5vZGUpKVxuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBub2RlLnNvdXJjZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gIH07XG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGhhbmRsZSxcbiAgICBJbXBvcnRFeHByZXNzaW9uOiBoYW5kbGUsXG4gICAgRXhwb3J0QWxsRGVjbGFyYXRpb246IGhhbmRsZSxcbiAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiBoYW5kbGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3VyY2VUeXBlKHNvdXJjZTogc3RyaW5nKSB7XG4gIGlmIChcbiAgICBzb3VyY2Uuc3RhcnRzV2l0aChcIi9cIikgfHxcbiAgICBzb3VyY2Uuc3RhcnRzV2l0aChcIi4vXCIpIHx8XG4gICAgc291cmNlLnN0YXJ0c1dpdGgoXCIuLi9cIikgfHxcbiAgICBzb3VyY2UgPT09IFwiLlwiIHx8XG4gICAgc291cmNlID09PSBcIi4uXCJcbiAgKSB7XG4gICAgcmV0dXJuIFwibG9jYWxcIjtcbiAgfVxuICBpZiAoc291cmNlLnN0YXJ0c1dpdGgoXCJub2RlOlwiKSkge1xuICAgIHJldHVybiBcImJ1aWx0aW5cIjtcbiAgfVxuICByZXR1cm4gXCJtb2R1bGVcIjtcbn1cbiJdfQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { existingFileImports } from "./rules/existing-file-imports.ts";
|
|
2
|
+
import { noCircularImports } from "./rules/no-circular-imports.ts";
|
|
2
3
|
import { noDeclarationFileImports } from "./rules/no-declaration-file-imports.ts";
|
|
3
4
|
import { noDirectoryImports } from "./rules/no-directory-imports.ts";
|
|
4
5
|
import { noDynamicImports } from "./rules/no-dynamic-imports.ts";
|
|
5
6
|
import { noEmptyExports } from "./rules/no-empty-exports.ts";
|
|
6
7
|
import { noGitIgnoredImports } from "./rules/no-git-ignored-imports.ts";
|
|
7
8
|
import { noPhantomDepImports } from "./rules/no-phantom-dep-imports.ts";
|
|
9
|
+
import { noQuerySuffixes } from "./rules/no-query-suffixes.ts";
|
|
8
10
|
import { noRelativeParentImports } from "./rules/no-relative-parent-imports.ts";
|
|
9
11
|
import { noRenameExports } from "./rules/no-rename-exports.ts";
|
|
10
12
|
import { noRenameImports } from "./rules/no-rename-imports.ts";
|
|
@@ -14,12 +16,14 @@ import { requiredExports } from "./rules/required-exports.ts";
|
|
|
14
16
|
import { topSideEffectImports } from "./rules/top-side-effect-imports.ts";
|
|
15
17
|
export declare const rules: {
|
|
16
18
|
[existingFileImports.name]: import("eslint").Rule.RuleModule;
|
|
19
|
+
[noCircularImports.name]: import("eslint").Rule.RuleModule;
|
|
17
20
|
[noDeclarationFileImports.name]: import("eslint").Rule.RuleModule;
|
|
18
21
|
[noDirectoryImports.name]: import("eslint").Rule.RuleModule;
|
|
19
22
|
[noDynamicImports.name]: import("eslint").Rule.RuleModule;
|
|
20
23
|
[noEmptyExports.name]: import("eslint").Rule.RuleModule;
|
|
21
24
|
[noGitIgnoredImports.name]: import("eslint").Rule.RuleModule;
|
|
22
25
|
[noPhantomDepImports.name]: import("eslint").Rule.RuleModule;
|
|
26
|
+
[noQuerySuffixes.name]: import("eslint").Rule.RuleModule;
|
|
23
27
|
[noRelativeParentImports.name]: import("eslint").Rule.RuleModule;
|
|
24
28
|
[noRenameExports.name]: import("eslint").Rule.RuleModule;
|
|
25
29
|
[noRenameImports.name]: import("eslint").Rule.RuleModule;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,eAAO,MAAM,KAAK;IAChB,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,wBAAwB,CAAC,IAAI,CAAC,mCAA+B;IAC9D,CAAC,kBAAkB,CAAC,IAAI,CAAC,mCAAyB;IAClD,CAAC,gBAAgB,CAAC,IAAI,CAAC,mCAAuB;IAC9C,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAqB;IAC1C,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,uBAAuB,CAAC,IAAI,CAAC,mCAA8B;IAC5D,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,qBAAqB,CAAC,IAAI,CAAC,mCAA4B;IACxD,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,oBAAoB,CAAC,IAAI,CAAC,mCAA2B;CACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,eAAO,MAAM,KAAK;IAChB,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,iBAAiB,CAAC,IAAI,CAAC,mCAAwB;IAChD,CAAC,wBAAwB,CAAC,IAAI,CAAC,mCAA+B;IAC9D,CAAC,kBAAkB,CAAC,IAAI,CAAC,mCAAyB;IAClD,CAAC,gBAAgB,CAAC,IAAI,CAAC,mCAAuB;IAC9C,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAqB;IAC1C,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,uBAAuB,CAAC,IAAI,CAAC,mCAA8B;IAC5D,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,qBAAqB,CAAC,IAAI,CAAC,mCAA4B;IACxD,CAAC,eAAe,CAAC,IAAI,CAAC,mCAAsB;IAC5C,CAAC,oBAAoB,CAAC,IAAI,CAAC,mCAA2B;CACvD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { existingFileImports } from "./rules/existing-file-imports.js";
|
|
2
|
+
import { noCircularImports } from "./rules/no-circular-imports.js";
|
|
2
3
|
import { noDeclarationFileImports } from "./rules/no-declaration-file-imports.js";
|
|
3
4
|
import { noDirectoryImports } from "./rules/no-directory-imports.js";
|
|
4
5
|
import { noDynamicImports } from "./rules/no-dynamic-imports.js";
|
|
5
6
|
import { noEmptyExports } from "./rules/no-empty-exports.js";
|
|
6
7
|
import { noGitIgnoredImports } from "./rules/no-git-ignored-imports.js";
|
|
7
8
|
import { noPhantomDepImports } from "./rules/no-phantom-dep-imports.js";
|
|
9
|
+
import { noQuerySuffixes } from "./rules/no-query-suffixes.js";
|
|
8
10
|
import { noRelativeParentImports } from "./rules/no-relative-parent-imports.js";
|
|
9
11
|
import { noRenameExports } from "./rules/no-rename-exports.js";
|
|
10
12
|
import { noRenameImports } from "./rules/no-rename-imports.js";
|
|
@@ -14,12 +16,14 @@ import { requiredExports } from "./rules/required-exports.js";
|
|
|
14
16
|
import { topSideEffectImports } from "./rules/top-side-effect-imports.js";
|
|
15
17
|
export const rules = {
|
|
16
18
|
[existingFileImports.name]: existingFileImports.rule,
|
|
19
|
+
[noCircularImports.name]: noCircularImports.rule,
|
|
17
20
|
[noDeclarationFileImports.name]: noDeclarationFileImports.rule,
|
|
18
21
|
[noDirectoryImports.name]: noDirectoryImports.rule,
|
|
19
22
|
[noDynamicImports.name]: noDynamicImports.rule,
|
|
20
23
|
[noEmptyExports.name]: noEmptyExports.rule,
|
|
21
24
|
[noGitIgnoredImports.name]: noGitIgnoredImports.rule,
|
|
22
25
|
[noPhantomDepImports.name]: noPhantomDepImports.rule,
|
|
26
|
+
[noQuerySuffixes.name]: noQuerySuffixes.rule,
|
|
23
27
|
[noRelativeParentImports.name]: noRelativeParentImports.rule,
|
|
24
28
|
[noRenameExports.name]: noRenameExports.rule,
|
|
25
29
|
[noRenameImports.name]: noRenameImports.rule,
|
|
@@ -28,4 +32,4 @@ export const rules = {
|
|
|
28
32
|
[requiredExports.name]: requiredExports.rule,
|
|
29
33
|
[topSideEffectImports.name]: topSideEffectImports.rule,
|
|
30
34
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO0lBQ3BELENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtJQUNoRCxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLHdCQUF3QixDQUFDLElBQUk7SUFDOUQsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO0lBQ2xELENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUM5QyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSTtJQUMxQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLElBQUk7SUFDcEQsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO0lBQ3BELENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxJQUFJO0lBQzVDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsSUFBSTtJQUM1RCxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSTtJQUM1QyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSTtJQUM1QyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLElBQUk7SUFDcEQsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxJQUFJO0lBQ3hELENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxJQUFJO0lBQzVDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsSUFBSTtDQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RpbmdGaWxlSW1wb3J0cyB9IGZyb20gXCIuL3J1bGVzL2V4aXN0aW5nLWZpbGUtaW1wb3J0cy50c1wiO1xuaW1wb3J0IHsgbm9DaXJjdWxhckltcG9ydHMgfSBmcm9tIFwiLi9ydWxlcy9uby1jaXJjdWxhci1pbXBvcnRzLnRzXCI7XG5pbXBvcnQgeyBub0RlY2xhcmF0aW9uRmlsZUltcG9ydHMgfSBmcm9tIFwiLi9ydWxlcy9uby1kZWNsYXJhdGlvbi1maWxlLWltcG9ydHMudHNcIjtcbmltcG9ydCB7IG5vRGlyZWN0b3J5SW1wb3J0cyB9IGZyb20gXCIuL3J1bGVzL25vLWRpcmVjdG9yeS1pbXBvcnRzLnRzXCI7XG5pbXBvcnQgeyBub0R5bmFtaWNJbXBvcnRzIH0gZnJvbSBcIi4vcnVsZXMvbm8tZHluYW1pYy1pbXBvcnRzLnRzXCI7XG5pbXBvcnQgeyBub0VtcHR5RXhwb3J0cyB9IGZyb20gXCIuL3J1bGVzL25vLWVtcHR5LWV4cG9ydHMudHNcIjtcbmltcG9ydCB7IG5vR2l0SWdub3JlZEltcG9ydHMgfSBmcm9tIFwiLi9ydWxlcy9uby1naXQtaWdub3JlZC1pbXBvcnRzLnRzXCI7XG5pbXBvcnQgeyBub1BoYW50b21EZXBJbXBvcnRzIH0gZnJvbSBcIi4vcnVsZXMvbm8tcGhhbnRvbS1kZXAtaW1wb3J0cy50c1wiO1xuaW1wb3J0IHsgbm9RdWVyeVN1ZmZpeGVzIH0gZnJvbSBcIi4vcnVsZXMvbm8tcXVlcnktc3VmZml4ZXMudHNcIjtcbmltcG9ydCB7IG5vUmVsYXRpdmVQYXJlbnRJbXBvcnRzIH0gZnJvbSBcIi4vcnVsZXMvbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMudHNcIjtcbmltcG9ydCB7IG5vUmVuYW1lRXhwb3J0cyB9IGZyb20gXCIuL3J1bGVzL25vLXJlbmFtZS1leHBvcnRzLnRzXCI7XG5pbXBvcnQgeyBub1JlbmFtZUltcG9ydHMgfSBmcm9tIFwiLi9ydWxlcy9uby1yZW5hbWUtaW1wb3J0cy50c1wiO1xuaW1wb3J0IHsgbm9TaWRlRWZmZWN0SW1wb3J0cyB9IGZyb20gXCIuL3J1bGVzL25vLXNpZGUtZWZmZWN0LWltcG9ydHMudHNcIjtcbmltcG9ydCB7IG5vVXNlbGVzc1BhdGhTZWdtZW50cyB9IGZyb20gXCIuL3J1bGVzL25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cy50c1wiO1xuaW1wb3J0IHsgcmVxdWlyZWRFeHBvcnRzIH0gZnJvbSBcIi4vcnVsZXMvcmVxdWlyZWQtZXhwb3J0cy50c1wiO1xuaW1wb3J0IHsgdG9wU2lkZUVmZmVjdEltcG9ydHMgfSBmcm9tIFwiLi9ydWxlcy90b3Atc2lkZS1lZmZlY3QtaW1wb3J0cy50c1wiO1xuXG5leHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gIFtleGlzdGluZ0ZpbGVJbXBvcnRzLm5hbWVdOiBleGlzdGluZ0ZpbGVJbXBvcnRzLnJ1bGUsXG4gIFtub0NpcmN1bGFySW1wb3J0cy5uYW1lXTogbm9DaXJjdWxhckltcG9ydHMucnVsZSxcbiAgW25vRGVjbGFyYXRpb25GaWxlSW1wb3J0cy5uYW1lXTogbm9EZWNsYXJhdGlvbkZpbGVJbXBvcnRzLnJ1bGUsXG4gIFtub0RpcmVjdG9yeUltcG9ydHMubmFtZV06IG5vRGlyZWN0b3J5SW1wb3J0cy5ydWxlLFxuICBbbm9EeW5hbWljSW1wb3J0cy5uYW1lXTogbm9EeW5hbWljSW1wb3J0cy5ydWxlLFxuICBbbm9FbXB0eUV4cG9ydHMubmFtZV06IG5vRW1wdHlFeHBvcnRzLnJ1bGUsXG4gIFtub0dpdElnbm9yZWRJbXBvcnRzLm5hbWVdOiBub0dpdElnbm9yZWRJbXBvcnRzLnJ1bGUsXG4gIFtub1BoYW50b21EZXBJbXBvcnRzLm5hbWVdOiBub1BoYW50b21EZXBJbXBvcnRzLnJ1bGUsXG4gIFtub1F1ZXJ5U3VmZml4ZXMubmFtZV06IG5vUXVlcnlTdWZmaXhlcy5ydWxlLFxuICBbbm9SZWxhdGl2ZVBhcmVudEltcG9ydHMubmFtZV06IG5vUmVsYXRpdmVQYXJlbnRJbXBvcnRzLnJ1bGUsXG4gIFtub1JlbmFtZUV4cG9ydHMubmFtZV06IG5vUmVuYW1lRXhwb3J0cy5ydWxlLFxuICBbbm9SZW5hbWVJbXBvcnRzLm5hbWVdOiBub1JlbmFtZUltcG9ydHMucnVsZSxcbiAgW25vU2lkZUVmZmVjdEltcG9ydHMubmFtZV06IG5vU2lkZUVmZmVjdEltcG9ydHMucnVsZSxcbiAgW25vVXNlbGVzc1BhdGhTZWdtZW50cy5uYW1lXTogbm9Vc2VsZXNzUGF0aFNlZ21lbnRzLnJ1bGUsXG4gIFtyZXF1aXJlZEV4cG9ydHMubmFtZV06IHJlcXVpcmVkRXhwb3J0cy5ydWxlLFxuICBbdG9wU2lkZUVmZmVjdEltcG9ydHMubmFtZV06IHRvcFNpZGVFZmZlY3RJbXBvcnRzLnJ1bGUsXG59O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-circular-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-circular-imports.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAwC5B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import process from "node:process";
|
|
3
|
+
import { createRule, getRuleName, getSourceType } from "../common.js";
|
|
4
|
+
/**
|
|
5
|
+
* Key is the source file, value is its imports.
|
|
6
|
+
*/
|
|
7
|
+
const store = new Map();
|
|
8
|
+
function isCircular(currentFile, visited = new Set()) {
|
|
9
|
+
if (visited.has(currentFile)) {
|
|
10
|
+
return [true, [...visited]];
|
|
11
|
+
}
|
|
12
|
+
visited.add(currentFile);
|
|
13
|
+
const dependencies = store.get(currentFile) ?? new Set();
|
|
14
|
+
for (const dependency of dependencies) {
|
|
15
|
+
const [isCircularResult, circularPaths] = isCircular(path.resolve(path.dirname(currentFile), dependency), new Set(visited));
|
|
16
|
+
if (isCircularResult) {
|
|
17
|
+
return [isCircularResult, circularPaths];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return [false, []];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Note: This rule do not support importing files without extensions and directory imports.
|
|
24
|
+
*/
|
|
25
|
+
export const noCircularImports = createRule({
|
|
26
|
+
name: getRuleName(import.meta.url),
|
|
27
|
+
message: "Circular imports are not allowed.",
|
|
28
|
+
create: (context) => {
|
|
29
|
+
const filePath = context.filename;
|
|
30
|
+
const imports = store.get(filePath) ?? new Set();
|
|
31
|
+
store.set(filePath, imports);
|
|
32
|
+
return {
|
|
33
|
+
ImportDeclaration: (node) => {
|
|
34
|
+
if (typeof node.source.value !== "string" ||
|
|
35
|
+
getSourceType(node.source.value) !== "local")
|
|
36
|
+
return;
|
|
37
|
+
imports.add(node.source.value);
|
|
38
|
+
},
|
|
39
|
+
"ImportDeclaration:exit": (node) => {
|
|
40
|
+
if (typeof node.source.value !== "string" ||
|
|
41
|
+
getSourceType(node.source.value) !== "local")
|
|
42
|
+
return;
|
|
43
|
+
const [isCircularResult, circularPaths] = isCircular(path.resolve(path.dirname(filePath), node.source.value), new Set([filePath]));
|
|
44
|
+
if (isCircularResult) {
|
|
45
|
+
context.report({
|
|
46
|
+
node,
|
|
47
|
+
message: `Circular import detected: ${circularPaths
|
|
48
|
+
.map((p) => path.relative(process.cwd(), p))
|
|
49
|
+
.join(" -> ")}`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY2lyY3VsYXItaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jaXJjdWxhci1pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7QUFFN0MsU0FBUyxVQUFVLENBQ2pCLFdBQW1CLEVBQ25CLFVBQVUsSUFBSSxHQUFHLEVBQVU7SUFFM0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFVLENBQUM7SUFDakUsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLEdBQUcsVUFBVSxDQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQ25ELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUNqQixDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQzFDLElBQUksRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEMsT0FBTyxFQUFFLG1DQUFtQztJQUM1QyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUN6RCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU3QixPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUIsSUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVE7b0JBQ3JDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQU87b0JBRTVDLE9BQU87Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFFRCx3QkFBd0IsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNqQyxJQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUTtvQkFDckMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTztvQkFFNUMsT0FBTztnQkFFVCxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLEdBQUcsVUFBVSxDQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDdkQsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNwQixDQUFDO2dCQUNGLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixJQUFJO3dCQUNKLE9BQU8sRUFBRSw2QkFBNkIsYUFBYTs2QkFDaEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzs2QkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO3FCQUNsQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCBwcm9jZXNzIGZyb20gXCJub2RlOnByb2Nlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVJ1bGUsIGdldFJ1bGVOYW1lLCBnZXRTb3VyY2VUeXBlIH0gZnJvbSBcIi4uL2NvbW1vbi50c1wiO1xuXG4vKipcbiAqIEtleSBpcyB0aGUgc291cmNlIGZpbGUsIHZhbHVlIGlzIGl0cyBpbXBvcnRzLlxuICovXG5jb25zdCBzdG9yZSA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuZnVuY3Rpb24gaXNDaXJjdWxhcihcbiAgY3VycmVudEZpbGU6IHN0cmluZyxcbiAgdmlzaXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpLFxuKTogW2Jvb2xlYW4sIHN0cmluZ1tdXSB7XG4gIGlmICh2aXNpdGVkLmhhcyhjdXJyZW50RmlsZSkpIHtcbiAgICByZXR1cm4gW3RydWUsIFsuLi52aXNpdGVkXV07XG4gIH1cbiAgdmlzaXRlZC5hZGQoY3VycmVudEZpbGUpO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHN0b3JlLmdldChjdXJyZW50RmlsZSkgPz8gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICBjb25zdCBbaXNDaXJjdWxhclJlc3VsdCwgY2lyY3VsYXJQYXRoc10gPSBpc0NpcmN1bGFyKFxuICAgICAgcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZShjdXJyZW50RmlsZSksIGRlcGVuZGVuY3kpLFxuICAgICAgbmV3IFNldCh2aXNpdGVkKSxcbiAgICApO1xuICAgIGlmIChpc0NpcmN1bGFyUmVzdWx0KSB7XG4gICAgICByZXR1cm4gW2lzQ2lyY3VsYXJSZXN1bHQsIGNpcmN1bGFyUGF0aHNdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2ZhbHNlLCBbXV07XG59XG5cbi8qKlxuICogTm90ZTogVGhpcyBydWxlIGRvIG5vdCBzdXBwb3J0IGltcG9ydGluZyBmaWxlcyB3aXRob3V0IGV4dGVuc2lvbnMgYW5kIGRpcmVjdG9yeSBpbXBvcnRzLlxuICovXG5leHBvcnQgY29uc3Qgbm9DaXJjdWxhckltcG9ydHMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTogXCJDaXJjdWxhciBpbXBvcnRzIGFyZSBub3QgYWxsb3dlZC5cIixcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gY29udGV4dC5maWxlbmFtZTtcbiAgICBjb25zdCBpbXBvcnRzID0gc3RvcmUuZ2V0KGZpbGVQYXRoKSA/PyBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBzdG9yZS5zZXQoZmlsZVBhdGgsIGltcG9ydHMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uOiAobm9kZSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdHlwZW9mIG5vZGUuc291cmNlLnZhbHVlICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgZ2V0U291cmNlVHlwZShub2RlLnNvdXJjZS52YWx1ZSkgIT09IFwibG9jYWxcIlxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbXBvcnRzLmFkZChub2RlLnNvdXJjZS52YWx1ZSk7XG4gICAgICB9LFxuXG4gICAgICBcIkltcG9ydERlY2xhcmF0aW9uOmV4aXRcIjogKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBub2RlLnNvdXJjZS52YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgIGdldFNvdXJjZVR5cGUobm9kZS5zb3VyY2UudmFsdWUpICE9PSBcImxvY2FsXCJcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBbaXNDaXJjdWxhclJlc3VsdCwgY2lyY3VsYXJQYXRoc10gPSBpc0NpcmN1bGFyKFxuICAgICAgICAgIHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoZmlsZVBhdGgpLCBub2RlLnNvdXJjZS52YWx1ZSksXG4gICAgICAgICAgbmV3IFNldChbZmlsZVBhdGhdKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGlzQ2lyY3VsYXJSZXN1bHQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogYENpcmN1bGFyIGltcG9ydCBkZXRlY3RlZDogJHtjaXJjdWxhclBhdGhzXG4gICAgICAgICAgICAgIC5tYXAoKHApID0+IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgcCkpXG4gICAgICAgICAgICAgIC5qb2luKFwiIC0+IFwiKX1gLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-dynamic-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-dynamic-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,eAAO,MAAM,gBAAgB;;;CAW3B,CAAC"}
|
|
@@ -11,4 +11,4 @@ export const noDynamicImports = createRule({
|
|
|
11
11
|
},
|
|
12
12
|
}),
|
|
13
13
|
});
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZHluYW1pYy1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL25vLWR5bmFtaWMtaW1wb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7SUFDekMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxPQUFPLEVBQUUsa0RBQWtEO0lBQzNELE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQixrQ0FBa0MsRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFO1lBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0Qsb0RBQW9ELEVBQUUsQ0FBQyxJQUFlLEVBQUUsRUFBRTtZQUN4RSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztLQUNGLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgeyBjcmVhdGVSdWxlLCBERUZBVUxUX01FU1NBR0VfSUQsIGdldFJ1bGVOYW1lIH0gZnJvbSBcIi4uL2NvbW1vbi50c1wiO1xuXG5leHBvcnQgY29uc3Qgbm9EeW5hbWljSW1wb3J0cyA9IGNyZWF0ZVJ1bGUoe1xuICBuYW1lOiBnZXRSdWxlTmFtZShpbXBvcnQubWV0YS51cmwpLFxuICBtZXNzYWdlOiBcImBpbXBvcnQoKWAgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHN0cmluZyBsaXRlcmFsLlwiLFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiAoe1xuICAgIFwiSW1wb3J0RXhwcmVzc2lvbiA+IDpub3QoTGl0ZXJhbClcIjogKG5vZGU6IFJ1bGUuTm9kZSkgPT4ge1xuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlSWQ6IERFRkFVTFRfTUVTU0FHRV9JRCB9KTtcbiAgICB9LFxuICAgIFwiSW1wb3J0RXhwcmVzc2lvbiA+IExpdGVyYWxbcmF3PS9eW14nXFxcIl0uKlteJ1xcXCJdJC9dXCI6IChub2RlOiBSdWxlLk5vZGUpID0+IHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gICAgfSxcbiAgfSksXG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-empty-exports.d.ts","sourceRoot":"","sources":["../../src/rules/no-empty-exports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-empty-exports.d.ts","sourceRoot":"","sources":["../../src/rules/no-empty-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,eAAO,MAAM,cAAc;;;CAUzB,CAAC"}
|
|
@@ -8,4 +8,4 @@ export const noEmptyExports = createRule({
|
|
|
8
8
|
},
|
|
9
9
|
}),
|
|
10
10
|
});
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZW1wdHktZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1lbXB0eS1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUM7SUFDdkMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQiwrREFBK0QsRUFBRSxDQUMvRCxJQUFlLEVBQ2YsRUFBRTtZQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO0tBQ0YsQ0FBQztDQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IGNyZWF0ZVJ1bGUsIERFRkFVTFRfTUVTU0FHRV9JRCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vY29tbW9uLnRzXCI7XG5cbmV4cG9ydCBjb25zdCBub0VtcHR5RXhwb3J0cyA9IGNyZWF0ZVJ1bGUoe1xuICBuYW1lOiBnZXRSdWxlTmFtZShpbXBvcnQubWV0YS51cmwpLFxuICBtZXNzYWdlOiBcIkRpc2FsbG93IGBleHBvcnQge31gLlwiLFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiAoe1xuICAgIFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvbltzcGVjaWZpZXJzLmxlbmd0aD0wXVtkZWNsYXJhdGlvbj1udWxsXVwiOiAoXG4gICAgICBub2RlOiBSdWxlLk5vZGUsXG4gICAgKSA9PiB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogREVGQVVMVF9NRVNTQUdFX0lEIH0pO1xuICAgIH0sXG4gIH0pLFxufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-query-suffixes.d.ts","sourceRoot":"","sources":["../../src/rules/no-query-suffixes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;CAI1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { create, createRule, getRuleName } from "../common.js";
|
|
2
|
+
export const noQuerySuffixes = createRule({
|
|
3
|
+
name: getRuleName(import.meta.url),
|
|
4
|
+
message: "Disallow using query suffixes in import paths.",
|
|
5
|
+
create: (context) => create(context, checkQuerySuffix),
|
|
6
|
+
});
|
|
7
|
+
function checkQuerySuffix(_filename, source) {
|
|
8
|
+
return /\?.*$/.test(source);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcXVlcnktc3VmZml4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcXVlcnktc3VmZml4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUM7SUFDeEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxPQUFPLEVBQUUsZ0RBQWdEO0lBQ3pELE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQztDQUN2RCxDQUFDLENBQUM7QUFFSCxTQUFTLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsTUFBYztJQUN6RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZSwgY3JlYXRlUnVsZSwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vY29tbW9uLnRzXCI7XG5cbmV4cG9ydCBjb25zdCBub1F1ZXJ5U3VmZml4ZXMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTogXCJEaXNhbGxvdyB1c2luZyBxdWVyeSBzdWZmaXhlcyBpbiBpbXBvcnQgcGF0aHMuXCIsXG4gIGNyZWF0ZTogKGNvbnRleHQpID0+IGNyZWF0ZShjb250ZXh0LCBjaGVja1F1ZXJ5U3VmZml4KSxcbn0pO1xuXG5mdW5jdGlvbiBjaGVja1F1ZXJ5U3VmZml4KF9maWxlbmFtZTogc3RyaW5nLCBzb3VyY2U6IHN0cmluZykge1xuICByZXR1cm4gL1xcPy4qJC8udGVzdChzb3VyY2UpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-side-effect-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-side-effect-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-imports.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,mBAAmB;;;CAqB9B,CAAC"}
|
|
@@ -28,4 +28,4 @@ export const noSideEffectImports = createRule({
|
|
|
28
28
|
};
|
|
29
29
|
},
|
|
30
30
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tc2lkZS1lZmZlY3QtaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1zaWRlLWVmZmVjdC1pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSzNFLE1BQU0sT0FBTyxHQUFHO0lBQ2Qsb0JBQW9CO0lBQ3BCLHFFQUFxRTtJQUNyRSwyQkFBMkI7SUFDM0IsNEJBQTRCO0lBQzVCLDRCQUE0QjtJQUM1Qiw0QkFBNEI7SUFDNUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0NBQzVCLENBQUM7QUFFRixzRkFBc0Y7QUFDdEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0lBQzVDLElBQUksRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEMsT0FBTyxFQUNMLGdGQUFnRjtJQUNsRixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU87WUFDTCx3Q0FBd0MsRUFBRSxDQUFDLElBQXVCLEVBQUUsRUFBRTtnQkFDcEUsSUFDRSxVQUFVLENBQUMsSUFBSSxDQUNiLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVE7b0JBQ3JDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDOUIsRUFDRCxDQUFDO29CQUNELE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUnVsZSwgREVGQVVMVF9NRVNTQUdFX0lELCBnZXRSdWxlTmFtZSB9IGZyb20gXCIuLi9jb21tb24udHNcIjtcbmltcG9ydCB0eXBlIHsgR2V0Tm9kZSB9IGZyb20gXCIuLi91dGlscy50c1wiO1xuXG50eXBlIEltcG9ydERlY2xhcmF0aW9uID0gR2V0Tm9kZTxcIkltcG9ydERlY2xhcmF0aW9uXCI+O1xuXG5jb25zdCBpZ25vcmVzID0gW1xuICBcIl5yZWZsZWN0LW1ldGFkYXRhJFwiLFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdml0ZWpzL3ZpdGUvYmxvYi9tYWluL3BhY2thZ2VzL3ZpdGUvY2xpZW50LmQudHNcbiAgLy8gXCIoPzwhXFxcXC5tb2R1bGUpXFxcXC5jc3MkXCIsXG4gIC8vIFwiKD88IVxcXFwubW9kdWxlKVxcXFwuc2NzcyRcIixcbiAgLy8gXCIoPzwhXFxcXC5tb2R1bGUpXFxcXC5zYXNzJFwiLFxuICAvLyBcIig/PCFcXFxcLm1vZHVsZSlcXFxcLmxlc3MkXCIsXG4gIC8vIFwiKD88IVxcXFwubW9kdWxlKVxcXFwuc3R5bCRcIixcbiAgLy8gXCIoPzwhXFxcXC5tb2R1bGUpXFxcXC5zdHlsdXMkXCIsXG4gIC8vIFwiKD88IVxcXFwubW9kdWxlKVxcXFwucGNzcyRcIixcbiAgLy8gXCIoPzwhXFxcXC5tb2R1bGUpXFxcXC5zc3MkXCIsXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9TdGF0ZW1lbnRzL2ltcG9ydFxuZXhwb3J0IGNvbnN0IG5vU2lkZUVmZmVjdEltcG9ydHMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTpcbiAgICBcIlNpZGUgZWZmZWN0IGltcG9ydCBpcyBvZnRlbiB1c2VkIGZvciBwb2x5ZmlsbHMgYW5kIGNzcy4gSXQncyB1bnNhZmUgdG8gdXNlIGl0LlwiLFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgaWdub3JlRXhwcyA9IGlnbm9yZXMubWFwKChpZ25vcmUpID0+IG5ldyBSZWdFeHAoaWdub3JlKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIFwiSW1wb3J0RGVjbGFyYXRpb25bc3BlY2lmaWVycy5sZW5ndGg9MF1cIjogKG5vZGU6IEltcG9ydERlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpZ25vcmVFeHBzLnNvbWUoXG4gICAgICAgICAgICAoZXhwKSA9PlxuICAgICAgICAgICAgICB0eXBlb2Ygbm9kZS5zb3VyY2UudmFsdWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgZXhwLnRlc3Qobm9kZS5zb3VyY2UudmFsdWUpLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top-side-effect-imports.d.ts","sourceRoot":"","sources":["../../src/rules/top-side-effect-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"top-side-effect-imports.d.ts","sourceRoot":"","sources":["../../src/rules/top-side-effect-imports.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;;CAkB/B,CAAC"}
|
|
@@ -17,4 +17,4 @@ export const topSideEffectImports = createRule({
|
|
|
17
17
|
};
|
|
18
18
|
},
|
|
19
19
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXNpZGUtZWZmZWN0LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvdG9wLXNpZGUtZWZmZWN0LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLM0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzdDLElBQUksRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEMsT0FBTyxFQUFFLG9FQUFvRTtJQUM3RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixJQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUVuQyxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsQ0FBQyxJQUF1QixFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9CLHNCQUFzQixHQUFHLElBQUksQ0FBQztvQkFDOUIsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksc0JBQXNCLEVBQUUsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUnVsZSwgREVGQVVMVF9NRVNTQUdFX0lELCBnZXRSdWxlTmFtZSB9IGZyb20gXCIuLi9jb21tb24udHNcIjtcbmltcG9ydCB0eXBlIHsgR2V0Tm9kZSB9IGZyb20gXCIuLi91dGlscy50c1wiO1xuXG50eXBlIEltcG9ydERlY2xhcmF0aW9uID0gR2V0Tm9kZTxcIkltcG9ydERlY2xhcmF0aW9uXCI+O1xuXG5leHBvcnQgY29uc3QgdG9wU2lkZUVmZmVjdEltcG9ydHMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTogXCJTaWRlIGVmZmVjdCBpbXBvcnRzIG11c3QgYmUgcGxhY2VkIGJlZm9yZSBvdGhlciBpbXBvcnQgc3RhdGVtZW50cy5cIixcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4ge1xuICAgIGxldCBoYXNOb25TaWRlRWZmZWN0SW1wb3J0ID0gZmFsc2U7XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IChub2RlOiBJbXBvcnREZWNsYXJhdGlvbikgPT4ge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBoYXNOb25TaWRlRWZmZWN0SW1wb3J0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc05vblNpZGVFZmZlY3RJbXBvcnQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogREVGQVVMVF9NRVNTQUdFX0lEIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
1
2
|
/**
|
|
2
3
|
* Like [lodash.memoize](https://lodash.com/docs/4.17.15#memoize)
|
|
3
4
|
* Type `Res` must be non-nullable, otherwise it will cause bug.
|
|
4
5
|
*/
|
|
5
6
|
export declare function memoize<Arg, Res extends NonNullable<unknown>>(fn: (arg: Arg) => Res): (arg: Arg) => Res;
|
|
7
|
+
export type GetNode<T extends keyof Rule.NodeListener> = Parameters<NonNullable<Rule.NodeListener[T]>>[0];
|
|
6
8
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,WAAW,CAAC,OAAO,CAAC,EAC3D,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GACpB,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAWnB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,WAAW,CAAC,OAAO,CAAC,EAC3D,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GACpB,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAWnB;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,YAAY,IAAI,UAAU,CACjE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -14,4 +14,4 @@ export function memoize(fn) {
|
|
|
14
14
|
return result;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FDckIsRUFBcUI7SUFFckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQVksQ0FBQyxDQUFDLGNBQWM7SUFDakQsT0FBTyxDQUFDLEdBQVEsRUFBRSxFQUFFO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG4vKipcbiAqIExpa2UgW2xvZGFzaC5tZW1vaXplXShodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjE1I21lbW9pemUpXG4gKiBUeXBlIGBSZXNgIG11c3QgYmUgbm9uLW51bGxhYmxlLCBvdGhlcndpc2UgaXQgd2lsbCBjYXVzZSBidWcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplPEFyZywgUmVzIGV4dGVuZHMgTm9uTnVsbGFibGU8dW5rbm93bj4+KFxuICBmbjogKGFyZzogQXJnKSA9PiBSZXMsXG4pOiAoYXJnOiBBcmcpID0+IFJlcyB7XG4gIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxBcmcsIFJlcz4oKTsgLy8gbWVtb3J5IGxlYWtcbiAgcmV0dXJuIChhcmc6IEFyZykgPT4ge1xuICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlLmdldChhcmcpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gZm4oYXJnKTtcbiAgICBjYWNoZS5zZXQoYXJnLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEdldE5vZGU8VCBleHRlbmRzIGtleW9mIFJ1bGUuTm9kZUxpc3RlbmVyPiA9IFBhcmFtZXRlcnM8XG4gIE5vbk51bGxhYmxlPFJ1bGUuTm9kZUxpc3RlbmVyW1RdPlxuPlswXTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-esm",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "ESLint plugin for linting ESM (import/export syntax)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -24,10 +24,11 @@
|
|
|
24
24
|
"author": "hellozmj@qq.com",
|
|
25
25
|
"type": "module",
|
|
26
26
|
"exports": "./dist/index.js",
|
|
27
|
+
"files": [
|
|
28
|
+
"dist"
|
|
29
|
+
],
|
|
27
30
|
"devDependencies": {
|
|
28
|
-
"@types/
|
|
29
|
-
"@types/json-schema": "7.0.15",
|
|
30
|
-
"@types/node": "22.13.10",
|
|
31
|
+
"@types/node": "22.14.1",
|
|
31
32
|
"eslint": "9.22.0",
|
|
32
33
|
"@fenge/dev-utils": "0.0.0"
|
|
33
34
|
},
|
package/CHANGELOG.md
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# eslint-plugin-esm
|
|
2
|
-
|
|
3
|
-
## 0.8.1
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- 57c267d: feat: add rule `esm/top-side-effect-imports`
|
|
8
|
-
|
|
9
|
-
## 0.8.0
|
|
10
|
-
|
|
11
|
-
### Minor Changes
|
|
12
|
-
|
|
13
|
-
- 28d8553: chore: required node ^18.20.0 or >=20.10.0
|
|
14
|
-
|
|
15
|
-
## 0.7.0
|
|
16
|
-
|
|
17
|
-
### Minor Changes
|
|
18
|
-
|
|
19
|
-
- 01657a8: feat(eslint-plugin-esm): rename `no-inexistent-relative-imports` to `existing-file-imports`
|
|
20
|
-
|
|
21
|
-
## 0.6.1
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- 501e3b4: feat(eslint-plugin-esm): disallow side effect imports for `no-side-effect-imports` rule
|
|
26
|
-
- da63d2e: fix(eslint-plugin-esm): depress unexpected error messages in console
|
|
27
|
-
|
|
28
|
-
## 0.6.0
|
|
29
|
-
|
|
30
|
-
### Minor Changes
|
|
31
|
-
|
|
32
|
-
- 02d0164: chore(eslint-plugin-esm): make `no-inexistent-relative-imports` stricter
|
|
33
|
-
|
|
34
|
-
## 0.5.0
|
|
35
|
-
|
|
36
|
-
### Minor Changes
|
|
37
|
-
|
|
38
|
-
- cb2a822: feat: remove `esm/no-ts-file-imports`, and add `esm/no-declaration-file-imports`
|
|
39
|
-
|
|
40
|
-
### Patch Changes
|
|
41
|
-
|
|
42
|
-
- cb2a822: feat: add rule `no-inexistent-relative-imports`
|
|
43
|
-
|
|
44
|
-
## 0.4.0
|
|
45
|
-
|
|
46
|
-
### Minor Changes
|
|
47
|
-
|
|
48
|
-
- 85cd2d5: refactor(eslint-plugin-esm): rename rule `nearest-relative-path` to `no-useless-path-segments`
|
|
49
|
-
|
|
50
|
-
### Patch Changes
|
|
51
|
-
|
|
52
|
-
- 36c4c6b: fix(eslint-plugin-esm): report on `./..` and `./`
|
|
53
|
-
|
|
54
|
-
## 0.3.0
|
|
55
|
-
|
|
56
|
-
### Minor Changes
|
|
57
|
-
|
|
58
|
-
- 1b7d98c: refactor(eslint-plugin-esm): `no-side-effect-imports` will not ignore declaration files now
|
|
59
|
-
- 2d485c9: refactor(eslint-plugin-esm): `no-ts-file-imports` will not ignore declaration files now
|
|
60
|
-
|
|
61
|
-
### Patch Changes
|
|
62
|
-
|
|
63
|
-
- 6c64129: feat: add rule `no-empty-exports`
|
|
64
|
-
- d54423b: fix(eslint-plugin-esm): additionally check for importing node built-in module
|
|
65
|
-
- 778a198: feat: add rule `esm/required-exports`
|
|
66
|
-
|
|
67
|
-
## 0.2.2
|
|
68
|
-
|
|
69
|
-
### Patch Changes
|
|
70
|
-
|
|
71
|
-
- 905e445: chore: update deps
|
|
72
|
-
- 0c4462d: fix(eslint-plugin-esm): fix incorrect report on `import type {} from "@foo/bar"`
|
|
73
|
-
|
|
74
|
-
## 0.2.1
|
|
75
|
-
|
|
76
|
-
### Patch Changes
|
|
77
|
-
|
|
78
|
-
- 2b04bbd: fix(eslint-plugin-esm): allow module existing in peerDependencies for `no-phantom-dep-imports` rule
|
|
79
|
-
|
|
80
|
-
## 0.2.0
|
|
81
|
-
|
|
82
|
-
### Minor Changes
|
|
83
|
-
|
|
84
|
-
- 28edf1c: feat(eslint-plugin-esm)!: support `allowDevDependencies` option
|
|
85
|
-
|
|
86
|
-
## 0.1.1
|
|
87
|
-
|
|
88
|
-
### Patch Changes
|
|
89
|
-
|
|
90
|
-
- 52c7428: fix(eslint-plugin-esm): fix `nearest-relative-path` rule problem when importing from `.`
|
|
91
|
-
|
|
92
|
-
## 0.1.0
|
|
93
|
-
|
|
94
|
-
### Minor Changes
|
|
95
|
-
|
|
96
|
-
- d0491d8: refactor: migrate rules from `@git-validator/eslint-plugin` to `eslint-plugin-esm`
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!-- prettier-ignore-start -->
|
|
2
|
-
# existing-file-imports
|
|
3
|
-
|
|
4
|
-
Only allow importing from an existing local file.
|
|
5
|
-
|
|
6
|
-
## Rule Details
|
|
7
|
-
|
|
8
|
-
### Fail
|
|
9
|
-
|
|
10
|
-
```ts
|
|
11
|
-
import foo from './existing-file-imports.test.js' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
12
|
-
import foo from './existing-file-imports.test' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
13
|
-
import foo from './inexistent-file' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
14
|
-
import foo from '../inexistent-file' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
15
|
-
import foo from '../rules' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
16
|
-
import foo from '.' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
17
|
-
import foo from './' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
18
|
-
import foo from '..' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
19
|
-
import foo from '../' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Pass
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
import foo from 'foo' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
26
|
-
import foo from './existing-file-imports.test.ts' // filename: /foo/src/rules/existing-file-imports.test.ts
|
|
27
|
-
```
|
|
28
|
-
<!-- prettier-ignore-end -->
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<!-- prettier-ignore-start -->
|
|
2
|
-
# no-declaration-file-imports
|
|
3
|
-
|
|
4
|
-
Disallow importing from a declaration style file.
|
|
5
|
-
|
|
6
|
-
## Rule Details
|
|
7
|
-
|
|
8
|
-
### Fail
|
|
9
|
-
|
|
10
|
-
```ts
|
|
11
|
-
import foo from 'foo.d.bar'
|
|
12
|
-
import foo from './foo.d.bar'
|
|
13
|
-
import foo from './foo/foo.d.bar'
|
|
14
|
-
import foo from './foo.d.ts'
|
|
15
|
-
import foo from './foo.d.cts'
|
|
16
|
-
import foo from './foo.d.mts'
|
|
17
|
-
import foo from './foo.d.tsx'
|
|
18
|
-
import foo from './foo.d.js'
|
|
19
|
-
import foo from './foo.d.cjs'
|
|
20
|
-
import foo from './foo.d.mjs'
|
|
21
|
-
import foo from './foo.d.jsx'
|
|
22
|
-
import foo from '/foo.d.js'
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Pass
|
|
26
|
-
|
|
27
|
-
```ts
|
|
28
|
-
import foo from 'foo'
|
|
29
|
-
import foo from './foo.ts'
|
|
30
|
-
import foo from './foo.cts'
|
|
31
|
-
import foo from './foo.mts'
|
|
32
|
-
import foo from './foo.tsx'
|
|
33
|
-
import foo from '/foo.ts'
|
|
34
|
-
```
|
|
35
|
-
<!-- prettier-ignore-end -->
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
<!-- prettier-ignore-start -->
|
|
2
|
-
# no-directory-imports
|
|
3
|
-
|
|
4
|
-
Disallow importing from a directory.
|
|
5
|
-
|
|
6
|
-
## Rule Details
|
|
7
|
-
|
|
8
|
-
### Fail
|
|
9
|
-
|
|
10
|
-
```ts
|
|
11
|
-
import foo from '.' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
12
|
-
import foo from './' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
13
|
-
import foo from '..' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
14
|
-
import foo from '../' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
15
|
-
import foo from '../rules' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
16
|
-
import foo from '../rules/' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
17
|
-
import foo from '../../src' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
18
|
-
import foo from '/foo' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Pass
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
import foo from 'foo' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
25
|
-
import foo from './foo' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
26
|
-
import foo from '/foo/index.js' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
27
|
-
import foo from '/foo/index.ts' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
28
|
-
import foo from '/foo/package.json' // filename: /foo/src/rules/no-directory-imports.test.ts
|
|
29
|
-
```
|
|
30
|
-
<!-- prettier-ignore-end -->
|