@plumeria/turbopack-loader 4.1.3 → 4.2.1
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 +45 -21
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -21,23 +21,51 @@ async function loader(source) {
|
|
|
21
21
|
}
|
|
22
22
|
this.clearDependencies();
|
|
23
23
|
this.addDependency(this.resourcePath);
|
|
24
|
-
|
|
25
|
-
const { keyframesHashTableLocal, keyframesObjectTableLocal } = (0, utils_1.scanForKeyframes)((path) => this.addDependency(path));
|
|
26
|
-
utils_1.tables.keyframesHashTable = keyframesHashTableLocal;
|
|
27
|
-
utils_1.tables.keyframesObjectTable = keyframesObjectTableLocal;
|
|
28
|
-
const { viewTransitionHashTableLocal, viewTransitionObjectTableLocal } = (0, utils_1.scanForViewTransition)((path) => this.addDependency(path));
|
|
29
|
-
utils_1.tables.viewTransitionHashTable = viewTransitionHashTableLocal;
|
|
30
|
-
utils_1.tables.viewTransitionObjectTable = viewTransitionObjectTableLocal;
|
|
31
|
-
const { themeTableLocal, createThemeObjectTableLocal } = (0, utils_1.scanForCreateTheme)((path) => this.addDependency(path));
|
|
32
|
-
utils_1.tables.themeTable = themeTableLocal;
|
|
33
|
-
utils_1.tables.createThemeObjectTable = createThemeObjectTableLocal;
|
|
24
|
+
(0, utils_1.scanAll)((path) => this.addDependency(path));
|
|
34
25
|
const ast = (0, core_1.parseSync)(source, {
|
|
35
26
|
syntax: 'typescript',
|
|
36
27
|
tsx: true,
|
|
37
28
|
target: 'es2022',
|
|
38
29
|
});
|
|
39
30
|
const localConsts = (0, utils_1.collectLocalConsts)(ast);
|
|
40
|
-
|
|
31
|
+
const resourcePath = this.resourcePath;
|
|
32
|
+
const importMap = {};
|
|
33
|
+
(0, utils_1.traverse)(ast, {
|
|
34
|
+
ImportDeclaration({ node }) {
|
|
35
|
+
const sourcePath = node.source.value;
|
|
36
|
+
const actualPath = (0, utils_1.resolveImportPath)(sourcePath, resourcePath);
|
|
37
|
+
if (actualPath && fs_1.default.existsSync(actualPath)) {
|
|
38
|
+
if (fs_1.default.existsSync(actualPath)) {
|
|
39
|
+
node.specifiers.forEach((specifier) => {
|
|
40
|
+
if (specifier.type === 'ImportSpecifier') {
|
|
41
|
+
const importedName = specifier.imported
|
|
42
|
+
? specifier.imported.value
|
|
43
|
+
: specifier.local.value;
|
|
44
|
+
const localName = specifier.local.value;
|
|
45
|
+
const uniqueKey = `${actualPath}-${importedName}`;
|
|
46
|
+
if (utils_1.tables.staticTable[uniqueKey]) {
|
|
47
|
+
importMap[localName] = utils_1.tables.staticTable[uniqueKey];
|
|
48
|
+
}
|
|
49
|
+
if (utils_1.tables.keyframesHashTable[uniqueKey]) {
|
|
50
|
+
importMap[localName] = utils_1.tables.keyframesHashTable[uniqueKey];
|
|
51
|
+
}
|
|
52
|
+
if (utils_1.tables.viewTransitionHashTable[uniqueKey]) {
|
|
53
|
+
importMap[localName] =
|
|
54
|
+
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
|
+
});
|
|
65
|
+
const mergedStaticTable = Object.assign(Object.create(utils_1.tables.staticTable), localConsts, importMap);
|
|
66
|
+
const mergedKeyframesTable = Object.assign(Object.create(utils_1.tables.keyframesHashTable), importMap);
|
|
67
|
+
const mergedViewTransitionTable = Object.assign(Object.create(utils_1.tables.viewTransitionHashTable), importMap);
|
|
68
|
+
const mergedThemeTable = Object.assign(Object.create(utils_1.tables.themeTable), importMap);
|
|
41
69
|
const isTSFile = this.resourcePath.endsWith('.ts') && !this.resourcePath.endsWith('.tsx');
|
|
42
70
|
const localCreateStyles = {};
|
|
43
71
|
const replacements = [];
|
|
@@ -56,7 +84,7 @@ async function loader(source) {
|
|
|
56
84
|
const propName = node.init.callee.property.value;
|
|
57
85
|
if (propName === 'create' &&
|
|
58
86
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
59
|
-
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression,
|
|
87
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
60
88
|
if (obj) {
|
|
61
89
|
const hashMap = {};
|
|
62
90
|
Object.entries(obj).forEach(([key, style]) => {
|
|
@@ -154,7 +182,7 @@ async function loader(source) {
|
|
|
154
182
|
if (propName === 'keyframes' &&
|
|
155
183
|
args.length > 0 &&
|
|
156
184
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
157
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
185
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
158
186
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
159
187
|
utils_1.tables.keyframesObjectTable[hash] = obj;
|
|
160
188
|
replacements.push({
|
|
@@ -166,7 +194,7 @@ async function loader(source) {
|
|
|
166
194
|
else if (propName === 'viewTransition' &&
|
|
167
195
|
args.length > 0 &&
|
|
168
196
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
169
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
197
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
170
198
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
171
199
|
utils_1.tables.viewTransitionObjectTable[hash] = obj;
|
|
172
200
|
(0, utils_1.extractOndemandStyles)(obj, extractedSheets);
|
|
@@ -180,7 +208,7 @@ async function loader(source) {
|
|
|
180
208
|
else if (propName === 'createTheme' &&
|
|
181
209
|
args.length > 0 &&
|
|
182
210
|
utils_1.t.isObjectExpression(args[0].expression)) {
|
|
183
|
-
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression,
|
|
211
|
+
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
184
212
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
185
213
|
utils_1.tables.createThemeObjectTable[hash] = obj;
|
|
186
214
|
}
|
|
@@ -212,14 +240,10 @@ async function loader(source) {
|
|
|
212
240
|
return;
|
|
213
241
|
const styleInfo = localCreateStyles[node.value];
|
|
214
242
|
if (styleInfo && !styleInfo.hasDynamicAccess) {
|
|
215
|
-
const fullHashMap = {};
|
|
216
|
-
Object.entries(styleInfo.hashMap).forEach(([key, atomMap]) => {
|
|
217
|
-
fullHashMap[key] = Object.values(atomMap).join(' ');
|
|
218
|
-
});
|
|
219
243
|
replacements.push({
|
|
220
244
|
start: node.span.start - ast.span.start,
|
|
221
245
|
end: node.span.end - ast.span.start,
|
|
222
|
-
content: JSON.stringify(
|
|
246
|
+
content: JSON.stringify(styleInfo.hashMap),
|
|
223
247
|
});
|
|
224
248
|
}
|
|
225
249
|
},
|
|
@@ -279,7 +303,7 @@ async function loader(source) {
|
|
|
279
303
|
const merged = args.reduce((acc, arg) => {
|
|
280
304
|
const expr = arg.expression;
|
|
281
305
|
if (utils_1.t.isObjectExpression(expr)) {
|
|
282
|
-
const obj = (0, utils_1.objectExpressionToObject)(expr,
|
|
306
|
+
const obj = (0, utils_1.objectExpressionToObject)(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable);
|
|
283
307
|
return obj ? (0, utils_1.deepMerge)(acc, obj) : acc;
|
|
284
308
|
}
|
|
285
309
|
else if (utils_1.t.isMemberExpression(expr) &&
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/turbopack-loader",
|
|
3
|
-
"version": "4.1
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"description": "Plumeria Turbopack-loader",
|
|
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": "^4.1
|
|
25
|
+
"@plumeria/utils": "^4.2.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|