@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.
Files changed (2) hide show
  1. package/dist/index.js +56 -7
  2. 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, this.resourcePath);
33
- Object.assign(utils_1.tables.staticTable, localConsts);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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, utils_1.tables.staticTable, utils_1.tables.keyframesHashTable, utils_1.tables.viewTransitionHashTable, utils_1.tables.themeTable);
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": "4.2.0",
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": "^4.2.0"
25
+ "@plumeria/utils": "^5.0.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",