@plumeria/turbopack-loader 6.2.1 → 6.3.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 +62 -45
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = loader;
|
|
7
7
|
const core_1 = require("@swc/core");
|
|
8
|
-
const fs_1 =
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const zss_engine_1 = require("zss-engine");
|
|
11
11
|
const utils_1 = require("@plumeria/utils");
|
|
12
12
|
const VIRTUAL_FILE_PATH = path_1.default.resolve(__dirname, '..', 'zero-virtual.css');
|
|
13
13
|
if (process.env.NODE_ENV === 'production') {
|
|
14
|
-
fs_1.
|
|
14
|
+
(0, fs_1.writeFileSync)(VIRTUAL_FILE_PATH, '/** Placeholder file */\n', 'utf-8');
|
|
15
15
|
}
|
|
16
16
|
async function loader(source) {
|
|
17
17
|
const callback = this.async();
|
|
@@ -142,6 +142,11 @@ async function loader(source) {
|
|
|
142
142
|
const mergedCreateThemeHashTable = {};
|
|
143
143
|
for (const key of Object.keys(scannedTables.createThemeHashTable)) {
|
|
144
144
|
mergedCreateThemeHashTable[key] = scannedTables.createThemeHashTable[key];
|
|
145
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
146
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
147
|
+
mergedCreateThemeHashTable[varName] =
|
|
148
|
+
scannedTables.createThemeHashTable[key];
|
|
149
|
+
}
|
|
145
150
|
}
|
|
146
151
|
for (const key of Object.keys(createThemeImportMap)) {
|
|
147
152
|
mergedCreateThemeHashTable[key] = createThemeImportMap[key];
|
|
@@ -149,6 +154,11 @@ async function loader(source) {
|
|
|
149
154
|
const mergedCreateStaticHashTable = {};
|
|
150
155
|
for (const key of Object.keys(scannedTables.createStaticHashTable)) {
|
|
151
156
|
mergedCreateStaticHashTable[key] = scannedTables.createStaticHashTable[key];
|
|
157
|
+
if (key.startsWith(`${resourcePath}-`)) {
|
|
158
|
+
const varName = key.slice(resourcePath.length + 1);
|
|
159
|
+
mergedCreateStaticHashTable[varName] =
|
|
160
|
+
scannedTables.createStaticHashTable[key];
|
|
161
|
+
}
|
|
152
162
|
}
|
|
153
163
|
for (const key of Object.keys(createStaticImportMap)) {
|
|
154
164
|
mergedCreateStaticHashTable[key] = createStaticImportMap[key];
|
|
@@ -211,7 +221,7 @@ async function loader(source) {
|
|
|
211
221
|
if (obj) {
|
|
212
222
|
const hashMap = {};
|
|
213
223
|
Object.entries(obj).forEach(([key, style]) => {
|
|
214
|
-
const records = (0, utils_1.getStyleRecords)(key, style
|
|
224
|
+
const records = (0, utils_1.getStyleRecords)(key, style);
|
|
215
225
|
if (!isProduction) {
|
|
216
226
|
(0, utils_1.extractOndemandStyles)(style, extractedSheets, scannedTables);
|
|
217
227
|
records.forEach((r) => {
|
|
@@ -244,6 +254,9 @@ async function loader(source) {
|
|
|
244
254
|
}
|
|
245
255
|
else if (propName === 'variants' &&
|
|
246
256
|
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
257
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
258
|
+
idSpans.add(node.id.span.start);
|
|
259
|
+
}
|
|
247
260
|
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
|
|
248
261
|
if (localCreateStyles[name]) {
|
|
249
262
|
return localCreateStyles[name].obj;
|
|
@@ -272,6 +285,32 @@ async function loader(source) {
|
|
|
272
285
|
},
|
|
273
286
|
};
|
|
274
287
|
}
|
|
288
|
+
else if (propName === 'createTheme' &&
|
|
289
|
+
utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
|
|
290
|
+
if (utils_1.t.isIdentifier(node.id)) {
|
|
291
|
+
idSpans.add(node.id.span.start);
|
|
292
|
+
}
|
|
293
|
+
const obj = (0, utils_1.objectExpressionToObject)(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
294
|
+
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
295
|
+
const uniqueKey = `${resourcePath}-${node.id.value}`;
|
|
296
|
+
scannedTables.createThemeHashTable[uniqueKey] = hash;
|
|
297
|
+
scannedTables.createThemeObjectTable[hash] = obj;
|
|
298
|
+
localCreateStyles[node.id.value] = {
|
|
299
|
+
name: node.id.value,
|
|
300
|
+
type: 'constant',
|
|
301
|
+
obj,
|
|
302
|
+
hashMap: scannedTables.createAtomicMapTable[hash],
|
|
303
|
+
isExported,
|
|
304
|
+
initSpan: {
|
|
305
|
+
start: node.init.span.start - ast.span.start,
|
|
306
|
+
end: node.init.span.end - ast.span.start,
|
|
307
|
+
},
|
|
308
|
+
declSpan: {
|
|
309
|
+
start: declSpan.start - ast.span.start,
|
|
310
|
+
end: declSpan.end - ast.span.start,
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
}
|
|
275
314
|
}
|
|
276
315
|
};
|
|
277
316
|
(0, utils_1.traverse)(ast, {
|
|
@@ -332,6 +371,9 @@ async function loader(source) {
|
|
|
332
371
|
const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
|
|
333
372
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
334
373
|
scannedTables.keyframesObjectTable[hash] = obj;
|
|
374
|
+
if (!isProduction) {
|
|
375
|
+
(0, utils_1.extractOndemandStyles)({ kf: `kf-${hash}` }, extractedSheets, scannedTables);
|
|
376
|
+
}
|
|
335
377
|
replacements.push({
|
|
336
378
|
start: node.span.start - ast.span.start,
|
|
337
379
|
end: node.span.end - ast.span.start,
|
|
@@ -345,7 +387,6 @@ async function loader(source) {
|
|
|
345
387
|
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
346
388
|
scannedTables.viewTransitionObjectTable[hash] = obj;
|
|
347
389
|
if (!isProduction) {
|
|
348
|
-
(0, utils_1.extractOndemandStyles)(obj, extractedSheets, scannedTables);
|
|
349
390
|
(0, utils_1.extractOndemandStyles)({ vt: `vt-${hash}` }, extractedSheets, scannedTables);
|
|
350
391
|
}
|
|
351
392
|
replacements.push({
|
|
@@ -380,7 +421,7 @@ async function loader(source) {
|
|
|
380
421
|
scannedTables.createObjectTable[hash] = obj;
|
|
381
422
|
Object.entries(obj).forEach(([key, style]) => {
|
|
382
423
|
if (typeof style === 'object' && style !== null) {
|
|
383
|
-
const records = (0, utils_1.getStyleRecords)(key, style
|
|
424
|
+
const records = (0, utils_1.getStyleRecords)(key, style);
|
|
384
425
|
if (!isProduction) {
|
|
385
426
|
(0, utils_1.extractOndemandStyles)(style, extractedSheets, scannedTables);
|
|
386
427
|
records.forEach((r) => addSheet(r.sheet));
|
|
@@ -396,7 +437,7 @@ async function loader(source) {
|
|
|
396
437
|
if (utils_1.t.isIdentifier(node.object) && utils_1.t.isIdentifier(node.property)) {
|
|
397
438
|
const varName = node.object.value;
|
|
398
439
|
const propName = node.property.value;
|
|
399
|
-
const uniqueKey = `${
|
|
440
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
400
441
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
401
442
|
if (!hash) {
|
|
402
443
|
hash = mergedCreateTable[varName];
|
|
@@ -419,13 +460,12 @@ async function loader(source) {
|
|
|
419
460
|
themeHash = mergedCreateThemeHashTable[varName];
|
|
420
461
|
}
|
|
421
462
|
if (themeHash) {
|
|
422
|
-
const
|
|
423
|
-
if (
|
|
424
|
-
const cssVarName = (0, zss_engine_1.camelToKebabCase)(propName);
|
|
463
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
464
|
+
if (atomicMap && atomicMap && atomicMap[propName]) {
|
|
425
465
|
replacements.push({
|
|
426
466
|
start: node.span.start - ast.span.start,
|
|
427
467
|
end: node.span.end - ast.span.start,
|
|
428
|
-
content: JSON.stringify(
|
|
468
|
+
content: JSON.stringify(atomicMap[propName]),
|
|
429
469
|
});
|
|
430
470
|
}
|
|
431
471
|
}
|
|
@@ -460,7 +500,7 @@ async function loader(source) {
|
|
|
460
500
|
return;
|
|
461
501
|
}
|
|
462
502
|
const varName = node.value;
|
|
463
|
-
const uniqueKey = `${
|
|
503
|
+
const uniqueKey = `${resourcePath}-${varName}`;
|
|
464
504
|
let hash = scannedTables.createHashTable[uniqueKey];
|
|
465
505
|
if (!hash) {
|
|
466
506
|
hash = mergedCreateTable[varName];
|
|
@@ -482,46 +522,19 @@ async function loader(source) {
|
|
|
482
522
|
});
|
|
483
523
|
}
|
|
484
524
|
}
|
|
485
|
-
let kfHash = scannedTables.keyframesHashTable[uniqueKey];
|
|
486
|
-
if (!kfHash) {
|
|
487
|
-
kfHash = mergedKeyframesTable[varName];
|
|
488
|
-
}
|
|
489
|
-
if (kfHash) {
|
|
490
|
-
replacements.push({
|
|
491
|
-
start: node.span.start - ast.span.start,
|
|
492
|
-
end: node.span.end - ast.span.start,
|
|
493
|
-
content: JSON.stringify(`kf-${kfHash}`),
|
|
494
|
-
});
|
|
495
|
-
return;
|
|
496
|
-
}
|
|
497
|
-
let vtHash = scannedTables.viewTransitionHashTable[uniqueKey];
|
|
498
|
-
if (!vtHash) {
|
|
499
|
-
vtHash = mergedViewTransitionTable[varName];
|
|
500
|
-
}
|
|
501
|
-
if (vtHash) {
|
|
502
|
-
replacements.push({
|
|
503
|
-
start: node.span.start - ast.span.start,
|
|
504
|
-
end: node.span.end - ast.span.start,
|
|
505
|
-
content: JSON.stringify(`vt-${vtHash}`),
|
|
506
|
-
});
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
525
|
let themeHash = scannedTables.createThemeHashTable[uniqueKey];
|
|
510
526
|
if (!themeHash) {
|
|
511
527
|
themeHash = mergedCreateThemeHashTable[varName];
|
|
512
528
|
}
|
|
513
529
|
if (themeHash) {
|
|
514
|
-
const
|
|
515
|
-
if (
|
|
516
|
-
const themeVars = {};
|
|
517
|
-
Object.keys(themeObj).forEach((key) => {
|
|
518
|
-
themeVars[key] = `var(--${(0, zss_engine_1.camelToKebabCase)(key)})`;
|
|
519
|
-
});
|
|
530
|
+
const atomicMap = scannedTables.createAtomicMapTable[themeHash];
|
|
531
|
+
if (atomicMap) {
|
|
520
532
|
replacements.push({
|
|
521
533
|
start: node.span.start - ast.span.start,
|
|
522
534
|
end: node.span.end - ast.span.start,
|
|
523
|
-
content: JSON.stringify(
|
|
535
|
+
content: JSON.stringify(atomicMap),
|
|
524
536
|
});
|
|
537
|
+
return;
|
|
525
538
|
}
|
|
526
539
|
}
|
|
527
540
|
let staticHash = scannedTables.createStaticHashTable[uniqueKey];
|
|
@@ -759,7 +772,7 @@ async function loader(source) {
|
|
|
759
772
|
(0, utils_1.extractOndemandStyles)(baseStyle, extractedSheets, scannedTables);
|
|
760
773
|
}
|
|
761
774
|
const hash = (0, zss_engine_1.genBase36Hash)(baseStyle, 1, 8);
|
|
762
|
-
const records = (0, utils_1.getStyleRecords)(hash, baseStyle
|
|
775
|
+
const records = (0, utils_1.getStyleRecords)(hash, baseStyle);
|
|
763
776
|
if (!isProduction) {
|
|
764
777
|
records.forEach((r) => addSheet(r.sheet));
|
|
765
778
|
}
|
|
@@ -800,7 +813,7 @@ async function loader(source) {
|
|
|
800
813
|
(0, utils_1.extractOndemandStyles)(currentStyle, extractedSheets, scannedTables);
|
|
801
814
|
}
|
|
802
815
|
const hash = (0, zss_engine_1.genBase36Hash)(currentStyle, 1, 8);
|
|
803
|
-
const records = (0, utils_1.getStyleRecords)(hash, currentStyle
|
|
816
|
+
const records = (0, utils_1.getStyleRecords)(hash, currentStyle);
|
|
804
817
|
if (process.env.NODE_ENV !== 'production') {
|
|
805
818
|
records.forEach((r) => extractedSheets.push(r.sheet));
|
|
806
819
|
}
|
|
@@ -838,6 +851,9 @@ async function loader(source) {
|
|
|
838
851
|
},
|
|
839
852
|
});
|
|
840
853
|
Object.values(localCreateStyles).forEach((info) => {
|
|
854
|
+
if (info.type === 'constant') {
|
|
855
|
+
return;
|
|
856
|
+
}
|
|
841
857
|
if (info.isExported) {
|
|
842
858
|
replacements.push({
|
|
843
859
|
start: info.declSpan.start,
|
|
@@ -853,6 +869,7 @@ async function loader(source) {
|
|
|
853
869
|
});
|
|
854
870
|
}
|
|
855
871
|
});
|
|
872
|
+
const optInCSS = await (0, utils_1.optimizer)(extractedSheets.join(''));
|
|
856
873
|
const buffer = Buffer.from(source);
|
|
857
874
|
let offset = 0;
|
|
858
875
|
const parts = [];
|
|
@@ -886,7 +903,7 @@ async function loader(source) {
|
|
|
886
903
|
if (process.env.NODE_ENV === 'production')
|
|
887
904
|
return callback(null, transformedSource);
|
|
888
905
|
if (extractedSheets.length > 0 && process.env.NODE_ENV === 'development') {
|
|
889
|
-
fs_1.
|
|
906
|
+
(0, fs_1.appendFileSync)(VIRTUAL_FILE_PATH, optInCSS, 'utf-8');
|
|
890
907
|
}
|
|
891
908
|
return callback(null, transformedSource + postfix);
|
|
892
909
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/turbopack-loader",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.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": "^6.
|
|
25
|
+
"@plumeria/utils": "^6.3.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|