babel-plugin-zova-component 1.0.1 → 1.0.2
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +82 -19
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAwBzD,MAAM,CAAC,OAAO;;EAmBb"}
|
package/dist/index.js
CHANGED
|
@@ -2,34 +2,97 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = default_1;
|
|
4
4
|
const core_1 = require("@babel/core");
|
|
5
|
-
|
|
6
|
-
const JSXVisitor = {
|
|
7
|
-
JSXOpeningElement(_path) {
|
|
8
|
-
//console.log('Visiting: ' + path.node.name);
|
|
9
|
-
},
|
|
10
|
-
};
|
|
5
|
+
const module_info_1 = require("@cabloy/module-info");
|
|
11
6
|
function default_1() {
|
|
12
7
|
const visitor = {
|
|
13
8
|
Program(path) {
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
// context
|
|
10
|
+
const context = {
|
|
11
|
+
imports: [],
|
|
12
|
+
};
|
|
13
|
+
// traverse
|
|
14
|
+
path.traverse(createVisitor(context));
|
|
15
|
+
if (context.imports.length === 0)
|
|
16
|
+
return;
|
|
17
|
+
// insertComponents
|
|
18
|
+
insertComponents(path, context);
|
|
19
|
+
// insertImport
|
|
20
|
+
insertImport(path);
|
|
21
|
+
// removeImports
|
|
22
|
+
removeImports(context);
|
|
18
23
|
},
|
|
19
24
|
};
|
|
20
25
|
return { visitor };
|
|
21
26
|
}
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
function createVisitor(context) {
|
|
28
|
+
return {
|
|
29
|
+
ImportDeclaration(path) {
|
|
30
|
+
const moduleFullName = path.node.source.value;
|
|
31
|
+
if (!moduleFullName.startsWith('zova-module-'))
|
|
32
|
+
return;
|
|
33
|
+
const components = [];
|
|
34
|
+
for (const specifier of path.node.specifiers) {
|
|
35
|
+
if (!core_1.types.isImportSpecifier(specifier) ||
|
|
36
|
+
specifier.importKind !== 'value' ||
|
|
37
|
+
!core_1.types.isIdentifier(specifier.imported) ||
|
|
38
|
+
!isZComponent(specifier.imported.name)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
components.push({
|
|
42
|
+
importName: specifier.imported.name,
|
|
43
|
+
localName: specifier.local.name,
|
|
44
|
+
});
|
|
29
45
|
}
|
|
30
|
-
|
|
31
|
-
|
|
46
|
+
if (components.length > 0) {
|
|
47
|
+
const _import = {
|
|
48
|
+
moduleFullName,
|
|
49
|
+
moduleInfo: (0, module_info_1.parseInfo)(moduleFullName),
|
|
50
|
+
components,
|
|
51
|
+
path,
|
|
52
|
+
};
|
|
53
|
+
context.imports.push(_import);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function isZComponent(name) {
|
|
59
|
+
return name[0] === 'Z' && isUpperCase(name[1]);
|
|
60
|
+
}
|
|
61
|
+
function isUpperCase(character) {
|
|
62
|
+
return /^[A-Z]$/.test(character);
|
|
63
|
+
}
|
|
64
|
+
function removeImports(context) {
|
|
65
|
+
for (const _import of context.imports) {
|
|
66
|
+
for (const component of _import.components) {
|
|
67
|
+
const index = _import.path.node.specifiers.findIndex(item => item.local.name === component?.localName);
|
|
68
|
+
_import.path.node.specifiers.splice(index, 1);
|
|
69
|
+
}
|
|
70
|
+
if (_import.path.node.specifiers.length === 0) {
|
|
71
|
+
_import.path.remove();
|
|
32
72
|
}
|
|
33
73
|
}
|
|
34
74
|
}
|
|
75
|
+
function insertImport(path) {
|
|
76
|
+
const nodeImport = core_1.types.importDeclaration([core_1.types.importSpecifier(core_1.types.identifier('__z_createZovaComponent'), core_1.types.stringLiteral('createZovaComponent'))], core_1.types.stringLiteral('zova'));
|
|
77
|
+
path.get('body')[0].insertBefore(nodeImport);
|
|
78
|
+
}
|
|
79
|
+
function insertComponents(path, context) {
|
|
80
|
+
for (const _import of context.imports) {
|
|
81
|
+
for (const component of _import.components) {
|
|
82
|
+
const nodeComponent = core_1.types.variableDeclaration('const', [
|
|
83
|
+
core_1.types.variableDeclarator(core_1.types.identifier(component.localName), core_1.types.callExpression(core_1.types.identifier('__z_createZovaComponent'), [
|
|
84
|
+
core_1.types.stringLiteral(_import.moduleInfo.relativeName),
|
|
85
|
+
core_1.types.stringLiteral(parseRealComponentName(component.importName)),
|
|
86
|
+
])),
|
|
87
|
+
]);
|
|
88
|
+
path.get('body')[0].insertBefore(nodeComponent);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function parseRealComponentName(name) {
|
|
93
|
+
return firstCharToLowerCase(name.substring(1));
|
|
94
|
+
}
|
|
95
|
+
function firstCharToLowerCase(name) {
|
|
96
|
+
return name.charAt(0).toLowerCase() + name.substring(1);
|
|
97
|
+
}
|
|
35
98
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babel-plugin-zova-component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "babel-plugin-zova-component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"@types/babel__core": "^7.20.5",
|
|
35
35
|
"@types/babel__traverse": "^7.20.5"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "1aade8046f4e35d238fe490542d128a64e969ea4"
|
|
38
38
|
}
|