eslint-plugin-nima 1.2.4 → 1.2.6
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/README.md +18 -18
- package/dist/constants/boolean-prefixes.js.map +1 -1
- package/dist/constants/consoles.js.map +1 -1
- package/dist/constants/hooks.js.map +1 -1
- package/dist/index.d.ts +25 -24
- package/dist/index.js +13 -57
- package/dist/index.js.map +1 -1
- package/dist/{models/boolean-naming-convention.model.d.ts → rules/boolean-naming-convention/config.d.ts} +11 -0
- package/dist/rules/boolean-naming-convention/config.js +70 -0
- package/dist/rules/boolean-naming-convention/config.js.map +1 -0
- package/dist/rules/boolean-naming-convention/create.d.ts +11 -0
- package/dist/rules/boolean-naming-convention/create.js +415 -0
- package/dist/rules/boolean-naming-convention/create.js.map +1 -0
- package/dist/rules/boolean-naming-convention/index.d.ts +2 -0
- package/dist/rules/boolean-naming-convention/index.js +22 -0
- package/dist/rules/boolean-naming-convention/index.js.map +1 -0
- package/dist/rules/{restrict-imports.d.ts → boolean-naming-convention/rule.d.ts} +2 -2
- package/dist/rules/boolean-naming-convention/rule.js +14 -0
- package/dist/rules/boolean-naming-convention/rule.js.map +1 -0
- package/dist/rules/index.d.ts +12 -0
- package/dist/rules/index.js +49 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/no-handler-suffix/config.d.ts +14 -0
- package/dist/rules/no-handler-suffix/config.js +23 -0
- package/dist/rules/no-handler-suffix/config.js.map +1 -0
- package/dist/rules/no-handler-suffix/create.d.ts +8 -0
- package/dist/rules/no-handler-suffix/create.js +71 -0
- package/dist/rules/no-handler-suffix/create.js.map +1 -0
- package/dist/rules/no-handler-suffix/index.d.ts +2 -0
- package/dist/rules/no-handler-suffix/index.js +22 -0
- package/dist/rules/no-handler-suffix/index.js.map +1 -0
- package/dist/rules/{no-handler-suffix.d.ts → no-handler-suffix/rule.d.ts} +2 -2
- package/dist/rules/no-handler-suffix/rule.js +14 -0
- package/dist/rules/no-handler-suffix/rule.js.map +1 -0
- package/dist/rules/no-objects-in-deps/config.d.ts +14 -0
- package/dist/rules/no-objects-in-deps/config.js +22 -0
- package/dist/rules/no-objects-in-deps/config.js.map +1 -0
- package/dist/rules/no-objects-in-deps/create.d.ts +6 -0
- package/dist/rules/no-objects-in-deps/create.js +124 -0
- package/dist/rules/no-objects-in-deps/create.js.map +1 -0
- package/dist/rules/no-objects-in-deps/index.d.ts +2 -0
- package/dist/rules/no-objects-in-deps/index.js +22 -0
- package/dist/rules/no-objects-in-deps/index.js.map +1 -0
- package/dist/rules/{no-objects-in-deps.d.ts → no-objects-in-deps/rule.d.ts} +2 -2
- package/dist/rules/no-objects-in-deps/rule.js +14 -0
- package/dist/rules/no-objects-in-deps/rule.js.map +1 -0
- package/dist/rules/params-naming-convention/config.d.ts +21 -0
- package/dist/rules/params-naming-convention/config.js +55 -0
- package/dist/rules/params-naming-convention/config.js.map +1 -0
- package/dist/rules/params-naming-convention/create.d.ts +6 -0
- package/dist/rules/params-naming-convention/create.js +49 -0
- package/dist/rules/params-naming-convention/create.js.map +1 -0
- package/dist/rules/params-naming-convention/index.d.ts +2 -0
- package/dist/rules/params-naming-convention/index.js +22 -0
- package/dist/rules/params-naming-convention/index.js.map +1 -0
- package/dist/rules/{prefer-react-fc.d.ts → params-naming-convention/rule.d.ts} +2 -2
- package/dist/rules/params-naming-convention/rule.js +14 -0
- package/dist/rules/params-naming-convention/rule.js.map +1 -0
- package/dist/{models/prefer-arrow-functions.model.d.ts → rules/prefer-arrow-functions/config.d.ts} +10 -0
- package/dist/rules/prefer-arrow-functions/config.js +67 -0
- package/dist/rules/prefer-arrow-functions/config.js.map +1 -0
- package/dist/rules/prefer-arrow-functions/create.d.ts +9 -0
- package/dist/rules/prefer-arrow-functions/create.js +150 -0
- package/dist/rules/prefer-arrow-functions/create.js.map +1 -0
- package/dist/rules/prefer-arrow-functions/index.d.ts +2 -0
- package/dist/rules/prefer-arrow-functions/index.js +22 -0
- package/dist/rules/prefer-arrow-functions/index.js.map +1 -0
- package/dist/rules/{restrict-function-usage.d.ts → prefer-arrow-functions/rule.d.ts} +2 -2
- package/dist/rules/prefer-arrow-functions/rule.js +14 -0
- package/dist/rules/prefer-arrow-functions/rule.js.map +1 -0
- package/dist/rules/prefer-export-under-component/config.d.ts +14 -0
- package/dist/rules/prefer-export-under-component/config.js +23 -0
- package/dist/rules/prefer-export-under-component/config.js.map +1 -0
- package/dist/rules/prefer-export-under-component/create.d.ts +8 -0
- package/dist/rules/prefer-export-under-component/create.js +99 -0
- package/dist/rules/prefer-export-under-component/create.js.map +1 -0
- package/dist/rules/prefer-export-under-component/index.d.ts +2 -0
- package/dist/rules/prefer-export-under-component/index.js +22 -0
- package/dist/rules/prefer-export-under-component/index.js.map +1 -0
- package/dist/rules/{prefer-react-with-hooks.d.ts → prefer-export-under-component/rule.d.ts} +2 -2
- package/dist/rules/prefer-export-under-component/rule.js +14 -0
- package/dist/rules/prefer-export-under-component/rule.js.map +1 -0
- package/dist/rules/prefer-react-fc/config.d.ts +19 -0
- package/dist/rules/prefer-react-fc/config.js +43 -0
- package/dist/rules/prefer-react-fc/config.js.map +1 -0
- package/dist/rules/prefer-react-fc/create.d.ts +8 -0
- package/dist/rules/prefer-react-fc/create.js +166 -0
- package/dist/rules/prefer-react-fc/create.js.map +1 -0
- package/dist/rules/prefer-react-fc/index.d.ts +2 -0
- package/dist/rules/prefer-react-fc/index.js +22 -0
- package/dist/rules/prefer-react-fc/index.js.map +1 -0
- package/dist/rules/{prefer-arrow-functions.d.ts → prefer-react-fc/rule.d.ts} +2 -2
- package/dist/rules/prefer-react-fc/rule.js +14 -0
- package/dist/rules/prefer-react-fc/rule.js.map +1 -0
- package/dist/rules/prefer-react-with-hooks/config.d.ts +15 -0
- package/dist/rules/prefer-react-with-hooks/config.js +25 -0
- package/dist/rules/prefer-react-with-hooks/config.js.map +1 -0
- package/dist/rules/prefer-react-with-hooks/create.d.ts +7 -0
- package/dist/rules/prefer-react-with-hooks/create.js +188 -0
- package/dist/rules/prefer-react-with-hooks/create.js.map +1 -0
- package/dist/rules/prefer-react-with-hooks/index.d.ts +2 -0
- package/dist/rules/prefer-react-with-hooks/index.js +22 -0
- package/dist/rules/prefer-react-with-hooks/index.js.map +1 -0
- package/dist/rules/{prefer-export-under-component.d.ts → prefer-react-with-hooks/rule.d.ts} +2 -2
- package/dist/rules/prefer-react-with-hooks/rule.js +14 -0
- package/dist/rules/prefer-react-with-hooks/rule.js.map +1 -0
- package/dist/rules/prefer-void-for-optional-param/config.d.ts +15 -0
- package/dist/rules/prefer-void-for-optional-param/config.js +25 -0
- package/dist/rules/prefer-void-for-optional-param/config.js.map +1 -0
- package/dist/rules/prefer-void-for-optional-param/create.d.ts +8 -0
- package/dist/rules/prefer-void-for-optional-param/create.js +188 -0
- package/dist/rules/prefer-void-for-optional-param/create.js.map +1 -0
- package/dist/rules/prefer-void-for-optional-param/index.d.ts +2 -0
- package/dist/rules/prefer-void-for-optional-param/index.js +22 -0
- package/dist/rules/prefer-void-for-optional-param/index.js.map +1 -0
- package/dist/rules/prefer-void-for-optional-param/rule.d.ts +5 -0
- package/dist/rules/prefer-void-for-optional-param/rule.js +14 -0
- package/dist/rules/prefer-void-for-optional-param/rule.js.map +1 -0
- package/dist/rules/restrict-console-methods/config.d.ts +18 -0
- package/dist/rules/restrict-console-methods/config.js +38 -0
- package/dist/rules/restrict-console-methods/config.js.map +1 -0
- package/dist/rules/restrict-console-methods/create.d.ts +6 -0
- package/dist/rules/restrict-console-methods/create.js +34 -0
- package/dist/rules/restrict-console-methods/create.js.map +1 -0
- package/dist/rules/restrict-console-methods/index.d.ts +2 -0
- package/dist/rules/restrict-console-methods/index.js +22 -0
- package/dist/rules/restrict-console-methods/index.js.map +1 -0
- package/dist/rules/restrict-console-methods/rule.d.ts +5 -0
- package/dist/rules/restrict-console-methods/rule.js +14 -0
- package/dist/rules/restrict-console-methods/rule.js.map +1 -0
- package/dist/rules/restrict-function-usage/config.d.ts +21 -0
- package/dist/rules/restrict-function-usage/config.js +62 -0
- package/dist/rules/restrict-function-usage/config.js.map +1 -0
- package/dist/rules/restrict-function-usage/create.d.ts +6 -0
- package/dist/rules/restrict-function-usage/create.js +76 -0
- package/dist/rules/restrict-function-usage/create.js.map +1 -0
- package/dist/rules/restrict-function-usage/index.d.ts +2 -0
- package/dist/rules/restrict-function-usage/index.js +22 -0
- package/dist/rules/restrict-function-usage/index.js.map +1 -0
- package/dist/rules/restrict-function-usage/rule.d.ts +5 -0
- package/dist/rules/restrict-function-usage/rule.js +14 -0
- package/dist/rules/restrict-function-usage/rule.js.map +1 -0
- package/dist/rules/restrict-imports/config.d.ts +22 -0
- package/dist/rules/restrict-imports/config.js +69 -0
- package/dist/rules/restrict-imports/config.js.map +1 -0
- package/dist/rules/restrict-imports/create.d.ts +6 -0
- package/dist/rules/restrict-imports/create.js +92 -0
- package/dist/rules/restrict-imports/create.js.map +1 -0
- package/dist/rules/restrict-imports/index.d.ts +2 -0
- package/dist/rules/restrict-imports/index.js +22 -0
- package/dist/rules/restrict-imports/index.js.map +1 -0
- package/dist/rules/restrict-imports/rule.d.ts +5 -0
- package/dist/rules/restrict-imports/rule.js +14 -0
- package/dist/rules/restrict-imports/rule.js.map +1 -0
- package/dist/utility/core.js.map +1 -1
- package/dist/utility/file-helpers.d.ts +6 -0
- package/dist/utility/file-helpers.js +32 -0
- package/dist/utility/file-helpers.js.map +1 -0
- package/dist/utility/function-helpers.d.ts +4 -4
- package/dist/utility/function-helpers.js +17 -15
- package/dist/utility/function-helpers.js.map +1 -1
- package/dist/utility/type-helpers.d.ts +4 -1
- package/dist/utility/type-helpers.js +6 -4
- package/dist/utility/type-helpers.js.map +1 -1
- package/package.json +75 -73
- package/dist/models/boolean-naming-convention.model.js +0 -11
- package/dist/models/boolean-naming-convention.model.js.map +0 -1
- package/dist/models/no-handler-suffix.model.d.ts +0 -4
- package/dist/models/no-handler-suffix.model.js +0 -8
- package/dist/models/no-handler-suffix.model.js.map +0 -1
- package/dist/models/no-objects-in-deps.model.d.ts +0 -4
- package/dist/models/no-objects-in-deps.model.js +0 -8
- package/dist/models/no-objects-in-deps.model.js.map +0 -1
- package/dist/models/params-naming-convention.model.d.ts +0 -11
- package/dist/models/params-naming-convention.model.js +0 -8
- package/dist/models/params-naming-convention.model.js.map +0 -1
- package/dist/models/prefer-arrow-functions.model.js +0 -10
- package/dist/models/prefer-arrow-functions.model.js.map +0 -1
- package/dist/models/prefer-export-under-component.model.d.ts +0 -4
- package/dist/models/prefer-export-under-component.model.js +0 -8
- package/dist/models/prefer-export-under-component.model.js.map +0 -1
- package/dist/models/prefer-react-fc.model.d.ts +0 -9
- package/dist/models/prefer-react-fc.model.js +0 -8
- package/dist/models/prefer-react-fc.model.js.map +0 -1
- package/dist/models/prefer-react-with-hooks.model.d.ts +0 -5
- package/dist/models/prefer-react-with-hooks.model.js +0 -9
- package/dist/models/prefer-react-with-hooks.model.js.map +0 -1
- package/dist/models/prefer-void-for-optional-param.model.d.ts +0 -5
- package/dist/models/prefer-void-for-optional-param.model.js +0 -9
- package/dist/models/prefer-void-for-optional-param.model.js.map +0 -1
- package/dist/models/restrict-console-methods.model.d.ts +0 -8
- package/dist/models/restrict-console-methods.model.js +0 -8
- package/dist/models/restrict-console-methods.model.js.map +0 -1
- package/dist/models/restrict-function-usage.model.d.ts +0 -11
- package/dist/models/restrict-function-usage.model.js +0 -8
- package/dist/models/restrict-function-usage.model.js.map +0 -1
- package/dist/models/restrict-imports.model.d.ts +0 -12
- package/dist/models/restrict-imports.model.js +0 -8
- package/dist/models/restrict-imports.model.js.map +0 -1
- package/dist/rules/boolean-naming-convention.d.ts +0 -5
- package/dist/rules/boolean-naming-convention.js +0 -379
- package/dist/rules/boolean-naming-convention.js.map +0 -1
- package/dist/rules/no-handler-suffix.js +0 -89
- package/dist/rules/no-handler-suffix.js.map +0 -1
- package/dist/rules/no-objects-in-deps.js +0 -90
- package/dist/rules/no-objects-in-deps.js.map +0 -1
- package/dist/rules/params-naming-convention.d.ts +0 -5
- package/dist/rules/params-naming-convention.js +0 -95
- package/dist/rules/params-naming-convention.js.map +0 -1
- package/dist/rules/prefer-arrow-functions.js +0 -208
- package/dist/rules/prefer-arrow-functions.js.map +0 -1
- package/dist/rules/prefer-export-under-component.js +0 -113
- package/dist/rules/prefer-export-under-component.js.map +0 -1
- package/dist/rules/prefer-react-fc.js +0 -204
- package/dist/rules/prefer-react-fc.js.map +0 -1
- package/dist/rules/prefer-react-with-hooks.js +0 -185
- package/dist/rules/prefer-react-with-hooks.js.map +0 -1
- package/dist/rules/prefer-void-for-optional-param.d.ts +0 -6
- package/dist/rules/prefer-void-for-optional-param.js +0 -188
- package/dist/rules/prefer-void-for-optional-param.js.map +0 -1
- package/dist/rules/restrict-console-methods.d.ts +0 -5
- package/dist/rules/restrict-console-methods.js +0 -66
- package/dist/rules/restrict-console-methods.js.map +0 -1
- package/dist/rules/restrict-function-usage.js +0 -121
- package/dist/rules/restrict-function-usage.js.map +0 -1
- package/dist/rules/restrict-imports.js +0 -135
- package/dist/rules/restrict-imports.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rule = exports.name = void 0;
|
|
4
|
+
const core_1 = require("../../utility/core");
|
|
5
|
+
const config_1 = require("./config");
|
|
6
|
+
Object.defineProperty(exports, "name", { enumerable: true, get: function () { return config_1.name; } });
|
|
7
|
+
const create_1 = require("./create");
|
|
8
|
+
exports.rule = (0, core_1.createRule)({
|
|
9
|
+
create: create_1.create,
|
|
10
|
+
defaultOptions: config_1.defaultOptions,
|
|
11
|
+
meta: config_1.config,
|
|
12
|
+
name: config_1.name,
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/rules/restrict-function-usage/rule.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAE3C,qCAAgF;AAGvE,qFAHkC,aAAI,OAGlC;AAFb,qCAAkC;AAIrB,QAAA,IAAI,GAAG,IAAA,iBAAU,EAAoB;IAC9C,MAAM,EAAN,eAAM;IACN,cAAc,EAAd,uBAAc;IACd,IAAI,EAAE,eAAM;IACZ,IAAI,EAAJ,aAAI;CACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RuleModule } from "@typescript-eslint/utils/ts-eslint";
|
|
2
|
+
export declare const name = "restrict-imports";
|
|
3
|
+
export declare const enum Messages {
|
|
4
|
+
IMPORT_DISALLOWED = "IMPORT_DISALLOWED"
|
|
5
|
+
}
|
|
6
|
+
export type Options = [
|
|
7
|
+
Partial<{
|
|
8
|
+
allowImports: string[];
|
|
9
|
+
disableImports: string[];
|
|
10
|
+
files: string[];
|
|
11
|
+
folders: string[];
|
|
12
|
+
from: string[];
|
|
13
|
+
}>[]
|
|
14
|
+
];
|
|
15
|
+
type ExtendedPluginProperties = {
|
|
16
|
+
recommended: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const config: {
|
|
19
|
+
docs: ExtendedPluginProperties & RuleModule<Messages, Options>["meta"]["docs"];
|
|
20
|
+
} & Omit<RuleModule<Messages, Options>["meta"], "defaultOptions">;
|
|
21
|
+
export declare const defaultOptions: Options;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultOptions = exports.config = exports.Messages = exports.name = void 0;
|
|
4
|
+
exports.name = "restrict-imports";
|
|
5
|
+
var Messages;
|
|
6
|
+
(function (Messages) {
|
|
7
|
+
Messages["IMPORT_DISALLOWED"] = "IMPORT_DISALLOWED";
|
|
8
|
+
})(Messages || (exports.Messages = Messages = {}));
|
|
9
|
+
exports.config = {
|
|
10
|
+
docs: {
|
|
11
|
+
description: "Disallow use of any imports in any files or folders unless explicitly allowed.",
|
|
12
|
+
recommended: false,
|
|
13
|
+
url: "https://github.com/NIMA-Enterprises/eslint-plugin-nima/blob/main/documentation/rules/restrict-imports.md",
|
|
14
|
+
},
|
|
15
|
+
messages: {
|
|
16
|
+
[Messages.IMPORT_DISALLOWED]: "Do not import {{ importName }} inside {{ filename }}.",
|
|
17
|
+
},
|
|
18
|
+
schema: [
|
|
19
|
+
{
|
|
20
|
+
description: "List of rule option objects for restricting imports",
|
|
21
|
+
items: {
|
|
22
|
+
additionalProperties: false,
|
|
23
|
+
description: "Rule option that configures allowed/disabled imports and file matching",
|
|
24
|
+
properties: {
|
|
25
|
+
allowImports: {
|
|
26
|
+
description: "Imports to allow",
|
|
27
|
+
items: {
|
|
28
|
+
type: "string",
|
|
29
|
+
},
|
|
30
|
+
type: "array",
|
|
31
|
+
},
|
|
32
|
+
disableImports: {
|
|
33
|
+
description: "Imports to disable",
|
|
34
|
+
items: {
|
|
35
|
+
type: "string",
|
|
36
|
+
},
|
|
37
|
+
type: "array",
|
|
38
|
+
},
|
|
39
|
+
files: {
|
|
40
|
+
description: "Files to match for rule",
|
|
41
|
+
items: {
|
|
42
|
+
type: "string",
|
|
43
|
+
},
|
|
44
|
+
type: "array",
|
|
45
|
+
},
|
|
46
|
+
folders: {
|
|
47
|
+
description: "Folders to match for rule",
|
|
48
|
+
items: {
|
|
49
|
+
type: "string",
|
|
50
|
+
},
|
|
51
|
+
type: "array",
|
|
52
|
+
},
|
|
53
|
+
from: {
|
|
54
|
+
description: "Source patterns to match (from)",
|
|
55
|
+
items: {
|
|
56
|
+
type: "string",
|
|
57
|
+
},
|
|
58
|
+
type: "array",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
type: "object",
|
|
62
|
+
},
|
|
63
|
+
type: "array",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
type: "problem",
|
|
67
|
+
};
|
|
68
|
+
exports.defaultOptions = [[]];
|
|
69
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/rules/restrict-imports/config.ts"],"names":[],"mappings":";;;AAEa,QAAA,IAAI,GAAG,kBAAkB,CAAC;AAEvC,IAAkB,QAEjB;AAFD,WAAkB,QAAQ;IACtB,mDAAuC,CAAA;AAC3C,CAAC,EAFiB,QAAQ,wBAAR,QAAQ,QAEzB;AAgBY,QAAA,MAAM,GAGiD;IAChE,IAAI,EAAE;QACF,WAAW,EACP,gFAAgF;QACpF,WAAW,EAAE,KAAK;QAClB,GAAG,EAAE,0GAA0G;KAClH;IACD,QAAQ,EAAE;QACN,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACxB,uDAAuD;KAC9D;IACD,MAAM,EAAE;QACJ;YACI,WAAW,EAAE,qDAAqD;YAClE,KAAK,EAAE;gBACH,oBAAoB,EAAE,KAAK;gBAC3B,WAAW,EACP,wEAAwE;gBAC5E,UAAU,EAAE;oBACR,YAAY,EAAE;wBACV,WAAW,EAAE,kBAAkB;wBAC/B,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,cAAc,EAAE;wBACZ,WAAW,EAAE,oBAAoB;wBACjC,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,KAAK,EAAE;wBACH,WAAW,EAAE,yBAAyB;wBACtC,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,OAAO,EAAE;wBACL,WAAW,EAAE,2BAA2B;wBACxC,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;oBACD,IAAI,EAAE;wBACF,WAAW,EAAE,iCAAiC;wBAC9C,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;yBACjB;wBACD,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE,OAAO;SAChB;KACJ;IACD,IAAI,EAAE,SAAS;CAClB,CAAC;AAEW,QAAA,cAAc,GAAY,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TSESTree } from "@typescript-eslint/utils";
|
|
2
|
+
import { RuleContext } from "@typescript-eslint/utils/ts-eslint";
|
|
3
|
+
import { Messages, type Options } from "./config";
|
|
4
|
+
export declare const create: (context: RuleContext<Messages, Options>, [options]: readonly Options[number][]) => {
|
|
5
|
+
ImportDeclaration: (node: TSESTree.ImportDeclaration) => void;
|
|
6
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.create = void 0;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
const file_helpers_1 = require("../../utility/file-helpers");
|
|
6
|
+
const minimatch_1 = require("minimatch");
|
|
7
|
+
const config_1 = require("./config");
|
|
8
|
+
const create = (context, [options = []]) => {
|
|
9
|
+
const isImportDisabled = ({ filename, importName, importSource, }) => {
|
|
10
|
+
return options.some((option) => {
|
|
11
|
+
const { allowImports = [], disableImports = [], files = [], folders = [], from = [], } = option;
|
|
12
|
+
const hasFromRestriction = from.length > 0;
|
|
13
|
+
if (hasFromRestriction) {
|
|
14
|
+
const isSourceMatches = from.some((pattern) => (0, minimatch_1.minimatch)(importSource, pattern));
|
|
15
|
+
if (!isSourceMatches) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
let isAppliesToFile = false;
|
|
20
|
+
isAppliesToFile =
|
|
21
|
+
files.length === 0 && folders.length === 0
|
|
22
|
+
? true
|
|
23
|
+
: (0, file_helpers_1.isFileMatched)({
|
|
24
|
+
filename,
|
|
25
|
+
files,
|
|
26
|
+
folders,
|
|
27
|
+
});
|
|
28
|
+
if (allowImports.length > 0) {
|
|
29
|
+
const isImportInAllowList = allowImports.some((imp) => imp.toLowerCase() === importName.toLowerCase());
|
|
30
|
+
if (isImportInAllowList) {
|
|
31
|
+
return files.length === 0 && folders.length === 0
|
|
32
|
+
? false
|
|
33
|
+
: !isAppliesToFile;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!isAppliesToFile) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (disableImports.some((imp) => imp.toLowerCase() === importName.toLowerCase())) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
ImportDeclaration: (node) => {
|
|
48
|
+
const filename = context.filename;
|
|
49
|
+
const importSource = typeof node.source.value === "string" ? node.source.value : "";
|
|
50
|
+
for (const specifier of node.specifiers) {
|
|
51
|
+
let importName;
|
|
52
|
+
switch (specifier.type) {
|
|
53
|
+
case utils_1.AST_NODE_TYPES.ImportDefaultSpecifier: {
|
|
54
|
+
importName = specifier.local.name;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case utils_1.AST_NODE_TYPES.ImportNamespaceSpecifier: {
|
|
58
|
+
importName = specifier.local.name;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case utils_1.AST_NODE_TYPES.ImportSpecifier: {
|
|
62
|
+
importName =
|
|
63
|
+
specifier.imported.type ===
|
|
64
|
+
utils_1.AST_NODE_TYPES.Identifier
|
|
65
|
+
? specifier.imported.name
|
|
66
|
+
: specifier.imported.value;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
default: {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (isImportDisabled({
|
|
74
|
+
filename,
|
|
75
|
+
importName: importName.toLowerCase(),
|
|
76
|
+
importSource,
|
|
77
|
+
})) {
|
|
78
|
+
context.report({
|
|
79
|
+
data: {
|
|
80
|
+
filename,
|
|
81
|
+
importName,
|
|
82
|
+
},
|
|
83
|
+
messageId: config_1.Messages.IMPORT_DISALLOWED,
|
|
84
|
+
node: specifier,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
exports.create = create;
|
|
92
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/rules/restrict-imports/create.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAEpE,wDAAsD;AACtD,yCAAsC;AAEtC,qCAAkD;AAE3C,MAAM,MAAM,GAAG,CAClB,OAAuC,EACvC,CAAC,OAAO,GAAG,EAAE,CAA6B,EAC5C,EAAE;IACA,MAAM,gBAAgB,GAAG,CAAC,EACtB,QAAQ,EACR,UAAU,EACV,YAAY,GAKf,EAAE,EAAE;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,EACF,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,EAAE,EACnB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,IAAI,GAAG,EAAE,GACZ,GAAG,MAAM,CAAC;YAEX,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,IAAA,qBAAS,EAAC,YAAY,EAAE,OAAO,CAAC,CACnC,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YAED,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,eAAe;gBACX,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBACtC,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAA,4BAAa,EAAC;wBACV,QAAQ;wBACR,KAAK;wBACL,OAAO;qBACV,CAAC,CAAC;YAEb,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAC1D,CAAC;gBAEF,IAAI,mBAAmB,EAAE,CAAC;oBACtB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAC7C,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC3B,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IACI,cAAc,CAAC,IAAI,CACf,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAC1D,EACH,CAAC;gBACC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,iBAAiB,EAAE,CAAC,IAAgC,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,MAAM,YAAY,GACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtC,IAAI,UAAkB,CAAC;gBAEvB,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,sBAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBACzC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBAElC,MAAM;oBACV,CAAC;oBACD,KAAK,sBAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC;wBAC3C,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBAElC,MAAM;oBACV,CAAC;oBACD,KAAK,sBAAc,CAAC,eAAe,CAAC,CAAC,CAAC;wBAClC,UAAU;4BACN,SAAS,CAAC,QAAQ,CAAC,IAAI;gCACvB,sBAAc,CAAC,UAAU;gCACrB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;gCACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAEnC,MAAM;oBACV,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACN,SAAS;oBACb,CAAC;gBACL,CAAC;gBAED,IACI,gBAAgB,CAAC;oBACb,QAAQ;oBACR,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;oBACpC,YAAY;iBACf,CAAC,EACJ,CAAC;oBACC,OAAO,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE;4BACF,QAAQ;4BACR,UAAU;yBACb;wBACD,SAAS,EAAE,iBAAQ,CAAC,iBAAiB;wBACrC,IAAI,EAAE,SAAS;qBAClB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AA5HW,QAAA,MAAM,UA4HjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Messages = exports.config = void 0;
|
|
18
|
+
var config_1 = require("./config");
|
|
19
|
+
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_1.config; } });
|
|
20
|
+
Object.defineProperty(exports, "Messages", { enumerable: true, get: function () { return config_1.Messages; } });
|
|
21
|
+
__exportStar(require("./rule"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/restrict-imports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAA4C;AAAnC,gGAAA,MAAM,OAAA;AAAE,kGAAA,QAAQ,OAAA;AACzB,yCAAuB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rule = exports.name = void 0;
|
|
4
|
+
const core_1 = require("../../utility/core");
|
|
5
|
+
const config_1 = require("./config");
|
|
6
|
+
Object.defineProperty(exports, "name", { enumerable: true, get: function () { return config_1.name; } });
|
|
7
|
+
const create_1 = require("./create");
|
|
8
|
+
exports.rule = (0, core_1.createRule)({
|
|
9
|
+
create: create_1.create,
|
|
10
|
+
defaultOptions: config_1.defaultOptions,
|
|
11
|
+
meta: config_1.config,
|
|
12
|
+
name: config_1.name,
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/rules/restrict-imports/rule.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAE3C,qCAAgF;AAGvE,qFAHkC,aAAI,OAGlC;AAFb,qCAAkC;AAIrB,QAAA,IAAI,GAAG,IAAA,iBAAU,EAAoB;IAC9C,MAAM,EAAN,eAAM;IACN,cAAc,EAAd,uBAAc;IACd,IAAI,EAAE,eAAM;IACZ,IAAI,EAAJ,aAAI;CACP,CAAC,CAAC"}
|
package/dist/utility/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/utility/core.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAM1C,QAAA,UAAU,GAAG,mBAAW,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/utility/core.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAM1C,QAAA,UAAU,GAAG,mBAAW,CAAC,WAAW,CAC7C,CAAC,IAAI,EAAE,EAAE,CACL,wFAAwF,IAAI,KAAK,CACxG,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isFileMatched = void 0;
|
|
7
|
+
const minimatch_1 = require("minimatch");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const isFileMatched = ({ filename, files, folders, }) => {
|
|
10
|
+
const dir = node_path_1.default.dirname(filename);
|
|
11
|
+
const base = node_path_1.default.basename(filename);
|
|
12
|
+
const hasFolders = folders.length > 0;
|
|
13
|
+
const hasFiles = files.length > 0;
|
|
14
|
+
if (!hasFolders && !hasFiles) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (hasFolders && hasFiles) {
|
|
18
|
+
const isFolderMatch = folders.some((f) => (0, minimatch_1.minimatch)(dir, f));
|
|
19
|
+
const isFileMatch = files.some((f) => (0, minimatch_1.minimatch)(base, f));
|
|
20
|
+
return isFolderMatch && isFileMatch;
|
|
21
|
+
}
|
|
22
|
+
if (hasFolders && !hasFiles) {
|
|
23
|
+
return folders.some((f) => (0, minimatch_1.minimatch)(dir, f));
|
|
24
|
+
}
|
|
25
|
+
if (!hasFolders && hasFiles) {
|
|
26
|
+
return files.some((f) => (0, minimatch_1.minimatch)(base, f));
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
|
30
|
+
exports.isFileMatched = isFileMatched;
|
|
31
|
+
exports.default = exports.isFileMatched;
|
|
32
|
+
//# sourceMappingURL=file-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-helpers.js","sourceRoot":"","sources":["../../src/utility/file-helpers.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsC;AACtC,0DAA6B;AAEtB,MAAM,aAAa,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,OAAO,GAKV,EAAE,EAAE;IACD,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,aAAa,IAAI,WAAW,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAlCW,QAAA,aAAa,iBAkCxB;AAEF,kBAAe,qBAAa,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TSESTree } from "@typescript-eslint/utils";
|
|
2
|
-
export declare const getFunctionName: (node: TSESTree.FunctionLike) => string;
|
|
2
|
+
export declare const getFunctionName: (node: TSESTree.FunctionLike) => string | null;
|
|
3
3
|
export declare const getFunctionNameWithContext: (node: TSESTree.FunctionLike) => {
|
|
4
4
|
context: string;
|
|
5
5
|
name: string;
|
|
6
|
-
};
|
|
6
|
+
} | null;
|
|
7
7
|
export declare const isComponentFunction: (fnName: string) => boolean;
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
8
|
+
export declare const hasReactTypeAnnotation: (declarator: TSESTree.VariableDeclarator) => boolean;
|
|
9
|
+
export declare const isReactReturn: (node: TSESTree.FunctionLike) => boolean;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isComponentFunction = exports.getFunctionNameWithContext = exports.getFunctionName = void 0;
|
|
4
|
-
exports.hasReactTypeAnnotation = hasReactTypeAnnotation;
|
|
5
|
-
exports.isReactReturn = isReactReturn;
|
|
3
|
+
exports.isReactReturn = exports.hasReactTypeAnnotation = exports.isComponentFunction = exports.getFunctionNameWithContext = exports.getFunctionName = void 0;
|
|
6
4
|
const utils_1 = require("@typescript-eslint/utils");
|
|
7
5
|
const getFunctionName = (node) => {
|
|
8
6
|
if (node.id?.type === utils_1.AST_NODE_TYPES.Identifier) {
|
|
9
7
|
return node.id.name;
|
|
10
8
|
}
|
|
11
|
-
if (!node.parent)
|
|
9
|
+
if (!node.parent) {
|
|
12
10
|
return null;
|
|
11
|
+
}
|
|
13
12
|
switch (node.parent.type) {
|
|
14
13
|
case utils_1.AST_NODE_TYPES.ArrayExpression:
|
|
15
14
|
break;
|
|
@@ -17,10 +16,9 @@ const getFunctionName = (node) => {
|
|
|
17
16
|
if (node.parent.left.type === utils_1.AST_NODE_TYPES.Identifier) {
|
|
18
17
|
return node.parent.left.name;
|
|
19
18
|
}
|
|
20
|
-
if (node.parent.left.type === utils_1.AST_NODE_TYPES.MemberExpression
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
19
|
+
if (node.parent.left.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
20
|
+
node.parent.left.property.type === utils_1.AST_NODE_TYPES.Identifier) {
|
|
21
|
+
return node.parent.left.property.name;
|
|
24
22
|
}
|
|
25
23
|
break;
|
|
26
24
|
case utils_1.AST_NODE_TYPES.CallExpression:
|
|
@@ -38,7 +36,7 @@ const getFunctionName = (node) => {
|
|
|
38
36
|
if (node.parent.key.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
39
37
|
!node.parent.computed) {
|
|
40
38
|
const prefix = node.parent.static ? "static " : "";
|
|
41
|
-
const kind = node.parent.kind
|
|
39
|
+
const kind = node.parent.kind === "method" ? "" : `${node.parent.kind} `;
|
|
42
40
|
return `${prefix}${kind}${node.parent.key.name}`;
|
|
43
41
|
}
|
|
44
42
|
break;
|
|
@@ -64,8 +62,9 @@ const getFunctionName = (node) => {
|
|
|
64
62
|
exports.getFunctionName = getFunctionName;
|
|
65
63
|
const getFunctionNameWithContext = (node) => {
|
|
66
64
|
const name = (0, exports.getFunctionName)(node);
|
|
67
|
-
if (!name)
|
|
65
|
+
if (!name) {
|
|
68
66
|
return null;
|
|
67
|
+
}
|
|
69
68
|
let context = "function";
|
|
70
69
|
if (node.parent) {
|
|
71
70
|
switch (node.parent.type) {
|
|
@@ -96,7 +95,7 @@ const isComponentFunction = (fnName) => {
|
|
|
96
95
|
return !!/^[A-Z]/.test(fnName);
|
|
97
96
|
};
|
|
98
97
|
exports.isComponentFunction = isComponentFunction;
|
|
99
|
-
|
|
98
|
+
const hasReactTypeAnnotation = (declarator) => {
|
|
100
99
|
if (declarator.id.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
101
100
|
declarator.id.typeAnnotation) {
|
|
102
101
|
const typeAnnotation = declarator.id.typeAnnotation.typeAnnotation;
|
|
@@ -115,12 +114,14 @@ function hasReactTypeAnnotation(declarator) {
|
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
return false;
|
|
118
|
-
}
|
|
119
|
-
|
|
117
|
+
};
|
|
118
|
+
exports.hasReactTypeAnnotation = hasReactTypeAnnotation;
|
|
119
|
+
const isReactReturn = (node) => {
|
|
120
120
|
if (node.returnType?.typeAnnotation.type === utils_1.AST_NODE_TYPES.TSTypeReference) {
|
|
121
121
|
const typeName = node.returnType.typeAnnotation.typeName;
|
|
122
122
|
if ((typeName.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
123
|
-
(typeName.name === "ReactNode" ||
|
|
123
|
+
(typeName.name === "ReactNode" ||
|
|
124
|
+
typeName.name === "JSX.Element")) ||
|
|
124
125
|
(typeName.type === utils_1.AST_NODE_TYPES.TSQualifiedName &&
|
|
125
126
|
typeName.left.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
126
127
|
typeName.left.name === "React" &&
|
|
@@ -140,5 +141,6 @@ function isReactReturn(node) {
|
|
|
140
141
|
return true;
|
|
141
142
|
}
|
|
142
143
|
return false;
|
|
143
|
-
}
|
|
144
|
+
};
|
|
145
|
+
exports.isReactReturn = isReactReturn;
|
|
144
146
|
//# sourceMappingURL=function-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-helpers.js","sourceRoot":"","sources":["../../src/utility/function-helpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"function-helpers.js","sourceRoot":"","sources":["../../src/utility/function-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
2
|
-
export declare
|
|
2
|
+
export declare const getType: ({ context, node, }: {
|
|
3
|
+
context: Readonly<TSESLint.RuleContext<string, unknown[]>>;
|
|
4
|
+
node: TSESTree.Node;
|
|
5
|
+
}) => string | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getType =
|
|
4
|
-
|
|
3
|
+
exports.getType = void 0;
|
|
4
|
+
const getType = ({ context, node, }) => {
|
|
5
5
|
const sourceCode = context.sourceCode;
|
|
6
6
|
const services = sourceCode.parserServices;
|
|
7
7
|
if (!services?.program?.getTypeChecker) {
|
|
@@ -10,8 +10,9 @@ function getType(context, node) {
|
|
|
10
10
|
const checker = services.program.getTypeChecker();
|
|
11
11
|
try {
|
|
12
12
|
const tsNode = services.esTreeNodeToTSNodeMap?.get(node);
|
|
13
|
-
if (!tsNode)
|
|
13
|
+
if (!tsNode) {
|
|
14
14
|
return;
|
|
15
|
+
}
|
|
15
16
|
const type = checker.getTypeAtLocation(tsNode);
|
|
16
17
|
const typeString = checker.typeToString(type);
|
|
17
18
|
return typeString;
|
|
@@ -19,5 +20,6 @@ function getType(context, node) {
|
|
|
19
20
|
catch {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
|
-
}
|
|
23
|
+
};
|
|
24
|
+
exports.getType = getType;
|
|
23
25
|
//# sourceMappingURL=type-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../../src/utility/type-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../../src/utility/type-helpers.ts"],"names":[],"mappings":";;;AAEO,MAAM,OAAO,GAAG,CAAC,EACpB,OAAO,EACP,IAAI,GAIP,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACrC,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IAElD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,UAAU,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO;IACX,CAAC;AACL,CAAC,CAAC;AA7BW,QAAA,OAAO,WA6BlB"}
|