@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.
Files changed (2) hide show
  1. package/dist/index.js +45 -21
  2. 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
- utils_1.tables.staticTable = (0, utils_1.scanForCreateStatic)((path) => this.addDependency(path));
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
- Object.assign(utils_1.tables.staticTable, localConsts);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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(fullHashMap),
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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",
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.3"
25
+ "@plumeria/utils": "^4.2.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",