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.
- package/CHANGELOG.md +9 -0
- package/LICENSE.md +20 -0
- package/README.md +69 -0
- package/dist/ExhaustiveDeps.d.ts +3 -0
- package/dist/ExhaustiveDeps.d.ts.map +1 -0
- package/dist/ExhaustiveDeps.js +561 -0
- package/dist/ExhaustiveDeps.js.map +1 -0
- package/dist/ExportInstances.d.ts +3 -0
- package/dist/ExportInstances.d.ts.map +1 -0
- package/dist/ExportInstances.js +84 -0
- package/dist/ExportInstances.js.map +1 -0
- package/dist/ExportMethods.d.ts +3 -0
- package/dist/ExportMethods.d.ts.map +1 -0
- package/dist/ExportMethods.js +183 -0
- package/dist/ExportMethods.js.map +1 -0
- package/dist/ExportSubclasses.d.ts +3 -0
- package/dist/ExportSubclasses.d.ts.map +1 -0
- package/dist/ExportSubclasses.js +171 -0
- package/dist/ExportSubclasses.js.map +1 -0
- package/dist/NoNested.d.ts +4 -0
- package/dist/NoNested.d.ts.map +1 -0
- package/dist/NoNested.js +83 -0
- package/dist/NoNested.js.map +1 -0
- package/dist/common.d.ts +28 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +78 -0
- package/dist/common.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExhaustiveDeps.js","sourceRoot":"","sources":["../src/ExhaustiveDeps.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/dist/NoNested.js
ADDED
|
@@ -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"}
|