eslint-plugin-esm 0.1.0 → 0.1.1
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/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/dist/rules/nearest-relative-path.js +4 -2
- package/dist/rules/no-rename-exports.d.ts.map +1 -1
- package/dist/rules/no-rename-exports.js +4 -2
- package/dist/rules/no-rename-imports.d.ts.map +1 -1
- package/dist/rules/no-rename-imports.js +3 -2
- package/doc/rules/nearest-relative-path.md +1 -0
- package/package.json +2 -2
- package/src/rules/nearest-relative-path.spec.ts +1 -0
- package/src/rules/nearest-relative-path.ts +5 -1
- package/src/rules/no-rename-exports.ts +5 -1
- package/src/rules/no-rename-imports.ts +4 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -6,7 +6,9 @@ export const nearestRelativePath = createRule({
|
|
|
6
6
|
create: (context) => create(context, check),
|
|
7
7
|
});
|
|
8
8
|
function check(filename, source) {
|
|
9
|
-
if (getSourceType(source) !== "local" ||
|
|
9
|
+
if (getSourceType(source) !== "local" ||
|
|
10
|
+
source.startsWith("/") ||
|
|
11
|
+
source === ".") {
|
|
10
12
|
return false;
|
|
11
13
|
}
|
|
12
14
|
const currentPath = path.dirname(filename);
|
|
@@ -20,4 +22,4 @@ function check(filename, source) {
|
|
|
20
22
|
}
|
|
21
23
|
return resultPath !== source;
|
|
22
24
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhcmVzdC1yZWxhdGl2ZS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL25lYXJlc3QtcmVsYXRpdmUtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUM7SUFDNUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxPQUFPLEVBQUUsNkRBQTZEO0lBQ3RFLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7Q0FDNUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxLQUFLLENBQUMsUUFBZ0IsRUFBRSxNQUFjO0lBQzdDLElBQ0UsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU87UUFDakMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsRUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RCwwQkFBMEI7SUFDMUIsSUFBSSxVQUFVLEdBQUcsSUFBSTtTQUNsQixRQUFRLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQztTQUNyQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xFLFVBQVUsR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLFVBQVUsS0FBSyxNQUFNLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGNyZWF0ZSwgY3JlYXRlUnVsZSwgZ2V0UnVsZU5hbWUsIGdldFNvdXJjZVR5cGUgfSBmcm9tIFwiLi4vY29tbW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBuZWFyZXN0UmVsYXRpdmVQYXRoID0gY3JlYXRlUnVsZSh7XG4gIG5hbWU6IGdldFJ1bGVOYW1lKGltcG9ydC5tZXRhLnVybCksXG4gIG1lc3NhZ2U6IFwiVGhlIHJlbGF0aXZlIHNvdXJjZSBwYXRoIHNob3VsZCBiZSBhIG5lYXJlc3QgcmVsYXRpdmUgcGF0aC5cIixcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4gY3JlYXRlKGNvbnRleHQsIGNoZWNrKSxcbn0pO1xuXG5mdW5jdGlvbiBjaGVjayhmaWxlbmFtZTogc3RyaW5nLCBzb3VyY2U6IHN0cmluZykge1xuICBpZiAoXG4gICAgZ2V0U291cmNlVHlwZShzb3VyY2UpICE9PSBcImxvY2FsXCIgfHxcbiAgICBzb3VyY2Uuc3RhcnRzV2l0aChcIi9cIikgfHxcbiAgICBzb3VyY2UgPT09IFwiLlwiXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGguZGlybmFtZShmaWxlbmFtZSk7XG4gIGNvbnN0IGFic29sdXRlU291cmNlID0gcGF0aC5yZXNvbHZlKGN1cnJlbnRQYXRoLCBzb3VyY2UpO1xuICAvLyBjb21wYXRpYmxlIHdpdGggd2luZG93c1xuICBsZXQgcmVzdWx0UGF0aCA9IHBhdGhcbiAgICAucmVsYXRpdmUoY3VycmVudFBhdGgsIGFic29sdXRlU291cmNlKVxuICAgIC5yZXBsYWNlQWxsKFwiXFxcXFwiLCBcIi9cIik7XG4gIGlmICghcmVzdWx0UGF0aC5zdGFydHNXaXRoKFwiLi9cIikgJiYgIXJlc3VsdFBhdGguc3RhcnRzV2l0aChcIi4uL1wiKSkge1xuICAgIHJlc3VsdFBhdGggPSBgLi8ke3Jlc3VsdFBhdGh9YDtcbiAgfVxuICByZXR1cm4gcmVzdWx0UGF0aCAhPT0gc291cmNlO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-rename-exports.d.ts","sourceRoot":"","sources":["../../src/rules/no-rename-exports.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;
|
|
1
|
+
{"version":3,"file":"no-rename-exports.d.ts","sourceRoot":"","sources":["../../src/rules/no-rename-exports.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;CAc1B,CAAC"}
|
|
@@ -4,10 +4,12 @@ export const noRenameExports = createRule({
|
|
|
4
4
|
message: "Disallow renaming the named-exports.",
|
|
5
5
|
create: (context) => ({
|
|
6
6
|
ExportSpecifier: (node) => {
|
|
7
|
-
if (node.exported.
|
|
7
|
+
if (node.exported.type !== "Identifier" ||
|
|
8
|
+
node.local.type !== "Identifier" ||
|
|
9
|
+
node.exported.name !== node.local.name) {
|
|
8
10
|
context.report({ node, messageId: DEFAULT_MESSAGE_ID });
|
|
9
11
|
}
|
|
10
12
|
},
|
|
11
13
|
}),
|
|
12
14
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVuYW1lLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcmVuYW1lLWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN4QyxJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xDLE9BQU8sRUFBRSxzQ0FBc0M7SUFDL0MsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hCLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWTtnQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQ3RDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztDQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJ1bGUsIERFRkFVTFRfTUVTU0FHRV9JRCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vY29tbW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBub1JlbmFtZUV4cG9ydHMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTogXCJEaXNhbGxvdyByZW5hbWluZyB0aGUgbmFtZWQtZXhwb3J0cy5cIixcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4gKHtcbiAgICBFeHBvcnRTcGVjaWZpZXI6IChub2RlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUuZXhwb3J0ZWQudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICAgbm9kZS5sb2NhbC50eXBlICE9PSBcIklkZW50aWZpZXJcIiB8fFxuICAgICAgICBub2RlLmV4cG9ydGVkLm5hbWUgIT09IG5vZGUubG9jYWwubmFtZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSksXG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-rename-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-rename-imports.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;
|
|
1
|
+
{"version":3,"file":"no-rename-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-rename-imports.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;CAa1B,CAAC"}
|
|
@@ -4,10 +4,11 @@ export const noRenameImports = createRule({
|
|
|
4
4
|
message: "Disallow renaming the named-imports.",
|
|
5
5
|
create: (context) => ({
|
|
6
6
|
ImportSpecifier: (node) => {
|
|
7
|
-
if (node.imported.
|
|
7
|
+
if (node.imported.type !== "Identifier" ||
|
|
8
|
+
node.imported.name !== node.local.name) {
|
|
8
9
|
context.report({ node, messageId: DEFAULT_MESSAGE_ID });
|
|
9
10
|
}
|
|
10
11
|
},
|
|
11
12
|
}),
|
|
12
13
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVuYW1lLWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcmVuYW1lLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN4QyxJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xDLE9BQU8sRUFBRSxzQ0FBc0M7SUFDL0MsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hCLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWTtnQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQ3RDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztDQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJ1bGUsIERFRkFVTFRfTUVTU0FHRV9JRCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vY29tbW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBub1JlbmFtZUltcG9ydHMgPSBjcmVhdGVSdWxlKHtcbiAgbmFtZTogZ2V0UnVsZU5hbWUoaW1wb3J0Lm1ldGEudXJsKSxcbiAgbWVzc2FnZTogXCJEaXNhbGxvdyByZW5hbWluZyB0aGUgbmFtZWQtaW1wb3J0cy5cIixcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4gKHtcbiAgICBJbXBvcnRTcGVjaWZpZXI6IChub2RlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUuaW1wb3J0ZWQudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICAgbm9kZS5pbXBvcnRlZC5uYW1lICE9PSBub2RlLmxvY2FsLm5hbWVcbiAgICAgICkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogREVGQVVMVF9NRVNTQUdFX0lEIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH0pLFxufSk7XG4iXX0=
|
|
@@ -43,5 +43,6 @@ export * from "a" // filename: /a/b/c/d/e.js
|
|
|
43
43
|
export * from "./a" // filename: /a/b/c/d/e.js
|
|
44
44
|
export {a} from "a" // filename: /a/b/c/d/e.js
|
|
45
45
|
export {a} from "./a" // filename: /a/b/c/d/e.js
|
|
46
|
+
import foo from "." // filename: /a/b/c/d/e.js
|
|
46
47
|
```
|
|
47
48
|
<!-- prettier-ignore-end -->
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-esm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "ESLint plugin for linting ESM (import/export syntax)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc-node/register": "1.10.0",
|
|
29
29
|
"@types/eslint": "8.56.11",
|
|
30
|
-
"@types/estree": "1.0.
|
|
30
|
+
"@types/estree": "1.0.6",
|
|
31
31
|
"@types/json-schema": "7.0.15",
|
|
32
32
|
"@types/node": "22.5.5",
|
|
33
33
|
"@typescript-eslint/parser": "7.16.1",
|
|
@@ -8,7 +8,11 @@ export const nearestRelativePath = createRule({
|
|
|
8
8
|
});
|
|
9
9
|
|
|
10
10
|
function check(filename: string, source: string) {
|
|
11
|
-
if (
|
|
11
|
+
if (
|
|
12
|
+
getSourceType(source) !== "local" ||
|
|
13
|
+
source.startsWith("/") ||
|
|
14
|
+
source === "."
|
|
15
|
+
) {
|
|
12
16
|
return false;
|
|
13
17
|
}
|
|
14
18
|
const currentPath = path.dirname(filename);
|
|
@@ -5,7 +5,11 @@ export const noRenameExports = createRule({
|
|
|
5
5
|
message: "Disallow renaming the named-exports.",
|
|
6
6
|
create: (context) => ({
|
|
7
7
|
ExportSpecifier: (node) => {
|
|
8
|
-
if (
|
|
8
|
+
if (
|
|
9
|
+
node.exported.type !== "Identifier" ||
|
|
10
|
+
node.local.type !== "Identifier" ||
|
|
11
|
+
node.exported.name !== node.local.name
|
|
12
|
+
) {
|
|
9
13
|
context.report({ node, messageId: DEFAULT_MESSAGE_ID });
|
|
10
14
|
}
|
|
11
15
|
},
|
|
@@ -5,7 +5,10 @@ export const noRenameImports = createRule({
|
|
|
5
5
|
message: "Disallow renaming the named-imports.",
|
|
6
6
|
create: (context) => ({
|
|
7
7
|
ImportSpecifier: (node) => {
|
|
8
|
-
if (
|
|
8
|
+
if (
|
|
9
|
+
node.imported.type !== "Identifier" ||
|
|
10
|
+
node.imported.name !== node.local.name
|
|
11
|
+
) {
|
|
9
12
|
context.report({ node, messageId: DEFAULT_MESSAGE_ID });
|
|
10
13
|
}
|
|
11
14
|
},
|