@umijs/ast 3.5.20 → 4.0.0-beta.4
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 +2 -0
- package/dist/getASTByFilePath/getASTByFilePath.d.ts +1 -0
- package/dist/getASTByFilePath/getASTByFilePath.js +15 -0
- package/{lib → dist}/getExportProps/getExportProps.d.ts +0 -0
- package/dist/getExportProps/getExportProps.js +88 -0
- package/{lib → dist}/getExportProps/propertyResolver.d.ts +1 -1
- package/dist/getExportProps/propertyResolver.js +222 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +15 -0
- package/{lib → dist}/isReactComponent/isReactComponent.d.ts +0 -0
- package/dist/isReactComponent/isReactComponent.js +40 -0
- package/dist/removeConfigByName/removeConfigByName.d.ts +2 -0
- package/dist/removeConfigByName/removeConfigByName.js +36 -0
- package/dist/setConfigByName/setConfigByName.d.ts +2 -0
- package/dist/setConfigByName/setConfigByName.js +84 -0
- package/dist/utils/generate.d.ts +2 -0
- package/dist/utils/generate.js +31 -0
- package/dist/utils/parse.d.ts +2 -0
- package/dist/utils/parse.js +43 -0
- package/package.json +13 -11
- package/lib/getExportProps/getExportProps.js +0 -127
- package/lib/getExportProps/propertyResolver.js +0 -238
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -33
- package/lib/isReactComponent/isReactComponent.js +0 -50
- package/lib/utils/parse.d.ts +0 -2
- package/lib/utils/parse.js +0 -36
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getASTByFilePath(filePath: string): import("@umijs/bundler-utils/compiled/@babel/types").File | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getASTByFilePath = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const parse_1 = require("../utils/parse");
|
|
6
|
+
function getASTByFilePath(filePath) {
|
|
7
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
8
|
+
const code = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
9
|
+
const ast = (0, parse_1.parse)(code);
|
|
10
|
+
return ast;
|
|
11
|
+
}
|
|
12
|
+
console.warn(`${filePath} is not found`);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
exports.getASTByFilePath = getASTByFilePath;
|
|
File without changes
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.getExportProps = void 0;
|
|
23
|
+
const traverse = __importStar(require("@umijs/bundler-utils/compiled/babel/traverse"));
|
|
24
|
+
const t = __importStar(require("@umijs/bundler-utils/compiled/babel/types"));
|
|
25
|
+
const parse_1 = require("../utils/parse");
|
|
26
|
+
const propertyResolver_1 = require("./propertyResolver");
|
|
27
|
+
function getExportProps(code) {
|
|
28
|
+
const ast = (0, parse_1.parse)(code);
|
|
29
|
+
let props = undefined;
|
|
30
|
+
traverse.default(ast, {
|
|
31
|
+
Program: {
|
|
32
|
+
enter(path) {
|
|
33
|
+
const node = path.node;
|
|
34
|
+
const defaultExport = findExportDefault(node);
|
|
35
|
+
if (!defaultExport)
|
|
36
|
+
return;
|
|
37
|
+
if (t.isIdentifier(defaultExport)) {
|
|
38
|
+
const { name } = defaultExport;
|
|
39
|
+
props = findAssignmentExpressionProps({
|
|
40
|
+
programNode: node,
|
|
41
|
+
name,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else if (t.isObjectExpression(defaultExport)) {
|
|
45
|
+
props = (0, propertyResolver_1.findObjectMembers)(defaultExport);
|
|
46
|
+
}
|
|
47
|
+
else if (t.isArrayExpression(defaultExport)) {
|
|
48
|
+
props = (0, propertyResolver_1.findArrayElements)(defaultExport);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const resolver = propertyResolver_1.NODE_RESOLVERS.find((resolver) => resolver.is(defaultExport));
|
|
52
|
+
if (resolver) {
|
|
53
|
+
props = resolver.get(defaultExport);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return props;
|
|
60
|
+
}
|
|
61
|
+
exports.getExportProps = getExportProps;
|
|
62
|
+
function findExportDefault(programNode) {
|
|
63
|
+
for (const n of programNode.body) {
|
|
64
|
+
if (t.isExportDefaultDeclaration(n)) {
|
|
65
|
+
return n.declaration;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
function findAssignmentExpressionProps(opts) {
|
|
71
|
+
const props = {};
|
|
72
|
+
for (const n of opts.programNode.body) {
|
|
73
|
+
let node = n;
|
|
74
|
+
if (t.isExpressionStatement(node)) {
|
|
75
|
+
node = node.expression;
|
|
76
|
+
}
|
|
77
|
+
if (t.isAssignmentExpression(node) &&
|
|
78
|
+
t.isMemberExpression(node.left) &&
|
|
79
|
+
t.isIdentifier(node.left.object) &&
|
|
80
|
+
node.left.object.name === opts.name) {
|
|
81
|
+
const resolver = propertyResolver_1.NODE_RESOLVERS.find((resolver) => resolver.is(t.isAssignmentExpression(node) && node.right));
|
|
82
|
+
if (resolver) {
|
|
83
|
+
props[node.left.property.name] = resolver.get(node.right);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return props;
|
|
88
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.findArrayElements = exports.findArrayLiteralElements = exports.findClassStaticProperty = exports.findObjectMembers = exports.findObjectLiteralProperties = exports.NODE_RESOLVERS = exports.LITERAL_NODE_RESOLVERS = void 0;
|
|
23
|
+
const t = __importStar(require("@umijs/bundler-utils/compiled/babel/types"));
|
|
24
|
+
const StringResolver = {
|
|
25
|
+
is(src) {
|
|
26
|
+
return t.isStringLiteral(src);
|
|
27
|
+
},
|
|
28
|
+
get(src) {
|
|
29
|
+
return src.value;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
const NumberResolver = {
|
|
33
|
+
is(src) {
|
|
34
|
+
return t.isNumericLiteral(src);
|
|
35
|
+
},
|
|
36
|
+
get(src) {
|
|
37
|
+
return src.value;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const BooleanResolver = {
|
|
41
|
+
is(src) {
|
|
42
|
+
return t.isBooleanLiteral(src);
|
|
43
|
+
},
|
|
44
|
+
get(src) {
|
|
45
|
+
return src.value;
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
const NullResolver = {
|
|
49
|
+
is(src) {
|
|
50
|
+
return t.isNullLiteral(src);
|
|
51
|
+
},
|
|
52
|
+
get() {
|
|
53
|
+
return null;
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const UndefinedResolver = {
|
|
57
|
+
is(src) {
|
|
58
|
+
return t.isIdentifier(src) && src.name === 'undefined';
|
|
59
|
+
},
|
|
60
|
+
get() {
|
|
61
|
+
return undefined;
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
const ObjectLiteralResolver = {
|
|
65
|
+
is(src) {
|
|
66
|
+
return t.isObjectExpression(src);
|
|
67
|
+
},
|
|
68
|
+
get(src) {
|
|
69
|
+
return findObjectLiteralProperties(src);
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
const ObjectResolver = {
|
|
73
|
+
is(src) {
|
|
74
|
+
return t.isObjectExpression(src);
|
|
75
|
+
},
|
|
76
|
+
get(src) {
|
|
77
|
+
return findObjectMembers(src);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const ClassResolver = {
|
|
81
|
+
is(src) {
|
|
82
|
+
return t.isClass(src);
|
|
83
|
+
},
|
|
84
|
+
get(src) {
|
|
85
|
+
return findClassStaticProperty(src);
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const ArrayLiteralResolver = {
|
|
89
|
+
is(src) {
|
|
90
|
+
return t.isArrayExpression(src);
|
|
91
|
+
},
|
|
92
|
+
get(src) {
|
|
93
|
+
return findArrayLiteralElements(src);
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
const ArrayResolver = {
|
|
97
|
+
is(src) {
|
|
98
|
+
return t.isArrayExpression(src);
|
|
99
|
+
},
|
|
100
|
+
get(src) {
|
|
101
|
+
return findArrayElements(src);
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const FunctionResolver = {
|
|
105
|
+
is(src) {
|
|
106
|
+
return t.isFunctionExpression(src);
|
|
107
|
+
},
|
|
108
|
+
get() {
|
|
109
|
+
return function () { };
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
const ArrowFunctionResolver = {
|
|
113
|
+
is(src) {
|
|
114
|
+
return t.isArrowFunctionExpression(src);
|
|
115
|
+
},
|
|
116
|
+
get() {
|
|
117
|
+
return () => { };
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
exports.LITERAL_NODE_RESOLVERS = [
|
|
121
|
+
StringResolver,
|
|
122
|
+
NumberResolver,
|
|
123
|
+
BooleanResolver,
|
|
124
|
+
NullResolver,
|
|
125
|
+
UndefinedResolver,
|
|
126
|
+
ObjectLiteralResolver,
|
|
127
|
+
ArrayLiteralResolver,
|
|
128
|
+
];
|
|
129
|
+
exports.NODE_RESOLVERS = [
|
|
130
|
+
StringResolver,
|
|
131
|
+
NumberResolver,
|
|
132
|
+
BooleanResolver,
|
|
133
|
+
NullResolver,
|
|
134
|
+
UndefinedResolver,
|
|
135
|
+
ObjectResolver,
|
|
136
|
+
ArrayResolver,
|
|
137
|
+
ClassResolver,
|
|
138
|
+
FunctionResolver,
|
|
139
|
+
ArrowFunctionResolver,
|
|
140
|
+
];
|
|
141
|
+
function findObjectLiteralProperties(node) {
|
|
142
|
+
const target = {};
|
|
143
|
+
node.properties.forEach((p) => {
|
|
144
|
+
if (t.isObjectProperty(p) && t.isIdentifier(p.key)) {
|
|
145
|
+
const resolver = exports.LITERAL_NODE_RESOLVERS.find((resolver) => resolver.is(p.value));
|
|
146
|
+
if (resolver) {
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
target[p.key.name] = resolver.get(p.value);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
return target;
|
|
153
|
+
}
|
|
154
|
+
exports.findObjectLiteralProperties = findObjectLiteralProperties;
|
|
155
|
+
function findObjectMembers(node) {
|
|
156
|
+
const target = {};
|
|
157
|
+
node.properties.forEach((p) => {
|
|
158
|
+
if (t.isObjectMember(p) && t.isIdentifier(p.key)) {
|
|
159
|
+
if (t.isObjectMethod(p)) {
|
|
160
|
+
// @ts-ignore
|
|
161
|
+
target[p.key.name] = () => { };
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const resolver = exports.NODE_RESOLVERS.find((resolver) => resolver.is(p.value));
|
|
165
|
+
if (resolver) {
|
|
166
|
+
// @ts-ignore
|
|
167
|
+
target[p.key.name] = resolver.get(p.value);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
return target;
|
|
173
|
+
}
|
|
174
|
+
exports.findObjectMembers = findObjectMembers;
|
|
175
|
+
function findClassStaticProperty(node) {
|
|
176
|
+
function isStaticNode(p) {
|
|
177
|
+
return 'static' in p && p.static === true;
|
|
178
|
+
}
|
|
179
|
+
let body = node.body;
|
|
180
|
+
if (!t.isClassBody(body))
|
|
181
|
+
return;
|
|
182
|
+
const target = {};
|
|
183
|
+
body.body.forEach((p) => {
|
|
184
|
+
if (isStaticNode(p) && t.isIdentifier(p.key)) {
|
|
185
|
+
if (t.isMethod(p) || t.isTSDeclareMethod(p)) {
|
|
186
|
+
// @ts-ignore
|
|
187
|
+
target[p.key.name] = () => { };
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const resolver = exports.NODE_RESOLVERS.find((resolver) => resolver.is(p.value));
|
|
191
|
+
if (resolver) {
|
|
192
|
+
// @ts-ignore
|
|
193
|
+
target[p.key.name] = resolver.get(p.value);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
return target;
|
|
199
|
+
}
|
|
200
|
+
exports.findClassStaticProperty = findClassStaticProperty;
|
|
201
|
+
function findArrayLiteralElements(node) {
|
|
202
|
+
const target = [];
|
|
203
|
+
node.elements.forEach((p) => {
|
|
204
|
+
const resolver = exports.LITERAL_NODE_RESOLVERS.find((resolver) => resolver.is(p));
|
|
205
|
+
if (resolver) {
|
|
206
|
+
target.push(resolver.get(p));
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
return target;
|
|
210
|
+
}
|
|
211
|
+
exports.findArrayLiteralElements = findArrayLiteralElements;
|
|
212
|
+
function findArrayElements(node) {
|
|
213
|
+
const target = [];
|
|
214
|
+
node.elements.forEach((p) => {
|
|
215
|
+
const resolver = exports.NODE_RESOLVERS.find((resolver) => resolver.is(p));
|
|
216
|
+
if (resolver) {
|
|
217
|
+
target.push(resolver.get(p));
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
return target;
|
|
221
|
+
}
|
|
222
|
+
exports.findArrayElements = findArrayElements;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { getASTByFilePath } from './getASTByFilePath/getASTByFilePath';
|
|
2
|
+
export { getExportProps } from './getExportProps/getExportProps';
|
|
3
|
+
export { isReactComponent } from './isReactComponent/isReactComponent';
|
|
4
|
+
export { removeConfigByName } from './removeConfigByName/removeConfigByName';
|
|
5
|
+
export { setConfigByName } from './setConfigByName/setConfigByName';
|
|
6
|
+
export { generate } from './utils/generate';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generate = exports.setConfigByName = exports.removeConfigByName = exports.isReactComponent = exports.getExportProps = exports.getASTByFilePath = void 0;
|
|
4
|
+
var getASTByFilePath_1 = require("./getASTByFilePath/getASTByFilePath");
|
|
5
|
+
Object.defineProperty(exports, "getASTByFilePath", { enumerable: true, get: function () { return getASTByFilePath_1.getASTByFilePath; } });
|
|
6
|
+
var getExportProps_1 = require("./getExportProps/getExportProps");
|
|
7
|
+
Object.defineProperty(exports, "getExportProps", { enumerable: true, get: function () { return getExportProps_1.getExportProps; } });
|
|
8
|
+
var isReactComponent_1 = require("./isReactComponent/isReactComponent");
|
|
9
|
+
Object.defineProperty(exports, "isReactComponent", { enumerable: true, get: function () { return isReactComponent_1.isReactComponent; } });
|
|
10
|
+
var removeConfigByName_1 = require("./removeConfigByName/removeConfigByName");
|
|
11
|
+
Object.defineProperty(exports, "removeConfigByName", { enumerable: true, get: function () { return removeConfigByName_1.removeConfigByName; } });
|
|
12
|
+
var setConfigByName_1 = require("./setConfigByName/setConfigByName");
|
|
13
|
+
Object.defineProperty(exports, "setConfigByName", { enumerable: true, get: function () { return setConfigByName_1.setConfigByName; } });
|
|
14
|
+
var generate_1 = require("./utils/generate");
|
|
15
|
+
Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return generate_1.generate; } });
|
|
File without changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.isReactComponent = void 0;
|
|
23
|
+
const traverse = __importStar(require("@umijs/bundler-utils/compiled/babel/traverse"));
|
|
24
|
+
const parse_1 = require("../utils/parse");
|
|
25
|
+
function isReactComponent(code) {
|
|
26
|
+
const ast = (0, parse_1.parse)(code);
|
|
27
|
+
let hasJSXElement = false;
|
|
28
|
+
traverse.default(ast, {
|
|
29
|
+
JSXElement(path) {
|
|
30
|
+
hasJSXElement = true;
|
|
31
|
+
path.stop();
|
|
32
|
+
},
|
|
33
|
+
JSXFragment(path) {
|
|
34
|
+
hasJSXElement = true;
|
|
35
|
+
path.stop();
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
return hasJSXElement;
|
|
39
|
+
}
|
|
40
|
+
exports.isReactComponent = isReactComponent;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.removeConfigByName = void 0;
|
|
23
|
+
const traverse = __importStar(require("@umijs/bundler-utils/compiled/babel/traverse"));
|
|
24
|
+
const t = __importStar(require("@umijs/bundler-utils/compiled/babel/types"));
|
|
25
|
+
function removeConfigByName(ast, name) {
|
|
26
|
+
traverse.default(ast, {
|
|
27
|
+
enter(path) {
|
|
28
|
+
var _a;
|
|
29
|
+
if (t.isIdentifier(path.node, { name })) {
|
|
30
|
+
(_a = path === null || path === void 0 ? void 0 : path.parentPath) === null || _a === void 0 ? void 0 : _a.remove();
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
return ast;
|
|
35
|
+
}
|
|
36
|
+
exports.removeConfigByName = removeConfigByName;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.setConfigByName = void 0;
|
|
23
|
+
const traverse = __importStar(require("@umijs/bundler-utils/compiled/babel/traverse"));
|
|
24
|
+
const t = __importStar(require("@umijs/bundler-utils/compiled/babel/types"));
|
|
25
|
+
function setConfigByName(ast, name, value) {
|
|
26
|
+
let _value;
|
|
27
|
+
let valueObject;
|
|
28
|
+
let isChanged = false;
|
|
29
|
+
try {
|
|
30
|
+
_value = JSON.parse(value);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
_value = value;
|
|
34
|
+
}
|
|
35
|
+
const valueType = typeof _value;
|
|
36
|
+
switch (valueType) {
|
|
37
|
+
case 'string':
|
|
38
|
+
valueObject = t.stringLiteral(_value);
|
|
39
|
+
break;
|
|
40
|
+
case 'boolean':
|
|
41
|
+
valueObject = t.booleanLiteral(_value);
|
|
42
|
+
break;
|
|
43
|
+
case 'number':
|
|
44
|
+
valueObject = t.numericLiteral(_value);
|
|
45
|
+
break;
|
|
46
|
+
case 'object':
|
|
47
|
+
if (Array.isArray(_value)) {
|
|
48
|
+
valueObject = t.arrayExpression(_value.map((i) => {
|
|
49
|
+
return t.stringLiteral(i);
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const valueObjs = [];
|
|
54
|
+
Object.keys(_value).forEach((key) => {
|
|
55
|
+
valueObjs.push(t.objectProperty(t.identifier(key), t.stringLiteral(_value[key])));
|
|
56
|
+
});
|
|
57
|
+
valueObject = t.objectExpression(valueObjs);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
default:
|
|
61
|
+
console.log(`${valueType} is not supported.`);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
if (!valueObject)
|
|
65
|
+
return;
|
|
66
|
+
// 这里是修改逻辑
|
|
67
|
+
traverse.default(ast, {
|
|
68
|
+
ObjectProperty(path) {
|
|
69
|
+
var _a;
|
|
70
|
+
//@ts-ignore
|
|
71
|
+
if (((_a = path.node.key) === null || _a === void 0 ? void 0 : _a.name) === name) {
|
|
72
|
+
path.node.value = valueObject;
|
|
73
|
+
isChanged = true;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
if (!isChanged) {
|
|
78
|
+
// 这里是插入逻辑
|
|
79
|
+
//@ts-ignore
|
|
80
|
+
ast.program.body[0].declaration.properties.push(t.objectProperty(t.identifier(name), valueObject));
|
|
81
|
+
}
|
|
82
|
+
return ast;
|
|
83
|
+
}
|
|
84
|
+
exports.setConfigByName = setConfigByName;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.generate = void 0;
|
|
23
|
+
const generator = __importStar(require("@umijs/bundler-utils/compiled/babel/generator"));
|
|
24
|
+
function generate(ast) {
|
|
25
|
+
return generator.default(ast, {
|
|
26
|
+
retainLines: true,
|
|
27
|
+
sourceMaps: false,
|
|
28
|
+
decoratorsBeforeExport: true,
|
|
29
|
+
}).code;
|
|
30
|
+
}
|
|
31
|
+
exports.generate = generate;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.parse = void 0;
|
|
23
|
+
const parser = __importStar(require("@umijs/bundler-utils/compiled/babel/parser"));
|
|
24
|
+
function parse(code) {
|
|
25
|
+
return parser.parse(code, {
|
|
26
|
+
sourceType: 'module',
|
|
27
|
+
plugins: [
|
|
28
|
+
'jsx',
|
|
29
|
+
'typescript',
|
|
30
|
+
'classProperties',
|
|
31
|
+
'dynamicImport',
|
|
32
|
+
'exportDefaultFrom',
|
|
33
|
+
'exportNamespaceFrom',
|
|
34
|
+
'functionBind',
|
|
35
|
+
'nullishCoalescingOperator',
|
|
36
|
+
'objectRestSpread',
|
|
37
|
+
'optionalChaining',
|
|
38
|
+
'decorators-legacy',
|
|
39
|
+
],
|
|
40
|
+
allowAwaitOutsideFunction: true,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
exports.parse = parse;
|
package/package.json
CHANGED
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umijs/ast",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta.4",
|
|
4
4
|
"description": "@umijs/ast",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
|
-
"
|
|
8
|
+
"dist"
|
|
9
9
|
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "pnpm tsc",
|
|
12
|
+
"build:deps": "pnpm esno ../../scripts/bundleDeps.ts",
|
|
13
|
+
"dev": "pnpm build -- --watch"
|
|
14
|
+
},
|
|
10
15
|
"repository": {
|
|
11
16
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/umijs/umi"
|
|
17
|
+
"url": "https://github.com/umijs/umi-next"
|
|
13
18
|
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
"umi"
|
|
16
|
-
],
|
|
17
19
|
"authors": [
|
|
18
20
|
"chencheng <sorrycc@gmail.com> (https://github.com/sorrycc)"
|
|
19
21
|
],
|
|
20
22
|
"license": "MIT",
|
|
21
|
-
"bugs": "
|
|
22
|
-
"homepage": "https://github.com/umijs/umi/tree/master/packages/ast#readme",
|
|
23
|
+
"bugs": "https://github.com/umijs/umi-next/issues",
|
|
24
|
+
"homepage": "https://github.com/umijs/umi-next/tree/master/packages/ast#readme",
|
|
23
25
|
"publishConfig": {
|
|
24
26
|
"access": "public"
|
|
25
27
|
},
|
|
26
28
|
"dependencies": {
|
|
27
|
-
"@umijs/utils": "
|
|
29
|
+
"@umijs/bundler-utils": "4.0.0-beta.4"
|
|
28
30
|
}
|
|
29
31
|
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getExportProps = getExportProps;
|
|
7
|
-
|
|
8
|
-
function _react() {
|
|
9
|
-
const data = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
_react = function _react() {
|
|
12
|
-
return data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function _utils() {
|
|
19
|
-
const data = require("@umijs/utils");
|
|
20
|
-
|
|
21
|
-
_utils = function _utils() {
|
|
22
|
-
return data;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var _parse = require("../utils/parse");
|
|
29
|
-
|
|
30
|
-
var _propertyResolver = require("./propertyResolver");
|
|
31
|
-
|
|
32
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
35
|
-
|
|
36
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
37
|
-
|
|
38
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
39
|
-
|
|
40
|
-
function getExportProps(code) {
|
|
41
|
-
const ast = (0, _parse.parse)(code);
|
|
42
|
-
let props = undefined;
|
|
43
|
-
|
|
44
|
-
_utils().traverse.default(ast, {
|
|
45
|
-
Program: {
|
|
46
|
-
enter(path) {
|
|
47
|
-
const node = path.node;
|
|
48
|
-
const defaultExport = findExportDefault(node);
|
|
49
|
-
if (!defaultExport) return;
|
|
50
|
-
|
|
51
|
-
if (_utils().t.isIdentifier(defaultExport)) {
|
|
52
|
-
const name = defaultExport.name;
|
|
53
|
-
props = findAssignmentExpressionProps({
|
|
54
|
-
programNode: node,
|
|
55
|
-
name
|
|
56
|
-
});
|
|
57
|
-
} else if (_utils().t.isObjectExpression(defaultExport)) {
|
|
58
|
-
props = (0, _propertyResolver.findObjectMembers)(defaultExport);
|
|
59
|
-
} else if (_utils().t.isArrayExpression(defaultExport)) {
|
|
60
|
-
props = (0, _propertyResolver.findArrayElements)(defaultExport);
|
|
61
|
-
} else {
|
|
62
|
-
const resolver = _propertyResolver.NODE_RESOLVERS.find(resolver => resolver.is(defaultExport));
|
|
63
|
-
|
|
64
|
-
if (resolver) {
|
|
65
|
-
props = resolver.get(defaultExport);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
return props;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function findExportDefault(programNode) {
|
|
77
|
-
var _iterator = _createForOfIteratorHelper(programNode.body),
|
|
78
|
-
_step;
|
|
79
|
-
|
|
80
|
-
try {
|
|
81
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
82
|
-
const n = _step.value;
|
|
83
|
-
|
|
84
|
-
if (_utils().t.isExportDefaultDeclaration(n)) {
|
|
85
|
-
return n.declaration;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
} catch (err) {
|
|
89
|
-
_iterator.e(err);
|
|
90
|
-
} finally {
|
|
91
|
-
_iterator.f();
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function findAssignmentExpressionProps(opts) {
|
|
98
|
-
const props = {};
|
|
99
|
-
|
|
100
|
-
var _iterator2 = _createForOfIteratorHelper(opts.programNode.body),
|
|
101
|
-
_step2;
|
|
102
|
-
|
|
103
|
-
try {
|
|
104
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
105
|
-
const n = _step2.value;
|
|
106
|
-
let node = n;
|
|
107
|
-
|
|
108
|
-
if (_utils().t.isExpressionStatement(node)) {
|
|
109
|
-
node = node.expression;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
if (_utils().t.isAssignmentExpression(node) && _utils().t.isMemberExpression(node.left) && _utils().t.isIdentifier(node.left.object) && node.left.object.name === opts.name) {
|
|
113
|
-
const resolver = _propertyResolver.NODE_RESOLVERS.find(resolver => resolver.is(_utils().t.isAssignmentExpression(node) && node.right));
|
|
114
|
-
|
|
115
|
-
if (resolver) {
|
|
116
|
-
props[node.left.property.name] = resolver.get(node.right);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
} catch (err) {
|
|
121
|
-
_iterator2.e(err);
|
|
122
|
-
} finally {
|
|
123
|
-
_iterator2.f();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return props;
|
|
127
|
-
}
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.findObjectLiteralProperties = findObjectLiteralProperties;
|
|
7
|
-
exports.findObjectMembers = findObjectMembers;
|
|
8
|
-
exports.findClassStaticProperty = findClassStaticProperty;
|
|
9
|
-
exports.findArrayLiteralElements = findArrayLiteralElements;
|
|
10
|
-
exports.findArrayElements = findArrayElements;
|
|
11
|
-
exports.NODE_RESOLVERS = exports.LITERAL_NODE_RESOLVERS = void 0;
|
|
12
|
-
|
|
13
|
-
function _react() {
|
|
14
|
-
const data = _interopRequireDefault(require("react"));
|
|
15
|
-
|
|
16
|
-
_react = function _react() {
|
|
17
|
-
return data;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
return data;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function _utils() {
|
|
24
|
-
const data = require("@umijs/utils");
|
|
25
|
-
|
|
26
|
-
_utils = function _utils() {
|
|
27
|
-
return data;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
return data;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
34
|
-
|
|
35
|
-
const StringResolver = {
|
|
36
|
-
is(src) {
|
|
37
|
-
return _utils().t.isStringLiteral(src);
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
get(src) {
|
|
41
|
-
return src.value;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
};
|
|
45
|
-
const NumberResolver = {
|
|
46
|
-
is(src) {
|
|
47
|
-
return _utils().t.isNumericLiteral(src);
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
get(src) {
|
|
51
|
-
return src.value;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
const BooleanResolver = {
|
|
56
|
-
is(src) {
|
|
57
|
-
return _utils().t.isBooleanLiteral(src);
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
get(src) {
|
|
61
|
-
return src.value;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
const NullResolver = {
|
|
66
|
-
is(src) {
|
|
67
|
-
return _utils().t.isNullLiteral(src);
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
get(src) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
};
|
|
75
|
-
const UndefinedResolver = {
|
|
76
|
-
is(src) {
|
|
77
|
-
return _utils().t.isIdentifier(src) && src.name === 'undefined';
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
get(src) {
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
};
|
|
85
|
-
const ObjectLiteralResolver = {
|
|
86
|
-
is(src) {
|
|
87
|
-
return _utils().t.isObjectExpression(src);
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
get(src) {
|
|
91
|
-
return findObjectLiteralProperties(src);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
};
|
|
95
|
-
const ObjectResolver = {
|
|
96
|
-
is(src) {
|
|
97
|
-
return _utils().t.isObjectExpression(src);
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
get(src) {
|
|
101
|
-
return findObjectMembers(src);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
};
|
|
105
|
-
const ClassResolver = {
|
|
106
|
-
is(src) {
|
|
107
|
-
return _utils().t.isClass(src);
|
|
108
|
-
},
|
|
109
|
-
|
|
110
|
-
get(src) {
|
|
111
|
-
return findClassStaticProperty(src);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
};
|
|
115
|
-
const ArrayLiteralResolver = {
|
|
116
|
-
is(src) {
|
|
117
|
-
return _utils().t.isArrayExpression(src);
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
get(src) {
|
|
121
|
-
return findArrayLiteralElements(src);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
};
|
|
125
|
-
const ArrayResolver = {
|
|
126
|
-
is(src) {
|
|
127
|
-
return _utils().t.isArrayExpression(src);
|
|
128
|
-
},
|
|
129
|
-
|
|
130
|
-
get(src) {
|
|
131
|
-
return findArrayElements(src);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
};
|
|
135
|
-
const FunctionResolver = {
|
|
136
|
-
is(src) {
|
|
137
|
-
return _utils().t.isFunctionExpression(src);
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
get(src) {
|
|
141
|
-
return function () {};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
};
|
|
145
|
-
const ArrowFunctionResolver = {
|
|
146
|
-
is(src) {
|
|
147
|
-
return _utils().t.isArrowFunctionExpression(src);
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
get(src) {
|
|
151
|
-
return () => {};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
};
|
|
155
|
-
const LITERAL_NODE_RESOLVERS = [StringResolver, NumberResolver, BooleanResolver, NullResolver, UndefinedResolver, ObjectLiteralResolver, ArrayLiteralResolver];
|
|
156
|
-
exports.LITERAL_NODE_RESOLVERS = LITERAL_NODE_RESOLVERS;
|
|
157
|
-
const NODE_RESOLVERS = [StringResolver, NumberResolver, BooleanResolver, NullResolver, UndefinedResolver, ObjectResolver, ArrayResolver, ClassResolver, FunctionResolver, ArrowFunctionResolver];
|
|
158
|
-
exports.NODE_RESOLVERS = NODE_RESOLVERS;
|
|
159
|
-
|
|
160
|
-
function findObjectLiteralProperties(node) {
|
|
161
|
-
const target = {};
|
|
162
|
-
node.properties.forEach(p => {
|
|
163
|
-
if (_utils().t.isObjectProperty(p) && _utils().t.isIdentifier(p.key)) {
|
|
164
|
-
const resolver = LITERAL_NODE_RESOLVERS.find(resolver => resolver.is(p.value));
|
|
165
|
-
|
|
166
|
-
if (resolver) {
|
|
167
|
-
target[p.key.name] = resolver.get(p.value);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
return target;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
function findObjectMembers(node) {
|
|
175
|
-
const target = {};
|
|
176
|
-
node.properties.forEach(p => {
|
|
177
|
-
if (_utils().t.isObjectMember(p) && _utils().t.isIdentifier(p.key)) {
|
|
178
|
-
if (_utils().t.isObjectMethod(p)) {
|
|
179
|
-
target[p.key.name] = () => {};
|
|
180
|
-
} else {
|
|
181
|
-
const resolver = NODE_RESOLVERS.find(resolver => resolver.is(p.value));
|
|
182
|
-
|
|
183
|
-
if (resolver) {
|
|
184
|
-
target[p.key.name] = resolver.get(p.value);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
return target;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
function findClassStaticProperty(node) {
|
|
193
|
-
function isStaticNode(p) {
|
|
194
|
-
return 'static' in p && p.static === true;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
let body = node.body;
|
|
198
|
-
if (!_utils().t.isClassBody(body)) return;
|
|
199
|
-
const target = {};
|
|
200
|
-
body.body.forEach(p => {
|
|
201
|
-
if (isStaticNode(p) && _utils().t.isIdentifier(p.key)) {
|
|
202
|
-
if (_utils().t.isMethod(p) || _utils().t.isTSDeclareMethod(p)) {
|
|
203
|
-
target[p.key.name] = () => {};
|
|
204
|
-
} else {
|
|
205
|
-
const resolver = NODE_RESOLVERS.find(resolver => resolver.is(p.value));
|
|
206
|
-
|
|
207
|
-
if (resolver) {
|
|
208
|
-
target[p.key.name] = resolver.get(p.value);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
return target;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function findArrayLiteralElements(node) {
|
|
217
|
-
const target = [];
|
|
218
|
-
node.elements.forEach(p => {
|
|
219
|
-
const resolver = LITERAL_NODE_RESOLVERS.find(resolver => resolver.is(p));
|
|
220
|
-
|
|
221
|
-
if (resolver) {
|
|
222
|
-
target.push(resolver.get(p));
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
return target;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
function findArrayElements(node) {
|
|
229
|
-
const target = [];
|
|
230
|
-
node.elements.forEach(p => {
|
|
231
|
-
const resolver = NODE_RESOLVERS.find(resolver => resolver.is(p));
|
|
232
|
-
|
|
233
|
-
if (resolver) {
|
|
234
|
-
target.push(resolver.get(p));
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
return target;
|
|
238
|
-
}
|
package/lib/index.d.ts
DELETED
package/lib/index.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "getExportProps", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function get() {
|
|
9
|
-
return _getExportProps.getExportProps;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "isReactComponent", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function get() {
|
|
15
|
-
return _isReactComponent.isReactComponent;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
function _react() {
|
|
20
|
-
const data = _interopRequireDefault(require("react"));
|
|
21
|
-
|
|
22
|
-
_react = function _react() {
|
|
23
|
-
return data;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
return data;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var _getExportProps = require("./getExportProps/getExportProps");
|
|
30
|
-
|
|
31
|
-
var _isReactComponent = require("./isReactComponent/isReactComponent");
|
|
32
|
-
|
|
33
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isReactComponent = isReactComponent;
|
|
7
|
-
|
|
8
|
-
function _react() {
|
|
9
|
-
const data = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
_react = function _react() {
|
|
12
|
-
return data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function _utils() {
|
|
19
|
-
const data = require("@umijs/utils");
|
|
20
|
-
|
|
21
|
-
_utils = function _utils() {
|
|
22
|
-
return data;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var _parse = require("../utils/parse");
|
|
29
|
-
|
|
30
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
-
|
|
32
|
-
function isReactComponent(code) {
|
|
33
|
-
const ast = (0, _parse.parse)(code);
|
|
34
|
-
let hasJSXElement = false;
|
|
35
|
-
|
|
36
|
-
_utils().traverse.default(ast, {
|
|
37
|
-
JSXElement(path) {
|
|
38
|
-
hasJSXElement = true;
|
|
39
|
-
path.stop();
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
JSXFragment(path) {
|
|
43
|
-
hasJSXElement = true;
|
|
44
|
-
path.stop();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
return hasJSXElement;
|
|
50
|
-
}
|
package/lib/utils/parse.d.ts
DELETED
package/lib/utils/parse.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parse = parse;
|
|
7
|
-
|
|
8
|
-
function _react() {
|
|
9
|
-
const data = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
_react = function _react() {
|
|
12
|
-
return data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function _utils() {
|
|
19
|
-
const data = require("@umijs/utils");
|
|
20
|
-
|
|
21
|
-
_utils = function _utils() {
|
|
22
|
-
return data;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
-
|
|
30
|
-
function parse(code) {
|
|
31
|
-
return _utils().parser.parse(code, {
|
|
32
|
-
sourceType: 'module',
|
|
33
|
-
plugins: ['jsx', 'typescript', 'classProperties', 'dynamicImport', 'exportDefaultFrom', 'exportNamespaceFrom', 'functionBind', 'nullishCoalescingOperator', 'objectRestSpread', 'optionalChaining', 'decorators-legacy'],
|
|
34
|
-
allowAwaitOutsideFunction: true
|
|
35
|
-
});
|
|
36
|
-
}
|