eslint-plugin-graphile-export 0.0.2-0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExhaustiveDeps.js","sourceRoot":"","sources":["../src/ExhaustiveDeps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "eslint";
2
+ export declare const ExportInstances: Rule.RuleModule;
3
+ //# sourceMappingURL=ExportInstances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportInstances.d.ts","sourceRoot":"","sources":["../src/ExportInstances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiBnC,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,UAwFlC,CAAC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExportInstances = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ const NoNested_js_1 = require("./NoNested.js");
6
+ const KNOWN_IMPORTS = [
7
+ ["@dataplan/pg", "PgSource"],
8
+ ["@dataplan/pg", "PgSourceBuilder"],
9
+ ["@dataplan/pg", "PgExecutor"],
10
+ ["@dataplan/pg", "recordType"],
11
+ ];
12
+ exports.ExportInstances = {
13
+ meta: {
14
+ type: "suggestion",
15
+ docs: {
16
+ description: "Looks for 'plan' method on something that looks like a GraphQL definition and ensures it's exportable.",
17
+ recommended: true,
18
+ url: "TODO",
19
+ },
20
+ fixable: "code",
21
+ hasSuggestions: true,
22
+ schema: [
23
+ {
24
+ type: "object",
25
+ additionalProperties: false,
26
+ disableAutofix: false,
27
+ properties: {
28
+ disableAutofix: {
29
+ type: "boolean",
30
+ },
31
+ },
32
+ },
33
+ ],
34
+ },
35
+ create(context) {
36
+ const disableAutofix = context.options?.[0]?.disableAutofix ?? false;
37
+ // const scopeManager = context.getSourceCode().scopeManager;
38
+ const options = {
39
+ disableAutofix,
40
+ };
41
+ function process(node) {
42
+ if (node.type === "NewExpression" || node.type === "CallExpression") {
43
+ const callee = node.callee;
44
+ const calleeIdentifier = callee.type === "Identifier" ? callee : null;
45
+ if (!calleeIdentifier) {
46
+ return;
47
+ }
48
+ const constructorName = calleeIdentifier?.name;
49
+ const possibles = KNOWN_IMPORTS.filter((tuple) => tuple[1] === constructorName);
50
+ if (possibles.length === 0) {
51
+ return;
52
+ }
53
+ // TODO: determine if the definition for this identifier is an import from any of these `possibles`.
54
+ //const scope = scopeManager.acquire(node);
55
+ if ((0, NoNested_js_1.hasExportableParent)(node))
56
+ return;
57
+ (0, common_js_1.reportProblem)(context, options, {
58
+ node: node,
59
+ message: `${node.type === "NewExpression" ? "Construction" : "Call"} of '${constructorName}' without EXPORTABLE.`,
60
+ suggest: [
61
+ {
62
+ desc: "convert to exportable",
63
+ fix(fixer) {
64
+ return [
65
+ fixer.replaceTextRange([node.range[0], node.range[0]], "EXPORTABLE(() => "),
66
+ fixer.replaceTextRange([node.range[1], node.range[1]], ", [])"),
67
+ ];
68
+ },
69
+ },
70
+ ],
71
+ });
72
+ }
73
+ }
74
+ return {
75
+ NewExpression(node) {
76
+ process(node);
77
+ },
78
+ CallExpression(node) {
79
+ process(node);
80
+ },
81
+ };
82
+ },
83
+ };
84
+ //# sourceMappingURL=ExportInstances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportInstances.js","sourceRoot":"","sources":["../src/ExportInstances.ts"],"names":[],"mappings":";;;AAGA,2CAA4C;AAC5C,+CAAoD;AAMpD,MAAM,aAAa,GAA4B;IAC7C,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACnC,CAAC,cAAc,EAAE,YAAY,CAAC;IAC9B,CAAC,cAAc,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEW,QAAA,eAAe,GAAoB;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,wGAAwG;YAC1G,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,MAAM;SACZ;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE;oBACV,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;QACrE,6DAA6D;QAE7D,MAAM,OAAO,GAAkB;YAC7B,cAAc;SACf,CAAC;QACF,SAAS,OAAO,CACd,IAE+C;YAE/C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtE,IAAI,CAAC,gBAAgB,EAAE;oBACrB,OAAO;iBACR;gBACD,MAAM,eAAe,GAAG,gBAAgB,EAAE,IAAI,CAAC;gBAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CACxC,CAAC;gBACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,OAAO;iBACR;gBACD,oGAAoG;gBACpG,2CAA2C;gBAE3C,IAAI,IAAA,iCAAmB,EAAC,IAAI,CAAC;oBAAE,OAAO;gBAEtC,IAAA,yBAAa,EAAC,OAAO,EAAE,OAAO,EAAE;oBAC9B,IAAI,EAAE,IAA6B;oBACnC,OAAO,EAAE,GACP,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MACnD,QAAQ,eAAe,uBAAuB;oBAC9C,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,GAAG,CAAC,KAAK;gCACP,OAAO;oCACL,KAAK,CAAC,gBAAgB,CACpB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,EAChC,mBAAmB,CACpB;oCACD,KAAK,CAAC,gBAAgB,CACpB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,EAChC,OAAO,CACR;iCACF,CAAC;4BACJ,CAAC;yBACF;qBACF;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QACD,OAAO;YACL,aAAa,CAAC,IAAI;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,cAAc,CAAC,IAAI;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "eslint";
2
+ export declare const ExportMethods: Rule.RuleModule;
3
+ //# sourceMappingURL=ExportMethods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportMethods.d.ts","sourceRoot":"","sources":["../src/ExportMethods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgDnC,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,UAuEhC,CAAC"}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExportMethods = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ const NoNested_js_1 = require("./NoNested.js");
6
+ const dev = process.env.GRAPHILE_ENV === "development";
7
+ /**
8
+ * So we don't reach too wide we only want to match objects that look like
9
+ * they're probably plan configurations. For now this is the GraphQLFieldConfig
10
+ * keys, GraphQLArgumentConfig keys, plus `match/plan` for pgPolymorphic and
11
+ * plan/type/name for pgSelect.
12
+ */
13
+ const ALLOWED_SIBLING_KEYS = [
14
+ // GraphQLFieldConfig
15
+ "description",
16
+ "type",
17
+ "args",
18
+ "resolve",
19
+ "subscribe",
20
+ "deprecationReason",
21
+ "extensions",
22
+ "astNode",
23
+ // GraphQLInterfaceType
24
+ "fields",
25
+ // GraphQLArgumentConfig
26
+ "defaultValue",
27
+ // GraphQLScalarConfig
28
+ "serialize",
29
+ "parseValue",
30
+ "parseLiteral",
31
+ // pgPolymorphic
32
+ "match",
33
+ // pgSelect args
34
+ "name",
35
+ ];
36
+ exports.ExportMethods = {
37
+ meta: {
38
+ type: "suggestion",
39
+ docs: {
40
+ description: "Looks for 'resolve'/'subscribe'/'plan'/'subscribePlan' method on something that looks like a GraphQL definition and ensures it's exportable.",
41
+ recommended: true,
42
+ url: "TODO",
43
+ },
44
+ fixable: "code",
45
+ hasSuggestions: true,
46
+ schema: [
47
+ {
48
+ type: "object",
49
+ additionalProperties: false,
50
+ disableAutofix: false,
51
+ properties: {
52
+ disableAutofix: {
53
+ type: "boolean",
54
+ },
55
+ methods: {
56
+ type: "array",
57
+ items: {
58
+ type: "string",
59
+ },
60
+ },
61
+ },
62
+ },
63
+ ],
64
+ },
65
+ create(context) {
66
+ const disableAutofix = context.options?.[0]?.disableAutofix ?? false;
67
+ const methods = context.options?.[0]?.methods ?? [
68
+ "resolve",
69
+ "subscribe",
70
+ "plan",
71
+ "subscribePlan",
72
+ "isTypeOf",
73
+ "resolveType",
74
+ "serialize",
75
+ "parseValue",
76
+ "parseLiteral",
77
+ ];
78
+ const options = {
79
+ disableAutofix,
80
+ methods,
81
+ };
82
+ return {
83
+ Property(node) {
84
+ if (isAllowedMethod(options, node.key)) {
85
+ processNode(context, options, node, node.key.name);
86
+ }
87
+ },
88
+ MethodDefinition(node) {
89
+ if (isAllowedMethod(options, node.key)) {
90
+ processNode(context, options, node, node.key.name);
91
+ }
92
+ },
93
+ };
94
+ },
95
+ };
96
+ function processNode(context, options, node, match) {
97
+ const parentObject = node.parent;
98
+ if (parentObject.type === "ObjectExpression") {
99
+ const parentObjectKeys = parentObject.properties.map((property) => property.type === "Property" && property.key.type === "Identifier"
100
+ ? property.key.name
101
+ : null);
102
+ const disallowedSiblingKeys = parentObjectKeys.filter((key) => key == null ||
103
+ (!ALLOWED_SIBLING_KEYS.includes(key) && !options.methods.includes(key)));
104
+ if (disallowedSiblingKeys.length === 0) {
105
+ if ((0, NoNested_js_1.hasExportableParent)(node))
106
+ return;
107
+ // Match
108
+ if (node.type === "ObjectMethod") {
109
+ // replace with property -> EXPORTABLE
110
+ (0, common_js_1.reportProblem)(context, options, {
111
+ node: node,
112
+ message: "is not exportable.",
113
+ // TODO:
114
+ /*
115
+ suggest: [
116
+ {
117
+ desc: "convert to exportable",
118
+ fix(fixer) {
119
+ return [];
120
+ },
121
+ },
122
+ ],
123
+ */
124
+ });
125
+ }
126
+ else if (node.type === "Property") {
127
+ const value = node.value;
128
+ if (value &&
129
+ (value.type === "FunctionExpression" ||
130
+ value.type === "ArrowFunctionExpression")) {
131
+ // Wrap with EXPORTABLE
132
+ (0, common_js_1.reportProblem)(context, options, {
133
+ node: node,
134
+ message: "Step value is not exportable.",
135
+ suggest: [
136
+ {
137
+ desc: "convert to exportable",
138
+ fix(fixer) {
139
+ if (node.method && node.key.type === "Identifier") {
140
+ const name = node.key.name;
141
+ // This is a method definition `plan(...) {...}`
142
+ return [
143
+ node.value.async // It starts with 'async '
144
+ ? fixer.replaceTextRange([node.range[0], node.range[0] + 6], `${name}: EXPORTABLE(() => async function `)
145
+ : fixer.replaceTextRange([node.range[0], node.range[0]], `${name}: EXPORTABLE(() => function `),
146
+ fixer.replaceTextRange([node.range[1], node.range[1]], ", [])"),
147
+ ];
148
+ }
149
+ else {
150
+ // This is a property definition `plan: (...) => {...}`
151
+ return [
152
+ fixer.replaceTextRange([value.range[0], value.range[0]], "EXPORTABLE(() => "),
153
+ fixer.replaceTextRange([value.range[1], value.range[1]], ", [])"),
154
+ ];
155
+ }
156
+ },
157
+ },
158
+ ],
159
+ });
160
+ }
161
+ }
162
+ else {
163
+ console.log(node.type);
164
+ }
165
+ }
166
+ else {
167
+ if (node.type === "ObjectMethod" ||
168
+ (node.type === "Property" &&
169
+ (node.value?.type === "FunctionExpression" ||
170
+ node.value?.type === "ArrowFunctionExpression"))) {
171
+ if (dev) {
172
+ console.debug(`Spotted '${match}' on object defined at ${parentObject.loc
173
+ ? `${context.getPhysicalFilename()}:${parentObject.loc.start.line}:${parentObject.loc.start.column}`
174
+ : "unknown location"}, but it had disallowed keys: ${disallowedSiblingKeys.join(", ")} (all keys: ${parentObjectKeys.join(", ")})`);
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ function isAllowedMethod(options, node) {
181
+ return node.type === "Identifier" && options.methods.includes(node.name);
182
+ }
183
+ //# sourceMappingURL=ExportMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportMethods.js","sourceRoot":"","sources":["../src/ExportMethods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "eslint";
2
+ export declare const ExportSubclasses: Rule.RuleModule;
3
+ //# sourceMappingURL=ExportSubclasses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportSubclasses.d.ts","sourceRoot":"","sources":["../src/ExportSubclasses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiBnC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,UAwMnC,CAAC"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExportSubclasses = void 0;
4
+ const path_1 = require("path");
5
+ const common_js_1 = require("./common.js");
6
+ const NoNested_js_1 = require("./NoNested.js");
7
+ const KNOWN_IMPORTS = [
8
+ ["grafast", "BaseStep"],
9
+ ["grafast", "ExecutableStep"],
10
+ ["grafast", "ModifierStep"],
11
+ ];
12
+ exports.ExportSubclasses = {
13
+ meta: {
14
+ type: "suggestion",
15
+ docs: {
16
+ description: "Looks for classes that extend BaseStep, ExecutableStep or ModifierStep.",
17
+ recommended: true,
18
+ url: "TODO",
19
+ },
20
+ fixable: "code",
21
+ hasSuggestions: true,
22
+ schema: [
23
+ {
24
+ type: "object",
25
+ additionalProperties: false,
26
+ disableAutofix: false,
27
+ properties: {
28
+ disableAutofix: {
29
+ type: "boolean",
30
+ },
31
+ },
32
+ },
33
+ ],
34
+ },
35
+ create(context) {
36
+ const disableAutofix = context.options?.[0]?.disableAutofix ?? false;
37
+ // const scopeManager = context.getSourceCode().scopeManager;
38
+ const options = {
39
+ disableAutofix,
40
+ };
41
+ return {
42
+ ClassDeclaration(node) {
43
+ const superClass = node.superClass;
44
+ if (!superClass) {
45
+ return;
46
+ }
47
+ const superClassIdentifier = superClass.type === "Identifier" ? superClass.name : null;
48
+ if (!superClassIdentifier) {
49
+ return;
50
+ }
51
+ const possibles = KNOWN_IMPORTS.filter((tuple) => tuple[1] === superClassIdentifier);
52
+ if (possibles.length === 0) {
53
+ return;
54
+ }
55
+ const className = node.id?.name;
56
+ if (!className) {
57
+ return;
58
+ }
59
+ if ((0, NoNested_js_1.hasExportableParent)(node))
60
+ return;
61
+ // TODO: determine if the definition for this identifier is an import from any of these `possibles`.
62
+ //const scope = scopeManager.acquire(node);
63
+ const isTypeScript = /\.[mc]?tsx?$/.test(context.getFilename());
64
+ const isGeneric = !!node
65
+ .typeParameters;
66
+ const $$export = node.body.body.find((def) => def.type === "PropertyDefinition" &&
67
+ def.key.type === "Identifier" &&
68
+ def.key.name === "$$export");
69
+ if ($$export) {
70
+ if (!$$export.static) {
71
+ (0, common_js_1.reportProblem)(context, options, {
72
+ node: $$export,
73
+ message: `$$export should be a static property; this is probably a mistake?`,
74
+ suggest: [
75
+ {
76
+ desc: "add 'static' keyword",
77
+ fix(fixer) {
78
+ return [
79
+ fixer.replaceTextRange([$$export.range[0], $$export.range[0]], `static `),
80
+ ];
81
+ },
82
+ },
83
+ ],
84
+ });
85
+ return;
86
+ }
87
+ if ($$export.value?.type === "ObjectExpression") {
88
+ // Validate the object
89
+ const moduleName = $$export.value.properties.find((prop) => prop.type === "Property" &&
90
+ prop.key.type === "Identifier" &&
91
+ prop.key.name === "moduleName");
92
+ const exportName = $$export.value.properties.find((prop) => prop.type === "Property" &&
93
+ prop.key.type === "Identifier" &&
94
+ prop.key.name === "exportName");
95
+ const safe = !$$export.value.properties.some((prop) => prop.type === "SpreadElement") &&
96
+ !$$export.value.properties.some((prop) => prop.type === "Property" && prop.key.type !== "Identifier");
97
+ if (safe && !moduleName) {
98
+ (0, common_js_1.reportProblem)(context, options, {
99
+ node: $$export,
100
+ message: `$$export specifier doesn't explicitly specify 'moduleName'`,
101
+ });
102
+ }
103
+ if (safe && !exportName) {
104
+ (0, common_js_1.reportProblem)(context, options, {
105
+ node: $$export,
106
+ message: `$$export specifier doesn't explicitly specify 'exportName'`,
107
+ });
108
+ }
109
+ if (moduleName && exportName) {
110
+ if (!moduleName.value ||
111
+ !["StringLiteral", "Literal"].includes(moduleName.value.type)) {
112
+ console.dir(moduleName.value);
113
+ (0, common_js_1.reportProblem)(context, options, {
114
+ node: $$export,
115
+ message: `$$export has invalid value for 'moduleName' - expected a string literal.`,
116
+ });
117
+ }
118
+ if (!exportName.value ||
119
+ !["StringLiteral", "Literal"].includes(exportName.value.type)) {
120
+ (0, common_js_1.reportProblem)(context, options, {
121
+ node: $$export,
122
+ message: `$$export has invalid value for 'exportName' - expected a string literal.`,
123
+ });
124
+ }
125
+ }
126
+ }
127
+ else {
128
+ // Assume it's all good.
129
+ }
130
+ return;
131
+ }
132
+ const convertToImportable = {
133
+ desc: "convert to importable",
134
+ fix(fixer) {
135
+ return [
136
+ fixer.replaceTextRange([node.body.range[0] + 1, node.body.range[0] + 1], `\n static $$export = { moduleName: /* TODO! */ ${JSON.stringify(`./${(0, path_1.basename)(context.getFilename())}`)}, exportName: "${className}" };\n`),
137
+ ];
138
+ },
139
+ };
140
+ const convertToExportable = {
141
+ desc: "convert to exportable",
142
+ fix(fixer) {
143
+ return [
144
+ fixer.replaceTextRange([node.range[0], node.range[0]], `const ${className} = EXPORTABLE(() => `),
145
+ fixer.replaceTextRange([node.range[1], node.range[1]], ", []);" +
146
+ (isTypeScript
147
+ ? `\ntype ${className} = InstanceType<typeof ${className}>;`
148
+ : ``)),
149
+ ];
150
+ },
151
+ };
152
+ const exportExample = `static $$export = { moduleName: /* TODO */ ".../path/to/module.js", exportName: "${className}" }`;
153
+ if (isGeneric) {
154
+ (0, common_js_1.reportProblem)(context, options, {
155
+ node: node,
156
+ message: `Generic class '${className}' extending '${superClassIdentifier}' cannot be safely exported. Because it's generic we cannot make it EXPORTABLE, instead make it importable by putting it in its own module and declaring a '${exportExample}' property.`,
157
+ suggest: [convertToImportable],
158
+ });
159
+ }
160
+ else {
161
+ (0, common_js_1.reportProblem)(context, options, {
162
+ node: node,
163
+ message: `Class '${className}' extends '${superClassIdentifier}' but cannot be safely exported. Either make it EXPORTABLE or make it importable and add a '${exportExample}' property to indicate this.`,
164
+ suggest: [convertToExportable, convertToImportable],
165
+ });
166
+ }
167
+ },
168
+ };
169
+ },
170
+ };
171
+ //# sourceMappingURL=ExportSubclasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportSubclasses.js","sourceRoot":"","sources":["../src/ExportSubclasses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Rule } from "eslint";
2
+ export declare const NoNested: Rule.RuleModule;
3
+ export declare function hasExportableParent(node: any): boolean;
4
+ //# sourceMappingURL=NoNested.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoNested.d.ts","sourceRoot":"","sources":["../src/NoNested.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AASnC,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,UAqE3B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAQtD"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasExportableParent = exports.NoNested = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ exports.NoNested = {
6
+ meta: {
7
+ type: "suggestion",
8
+ docs: {
9
+ description: "Looks for nested EXPORTABLE calls and suggests removing them",
10
+ recommended: true,
11
+ url: "TODO",
12
+ },
13
+ fixable: "code",
14
+ hasSuggestions: true,
15
+ schema: [
16
+ {
17
+ type: "object",
18
+ additionalProperties: false,
19
+ disableAutofix: false,
20
+ properties: {
21
+ disableAutofix: {
22
+ type: "boolean",
23
+ },
24
+ methods: {
25
+ type: "array",
26
+ items: {
27
+ type: "string",
28
+ },
29
+ },
30
+ },
31
+ },
32
+ ],
33
+ },
34
+ create(context) {
35
+ const disableAutofix = context.options?.[0]?.disableAutofix ?? false;
36
+ const options = {
37
+ disableAutofix,
38
+ };
39
+ return {
40
+ CallExpression(node) {
41
+ if (isExportableCall(node)) {
42
+ if (hasExportableParent(node)) {
43
+ const callback = node.arguments[0];
44
+ if (callback.type === "ArrowFunctionExpression") {
45
+ const body = callback.body;
46
+ (0, common_js_1.reportProblem)(context, options, {
47
+ node: node,
48
+ message: "Nested EXPORTABLE found",
49
+ suggest: [
50
+ {
51
+ desc: "remove exportable",
52
+ fix(fixer) {
53
+ return [
54
+ fixer.replaceTextRange([node.range[0], body.range[0]], ""),
55
+ fixer.replaceTextRange([body.range[1], node.range[1]], ""),
56
+ ];
57
+ },
58
+ },
59
+ ],
60
+ });
61
+ }
62
+ }
63
+ }
64
+ },
65
+ };
66
+ },
67
+ };
68
+ function hasExportableParent(node) {
69
+ let parent = node;
70
+ while ((parent = parent.parent)) {
71
+ if (isExportableCall(parent)) {
72
+ return true;
73
+ }
74
+ }
75
+ return false;
76
+ }
77
+ exports.hasExportableParent = hasExportableParent;
78
+ function isExportableCall(node) {
79
+ return (node.type === "CallExpression" &&
80
+ node.callee.type === "Identifier" &&
81
+ node.callee.name === "EXPORTABLE");
82
+ }
83
+ //# sourceMappingURL=NoNested.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoNested.js","sourceRoot":"","sources":["../src/NoNested.ts"],"names":[],"mappings":";;;AAIA,2CAA4C;AAM/B,QAAA,QAAQ,GAAoB;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,MAAM;SACZ;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE;oBACV,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;aACF;SACF;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;QACrE,MAAM,OAAO,GAAkB;YAC7B,cAAc;SACf,CAAC;QACF,OAAO;YACL,cAAc,CAAC,IAAI;gBACjB,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;oBAC1B,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;wBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,QAAQ,CAAC,IAAI,KAAK,yBAAyB,EAAE;4BAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;4BAC3B,IAAA,yBAAa,EAAC,OAAO,EAAE,OAAO,EAAE;gCAC9B,IAAI,EAAE,IAA6B;gCACnC,OAAO,EAAE,yBAAyB;gCAClC,OAAO,EAAE;oCACP;wCACE,IAAI,EAAE,mBAAmB;wCACzB,GAAG,CAAC,KAAK;4CACP,OAAO;gDACL,KAAK,CAAC,gBAAgB,CACpB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,EAChC,EAAE,CACH;gDACD,KAAK,CAAC,gBAAgB,CACpB,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,EAChC,EAAE,CACH;6CACF,CAAC;wCACJ,CAAC;qCACF;iCACF;6BACF,CAAC,CAAC;yBACJ;qBACF;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAgB,mBAAmB,CAAC,IAAS;IAC3C,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/B,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,kDAQC;AAED,SAAS,gBAAgB,CAAC,IAAS;IACjC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAClC,CAAC;AACJ,CAAC"}