@plumeria/webpack-plugin 4.2.0 → 5.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/dist/index.js +56 -7
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -29,8 +29,57 @@ function loader(source) {
|
|
|
29
29
|
tsx: true,
|
|
30
30
|
target: 'es2022',
|
|
31
31
|
});
|
|
32
|
-
const localConsts = (0, utils_1.collectLocalConsts)(ast
|
|
33
|
-
|
|
32
|
+
const localConsts = (0, utils_1.collectLocalConsts)(ast);
|
|
33
|
+
const resourcePath = this.resourcePath;
|
|
34
|
+
const importMap = {};
|
|
35
|
+
(0, utils_1.traverse)(ast, {
|
|
36
|
+
ImportDeclaration({ node }) {
|
|
37
|
+
const sourcePath = node.source.value;
|
|
38
|
+
const actualPath = (0, utils_1.resolveImportPath)(sourcePath, resourcePath);
|
|
39
|
+
if (actualPath && fs_1.default.existsSync(actualPath)) {
|
|
40
|
+
node.specifiers.forEach((specifier) => {
|
|
41
|
+
if (specifier.type === 'ImportSpecifier') {
|
|
42
|
+
const importedName = specifier.imported
|
|
43
|
+
? specifier.imported.value
|
|
44
|
+
: specifier.local.value;
|
|
45
|
+
const localName = specifier.local.value;
|
|
46
|
+
const uniqueKey = `${actualPath}-${importedName}`;
|
|
47
|
+
if (utils_1.tables.staticTable[uniqueKey]) {
|
|
48
|
+
importMap[localName] = utils_1.tables.staticTable[uniqueKey];
|
|
49
|
+
}
|
|
50
|
+
if (utils_1.tables.keyframesHashTable[uniqueKey]) {
|
|
51
|
+
importMap[localName] = utils_1.tables.keyframesHashTable[uniqueKey];
|
|
52
|
+
}
|
|
53
|
+
if (utils_1.tables.viewTransitionHashTable[uniqueKey]) {
|
|
54
|
+
importMap[localName] = utils_1.tables.viewTransitionHashTable[uniqueKey];
|
|
55
|
+
}
|
|
56
|
+
if (utils_1.tables.themeTable[uniqueKey]) {
|
|
57
|
+
importMap[localName] = utils_1.tables.themeTable[uniqueKey];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const mergedStaticTable = { ...utils_1.tables.staticTable };
|
|
65
|
+
for (const key of Object.keys(localConsts)) {
|
|
66
|
+
mergedStaticTable[key] = localConsts[key];
|
|
67
|
+
}
|
|
68
|
+
for (const key of Object.keys(importMap)) {
|
|
69
|
+
mergedStaticTable[key] = importMap[key];
|
|
70
|
+
}
|
|
71
|
+
const mergedKeyframesTable = { ...utils_1.tables.keyframesHashTable };
|
|
72
|
+
for (const key of Object.keys(importMap)) {
|
|
73
|
+
mergedKeyframesTable[key] = importMap[key];
|
|
74
|
+
}
|
|
75
|
+
const mergedViewTransitionTable = { ...utils_1.tables.viewTransitionHashTable };
|
|
76
|
+
for (const key of Object.keys(importMap)) {
|
|
77
|
+
mergedViewTransitionTable[key] = importMap[key];
|
|
78
|
+
}
|
|
79
|
+
const mergedThemeTable = { ...utils_1.tables.themeTable };
|
|
80
|
+
for (const key of Object.keys(importMap)) {
|
|
81
|
+
mergedThemeTable[key] = importMap[key];
|
|
82
|
+
}
|
|
34
83
|
const isTSFile = this.resourcePath.endsWith('.ts') && !this.resourcePath.endsWith('.tsx');
|
|
35
84
|
const localCreateStyles = {};
|
|
36
85
|
const replacements = [];
|
|
@@ -48,7 +97,7 @@ function loader(source) {
|
|
|
48
97
|
const propName = node.init.callee.property.value;
|
|
49
98
|
if (propName === 'create' &&
|
|
50
99
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
51
|
-
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression,
|
|
100
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
52
101
|
if (obj) {
|
|
53
102
|
const hashMap = {};
|
|
54
103
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -146,7 +195,7 @@ function loader(source) {
|
|
|
146
195
|
if (propName === 'keyframes' &&
|
|
147
196
|
args.length > 0 &&
|
|
148
197
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
149
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
198
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
150
199
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
151
200
|
utils_1.tables.keyframesObjectTable[hash] = obj;
|
|
152
201
|
replacements.push({
|
|
@@ -158,7 +207,7 @@ function loader(source) {
|
|
|
158
207
|
else if (propName === 'viewTransition' &&
|
|
159
208
|
args.length > 0 &&
|
|
160
209
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
161
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
210
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
162
211
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
163
212
|
utils_1.tables.viewTransitionObjectTable[hash] = obj;
|
|
164
213
|
(0, utils_1.extractOndemandStyles)(obj, extractedSheets);
|
|
@@ -172,7 +221,7 @@ function loader(source) {
|
|
|
172
221
|
else if (propName === 'createTheme' &&
|
|
173
222
|
args.length > 0 &&
|
|
174
223
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
175
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
224
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
176
225
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
177
226
|
utils_1.tables.createThemeObjectTable[hash] = obj;
|
|
178
227
|
}
|
|
@@ -267,7 +316,7 @@ function loader(source) {
|
|
|
267
316
|
const merged = args.reduce((acc, arg) => {
|
|
268
317
|
const expr = arg.expression;
|
|
269
318
|
if (utils_1.t.isObjectExpression(expr)) {
|
|
270
|
-
const obj = (0, utils_1.objectExpressionToObject)(expr,
|
|
319
|
+
const obj = (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
271
320
|
return obj ? (0, utils_1.deepMerge)(acc, obj) : acc;
|
|
272
321
|
}
|
|
273
322
|
else if (utils_1.t.isMemberExpression(expr) &&
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/webpack-plugin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Plumeria Webpack plugin",
|
|
5
5
|
"author": "Refirst 11",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"zero-virtual.css"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@plumeria/utils": "^
|
|
25
|
+
"@plumeria/utils": "^5.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|