@common-stack/rollup-vite-utils 4.0.2-alpha.7 → 4.0.3-alpha.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 (52) hide show
  1. package/lib/constants/constants.d.ts +1 -0
  2. package/lib/constants/constants.js +2 -1
  3. package/lib/constants/constants.js.map +1 -1
  4. package/lib/default-config.json.js +1 -1
  5. package/lib/index.js +1 -1
  6. package/lib/interfaces/types.d.ts +1 -0
  7. package/lib/preStartup/configLoader/envLoader.d.ts +1 -1
  8. package/lib/preStartup/configLoader/envLoader.js +1 -2
  9. package/lib/preStartup/configLoader/envLoader.js.map +1 -1
  10. package/lib/preStartup/configLoader/index.js +1 -1
  11. package/lib/preStartup/configLoader/index.js.map +1 -1
  12. package/lib/preStartup/copyIfVersionChanged.js +2 -14
  13. package/lib/preStartup/copyIfVersionChanged.js.map +1 -1
  14. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js +11 -5
  15. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js.map +1 -1
  16. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.d.ts +3 -0
  17. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js +236 -0
  18. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js.map +1 -0
  19. package/lib/rollup/modifyLibFiles/handleIconSVGFiles.d.ts +3 -0
  20. package/lib/rollup/modifyLibFiles/handleIconSVGFiles.js +22 -0
  21. package/lib/rollup/modifyLibFiles/handleIconSVGFiles.js.map +1 -0
  22. package/lib/rollup/modifyLibFiles/handleWrappers.d.ts +3 -0
  23. package/lib/rollup/modifyLibFiles/handleWrappers.js +34 -0
  24. package/lib/rollup/modifyLibFiles/handleWrappers.js.map +1 -0
  25. package/lib/rollup/modifyLibFiles/handleWrappers.test.d.ts +1 -0
  26. package/lib/rollup/modifyLibFiles/utils.d.ts +2 -0
  27. package/lib/rollup/modifyLibFiles/utils.js +19 -0
  28. package/lib/rollup/modifyLibFiles/utils.js.map +1 -0
  29. package/lib/rollup/rollupPluginModifyLibFiles.d.ts +1 -7
  30. package/lib/rollup/rollupPluginModifyLibFiles.js +4 -270
  31. package/lib/rollup/rollupPluginModifyLibFiles.js.map +1 -1
  32. package/lib/utils/index.d.ts +1 -1
  33. package/lib/utils/utils.d.ts +1 -0
  34. package/lib/utils/utils.js +13 -1
  35. package/lib/utils/utils.js.map +1 -1
  36. package/lib/utils/withErrorHandleUtil.js +91 -0
  37. package/lib/utils/withErrorHandleUtil.js.map +1 -0
  38. package/lib/utils/withErrorHandleUtil.test.d.ts +1 -0
  39. package/lib/vite-wrappers/icon-switch.d.ts +3 -0
  40. package/lib/vite-wrappers/icon-switch.js +83 -0
  41. package/lib/vite-wrappers/icon-switch.js.map +1 -0
  42. package/lib/vite-wrappers/json-wrappers.js +20 -10
  43. package/lib/vite-wrappers/json-wrappers.js.map +1 -1
  44. package/lib/vite-wrappers/loaderGenerator.js +55 -24
  45. package/lib/vite-wrappers/loaderGenerator.js.map +1 -1
  46. package/lib/vite-wrappers/wrapperComponent.d.ts +0 -1
  47. package/lib/vite-wrappers/wrapperComponent.js +25 -35
  48. package/lib/vite-wrappers/wrapperComponent.js.map +1 -1
  49. package/package.json +4 -4
  50. package/lib/utils/with-error-handler-util.js +0 -67
  51. package/lib/utils/with-error-handler-util.js.map +0 -1
  52. /package/lib/utils/{with-error-handler-util.d.ts → withErrorHandleUtil.d.ts} +0 -0
@@ -1,282 +1,13 @@
1
- import fs__default from'fs';import path__default from'path';import {parse}from'@babel/parser';import traverseSource from'@babel/traverse';import generateSource from'@babel/generator';import*as t from'@babel/types';import {promisify}from'util';import glob from'glob';import {createFilter}from'@rollup/pluginutils';import {extractGraphQLQueries}from'./modifyLibFiles/extractGraphQLQueries.js';/* eslint-disable import/no-extraneous-dependencies */
1
+ import fs__default from'fs';import path__default from'path';import {parse}from'@babel/parser';import traverseSource from'@babel/traverse';import generateSource from'@babel/generator';import*as t from'@babel/types';import {promisify}from'util';import glob from'glob';import {createFilter}from'@rollup/pluginutils';import {handleWrappers}from'./modifyLibFiles/handleWrappers.js';import {handleComponentOrDialog}from'./modifyLibFiles/handleComponentOrDialog.js';import {handleIconSVGFiles}from'./modifyLibFiles/handleIconSVGFiles.js';/* eslint-disable import/no-extraneous-dependencies */
2
2
  // to support esm default
3
3
  // https://github.com/babel/babel/issues/15269#issuecomment-1505804243
4
4
  const traverse = traverseSource.default ?? traverseSource;
5
5
  const generate = generateSource.default ?? generateSource;
6
6
  const globPromise = promisify(glob);
7
- function findPackageJson(directory) {
8
- let currentDir = directory;
9
- while (currentDir && currentDir !== path__default.parse(currentDir).root) {
10
- const packageJsonPath = path__default.join(currentDir, 'package.json');
11
- if (fs__default.existsSync(packageJsonPath)) {
12
- return packageJsonPath;
13
- }
14
- currentDir = path__default.dirname(currentDir);
15
- }
16
- throw new Error(`No package.json found in path ${directory}`);
17
- }
18
- const RouteModule = {
19
- action: 'action',
20
- hasAction: 'hasAction',
21
- clientAction: 'clientAction',
22
- hasClientAction: 'hasClientAction',
23
- clientLoader: 'clientLoader',
24
- hasClientLoader: 'hasClientLoader',
25
- Component: 'default', // default export
26
- hasComponent: 'hasComponent',
27
- ErrorBoundary: 'ErrorBoundary',
28
- hasErrorBoundary: 'hasErrorBoundary',
29
- handle: 'handle',
30
- hasHandle: 'hasHandle',
31
- headers: 'headers',
32
- hasHeaders: 'hasHeaders',
33
- HydrateFallback: 'HydrateFallback',
34
- hasHydrateFallback: 'hasHydrateFallback',
35
- links: 'links',
36
- hasLinks: 'hasLinks',
37
- loader: 'loader',
38
- hasLoader: 'hasLoader',
39
- meta: 'meta',
40
- hasMeta: 'hasMeta',
41
- shouldRevalidate: 'shouldRevalidate',
42
- hasShouldRevalidate: 'hasShouldRevalidate',
43
- };
44
- function parseFileToAST(filePath, plugins) {
45
- const fileContent = fs__default.readFileSync(filePath, 'utf8');
46
- return parse(fileContent, {
47
- sourceType: 'module',
48
- plugins,
49
- });
50
- }
51
7
  function writeModifiedASTToFile(filePath, ast, originalCode) {
52
8
  const output = generate(ast, {}, originalCode);
53
9
  fs__default.writeFileSync(filePath, output.code);
54
10
  }
55
- function getFunctionName(path) {
56
- if (path.isFunctionDeclaration() || path.isFunctionExpression()) {
57
- return path.node.id ? path.node.id.name : null;
58
- }
59
- if (path.parent && path.parent.type === 'VariableDeclarator' && t.isIdentifier(path.parent.id)) {
60
- return path.parent.id.name;
61
- }
62
- return null;
63
- }
64
- function simplifyReturnStatement(returnPath, returnInfo) {
65
- const { argument } = returnPath.node;
66
- if (argument && ((argument.type === 'CallExpression' && argument.callee.type === 'Identifier' && (argument.callee.name === 'defer' || argument.callee.name === 'json')) ||
67
- argument.type === 'ObjectExpression')) {
68
- const args = argument.type === 'CallExpression' ? argument.arguments : [argument];
69
- if (args.length > 0 && args[0].type === 'ObjectExpression' && args[0].properties.length > 0) {
70
- const { properties } = args[0];
71
- const valuesArray = properties
72
- .map((prop) => {
73
- const { value } = prop;
74
- if (t.isExpression(value)) {
75
- return value;
76
- }
77
- return null;
78
- })
79
- .filter(Boolean);
80
- properties.forEach((prop) => {
81
- const { key } = prop;
82
- if (t.isIdentifier(key)) {
83
- returnInfo.keys.push(key.name);
84
- }
85
- });
86
- const objectProperties = [
87
- t.objectProperty(t.identifier('data'), t.arrayExpression(valuesArray)),
88
- ];
89
- if (args.length > 1 && args[1].type === 'ObjectExpression') {
90
- returnInfo.hasOptions = true;
91
- objectProperties.push(t.objectProperty(t.identifier('options'), args[1]));
92
- }
93
- returnPath.node.argument = t.objectExpression(objectProperties);
94
- returnInfo.returnType = argument.type === 'CallExpression' && t.isIdentifier(argument.callee)
95
- ? argument.callee.name
96
- : 'json';
97
- return true;
98
- }
99
- }
100
- return false;
101
- }
102
- function modifyReturn(filePath, loaderName) {
103
- const ast = parseFileToAST(filePath, ['typescript', 'jsx']);
104
- const returnInfo = { returnType: '', keys: [], hasOptions: false };
105
- let modified = false;
106
- traverse(ast, {
107
- 'FunctionDeclaration|ArrowFunctionExpression|FunctionExpression': function (path) {
108
- const functionName = getFunctionName(path);
109
- if (functionName === loaderName ||
110
- path.parent.type === 'ExportDefaultDeclaration' ||
111
- (path.parent.type === 'ExportNamedDeclaration' && path.parent.declaration === path.node)) {
112
- path.traverse({
113
- ReturnStatement(returnPath) {
114
- modified = simplifyReturnStatement(returnPath, returnInfo) || modified;
115
- },
116
- });
117
- }
118
- },
119
- });
120
- if (modified) {
121
- writeModifiedASTToFile(filePath, ast, fs__default.readFileSync(filePath, 'utf8'));
122
- }
123
- return returnInfo;
124
- }
125
- function processImportPaths(importPath, filePath, dist) {
126
- const fullPath = path__default.resolve(path__default.dirname(filePath), importPath);
127
- const packageJsonPath = findPackageJson(path__default.dirname(path__default.resolve(process.cwd(), dist)));
128
- const packageJson = JSON.parse(fs__default.readFileSync(packageJsonPath, 'utf8'));
129
- const relativePath = path__default.relative(path__default.dirname(packageJsonPath), fullPath);
130
- return `${packageJson.name}/${relativePath.replace(/\\/g, '/')}`;
131
- }
132
- function extractLoaderInfo(importedAst, fullPath) {
133
- const loaderInfo = {
134
- hasLoader: false,
135
- hasAction: false,
136
- hasClientLoader: false,
137
- hasClientAction: false,
138
- hasComponent: false,
139
- hasErrorBoundary: false,
140
- hasLinks: false,
141
- hasMeta: false,
142
- hasHydrateFallback: false,
143
- hasShouldRevalidate: false,
144
- hasHandle: false,
145
- hasHeaders: false,
146
- };
147
- let returnInfo = { returnType: '', keys: [], hasOptions: false };
148
- let queries = {};
149
- traverse(importedAst, {
150
- ExportNamedDeclaration(namedPath) {
151
- if (namedPath.node.source) {
152
- const loaderSourcePath = namedPath.node.source.value;
153
- fullPath = path__default.resolve(path__default.dirname(fullPath), loaderSourcePath);
154
- }
155
- else {
156
- fullPath = fullPath;
157
- }
158
- namedPath.node.specifiers.forEach((specifier) => {
159
- if (t.isExportSpecifier(specifier) && t.isIdentifier(specifier.exported)) {
160
- switch (specifier.exported.name) {
161
- case RouteModule.loader:
162
- loaderInfo.hasLoader = true;
163
- returnInfo = modifyReturn(fullPath, specifier.local.name);
164
- break;
165
- case RouteModule.action:
166
- loaderInfo.hasAction = true;
167
- break;
168
- case RouteModule.Component:
169
- loaderInfo.hasComponent = true;
170
- queries = extractGraphQLQueries(fullPath);
171
- break;
172
- case RouteModule.ErrorBoundary:
173
- loaderInfo.hasErrorBoundary = true;
174
- break;
175
- case RouteModule.clientLoader:
176
- loaderInfo.hasClientLoader = true;
177
- break;
178
- case RouteModule.clientAction:
179
- loaderInfo.hasClientAction = true;
180
- break;
181
- case RouteModule.headers:
182
- loaderInfo.hasHeaders = true;
183
- break;
184
- case RouteModule.links:
185
- loaderInfo.hasLinks = true;
186
- break;
187
- case RouteModule.meta:
188
- loaderInfo.hasMeta = true;
189
- break;
190
- case RouteModule.shouldRevalidate:
191
- loaderInfo.hasShouldRevalidate = true;
192
- break;
193
- case RouteModule.HydrateFallback:
194
- loaderInfo.hasHydrateFallback = true;
195
- break;
196
- case RouteModule.handle:
197
- loaderInfo.hasHandle = true;
198
- break;
199
- }
200
- }
201
- });
202
- },
203
- });
204
- return { loaderInfo, returnInfo, queries };
205
- }
206
- function handleComponentOrDialog(astroPath, filePath, dist) {
207
- const importDeclaration = astroPath.node.value;
208
- const propName = astroPath.node.key.name;
209
- if (t.isArrowFunctionExpression(importDeclaration) && t.isCallExpression(importDeclaration.body) && t.isImport(importDeclaration.body.callee)) {
210
- const importArg = importDeclaration.body.arguments[0];
211
- if (t.isStringLiteral(importArg)) {
212
- const importPath = importArg.value;
213
- const normalizedImportPath = processImportPaths(importPath, filePath, dist);
214
- const fileProperty = t.objectProperty(t.identifier(`${propName}Path`), t.stringLiteral(normalizedImportPath));
215
- const parentObject = astroPath.findParent((p) => p.isObjectExpression());
216
- if (parentObject && t.isObjectExpression(parentObject.node)) {
217
- astroPath.remove();
218
- parentObject.node.properties.push(fileProperty);
219
- const fullPath = path__default.resolve(path__default.dirname(filePath), importPath);
220
- if (fs__default.existsSync(fullPath)) {
221
- const importedFileCode = fs__default.readFileSync(fullPath, 'utf8');
222
- const importedAst = parse(importedFileCode, {
223
- sourceType: 'module',
224
- plugins: ['typescript', 'jsx'],
225
- });
226
- const { loaderInfo, returnInfo, queries } = extractLoaderInfo(importedAst, fullPath);
227
- for (const key in loaderInfo) {
228
- if (loaderInfo[key]) {
229
- parentObject.node.properties.push(t.objectProperty(t.identifier(RouteModule[key]), t.booleanLiteral(true)));
230
- }
231
- }
232
- if (returnInfo.keys.length > 0) {
233
- const returnInfoObject = t.objectExpression([
234
- t.objectProperty(t.identifier('returnType'), t.stringLiteral(returnInfo.returnType)),
235
- t.objectProperty(t.identifier('hasOptions'), t.booleanLiteral(returnInfo.hasOptions)),
236
- t.objectProperty(t.identifier('keys'), t.arrayExpression(returnInfo.keys.map((key) => t.stringLiteral(key)))),
237
- ]);
238
- parentObject.node.properties.push(t.objectProperty(t.identifier('loaderReturnInfo'), returnInfoObject));
239
- }
240
- if (queries) {
241
- parentObject.node.properties.push(t.objectProperty(t.identifier('queries'), t.objectExpression(Object.entries(queries).map(([key, value]) => t.objectProperty(t.identifier(key), t.stringLiteral(value ?? '{}'))))));
242
- }
243
- return true;
244
- }
245
- }
246
- }
247
- }
248
- return false;
249
- }
250
- function handleWrappers(astroPath, filePath, dist) {
251
- const parentObjectExpression = astroPath.findParent((p) => p.isObjectExpression());
252
- const wrapperPaths = [];
253
- astroPath.node.value.elements.forEach((element, index) => {
254
- if (t.isCallExpression(element) && t.isImport(element.callee)) {
255
- const importArg = element.arguments[0];
256
- if (importArg && t.isStringLiteral(importArg)) {
257
- const importPath = importArg.value;
258
- const normalizedImportPath = processImportPaths(importPath, filePath, dist);
259
- element.arguments[0] = t.stringLiteral(normalizedImportPath);
260
- wrapperPaths.push(normalizedImportPath);
261
- }
262
- }
263
- });
264
- if (wrapperPaths.length > 0) {
265
- const wrapperPathsArrayExpression = t.arrayExpression(wrapperPaths.map((path) => t.stringLiteral(path)));
266
- if (parentObjectExpression && t.isObjectExpression(parentObjectExpression.node)) {
267
- const existingWrapperPaths = parentObjectExpression.node.properties.find((prop) => t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === 'wrapperPaths');
268
- if (existingWrapperPaths && t.isObjectProperty(existingWrapperPaths) && t.isArrayExpression(existingWrapperPaths.value)) {
269
- existingWrapperPaths.value.elements.push(...wrapperPathsArrayExpression.elements);
270
- }
271
- else {
272
- const wrapperPathsProperty = t.objectProperty(t.identifier('wrapperPaths'), wrapperPathsArrayExpression);
273
- parentObjectExpression.node.properties.push(wrapperPathsProperty);
274
- }
275
- }
276
- return true;
277
- }
278
- return false;
279
- }
280
11
  function modifyLibFilesPlugin(options = {}) {
281
12
  const filter = createFilter(options.include, options.exclude);
282
13
  const dist = options.outputDir || './lib';
@@ -303,6 +34,9 @@ function modifyLibFilesPlugin(options = {}) {
303
34
  else if (astroPath.node.key.name === 'wrappers' && t.isArrayExpression(astroPath.node.value)) {
304
35
  modified = handleWrappers(astroPath, filePath, dist) || modified;
305
36
  }
37
+ else if (astroPath.node.key.name === 'icon' && t.isObjectExpression(astroPath.node.value)) {
38
+ modified = handleIconSVGFiles(astroPath, filePath, dist) || modified;
39
+ }
306
40
  }
307
41
  },
308
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rollupPluginModifyLibFiles.js","sources":["../../src/rollup/rollupPluginModifyLibFiles.ts"],"sourcesContent":[null],"names":["path","fs"],"mappings":"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"}
1
+ {"version":3,"file":"rollupPluginModifyLibFiles.js","sources":["../../src/rollup/rollupPluginModifyLibFiles.ts"],"sourcesContent":[null],"names":["fs","path"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export * from './utils';
2
- export * from './with-error-handler-util';
2
+ export * from './withErrorHandleUtil';
3
3
  export * from './setupConfig';
@@ -37,4 +37,5 @@ export declare function generateModulesFile(packages: string[]): string;
37
37
  * @param packages - The list of packages to include.
38
38
  */
39
39
  export declare function writeModuleFile(destDir: string, packages: string[]): void;
40
+ export declare function findPackageDir(initialDir: string, packageName: string): string | null;
40
41
  export {};
@@ -77,4 +77,16 @@ function writeModuleFile(destDir, packages) {
77
77
  const modulesFileContent = generateModulesFile(packages);
78
78
  const newFilePath = path__default.join(destDir, MODULES_JS);
79
79
  fs.writeFileSync(newFilePath, modulesFileContent);
80
- }export{generateModulesFile,getMetadata,getPackageVersion,updateMetadata,writeModuleFile};//# sourceMappingURL=utils.js.map
80
+ }
81
+ function findPackageDir(initialDir, packageName) {
82
+ let currentDir = initialDir;
83
+ while (currentDir !== path__default.parse(currentDir).root) {
84
+ const packagePath = path__default.join(currentDir, 'node_modules', packageName);
85
+ if (fs.existsSync(packagePath)) {
86
+ return packagePath;
87
+ }
88
+ currentDir = path__default.dirname(currentDir);
89
+ }
90
+ console.error(`Package ${packageName} not found from ${initialDir} up to root.`);
91
+ return null;
92
+ }export{findPackageDir,generateModulesFile,getMetadata,getPackageVersion,updateMetadata,writeModuleFile};//# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils/utils.ts"],"sourcesContent":[null],"names":["path"],"mappings":"2HAeA;;;;AAIG;AACI,eAAe,iBAAiB,CAAC,WAAmB,EAAA;AACvD,IAAA,IAAI;AACA,QAAA,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAACA,aAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC,OAAO,CAAC;KAC9B;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAED;;;;AAIG;AACI,eAAe,WAAW,CAAC,MAAc,EAAA;AAC5C,IAAA,IAAI;QACA,MAAM,QAAQ,GAAGA,aAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC/B,YAAA,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACtC;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC;KAChE;AACD,IAAA,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;AAIG;AACI,eAAe,cAAc,CAAC,MAAc,EAAE,OAAiB,EAAA;IAClE,MAAM,QAAQ,GAAGA,aAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACnD,IAAA,IAAI;AACA,QAAA,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KACxD;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAA,0BAAA,EAA6B,MAAM,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC;KAC9D;AACL,CAAC;AAED;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,QAAkB,EAAA;IAClD,IAAI,OAAO,GAAG,CAAA,uDAAA,CAAyD,CAAC;IACxE,IAAI,OAAO,GAAG,CAAA,CAAE,CAAC;IAEjB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;AAC5B,QAAA,MAAM,UAAU,GAAG,CAAA,MAAA,EAAS,KAAK,GAAG,CAAC,EAAE,CAAC;AACxC,QAAA,OAAO,IAAI,CAAU,OAAA,EAAA,UAAU,CAAU,OAAA,EAAA,GAAG,MAAM,CAAC;AACnD,QAAA,OAAO,IAAI,CAAA,EAAG,UAAU,CAAA,EAAA,CAAI,CAAC;AACjC,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,YAAY,GAAG,CAAA;;IAErB,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;;;;;;CAM9B,CAAC;AAEE,IAAA,OAAO,CAAG,EAAA,OAAO,CAAK,EAAA,EAAA,YAAY,EAAE,CAAC;AACzC,CAAC;AAED;;;;AAIG;AACa,SAAA,eAAe,CAAC,OAAe,EAAE,QAAkB,EAAA;AAC/D,IAAA,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,WAAW,GAAGA,aAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACnD,IAAA,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AACtD"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils/utils.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ const LOG_APPLICATION_ERROR_TYPE = '@platform/LOG_APPLICATION_ERROR';
2
+ const mapError = (error) => {
3
+ let action = {
4
+ type: error?.extensions?.actionName,
5
+ payload: error?.extensions?.payload,
6
+ };
7
+ if (!action?.type) {
8
+ action = {
9
+ type: LOG_APPLICATION_ERROR_TYPE,
10
+ payload: {
11
+ payload: error,
12
+ },
13
+ };
14
+ }
15
+ return action;
16
+ };
17
+ const catchGraphQLNetworkErrors = (errors) => {
18
+ let graphQLErrors = [];
19
+ let networkErrors = [];
20
+ errors.forEach((error) => {
21
+ if (error?.graphQLErrors?.length) {
22
+ const mappedGraphqlErrors = error.graphQLErrors.map((error) => {
23
+ return mapError(error);
24
+ });
25
+ graphQLErrors = graphQLErrors.concat(mappedGraphqlErrors);
26
+ }
27
+ if (error?.networkError) {
28
+ const serverErrors = error?.networkError?.result?.errors || [error?.networkError];
29
+ if (serverErrors?.length) {
30
+ const mappedNetworkErrors = networkErrors.map((error) => {
31
+ return mapError(error);
32
+ });
33
+ networkErrors = networkErrors.concat(mappedNetworkErrors);
34
+ }
35
+ else {
36
+ networkErrors = networkErrors.concat([mapError(error.networkError)]);
37
+ }
38
+ }
39
+ });
40
+ return [...graphQLErrors, ...networkErrors];
41
+ };
42
+ const getBulkRequestErrors = async (requests) => {
43
+ const result = await Promise.allSettled(requests);
44
+ const rejectedPromises = result.filter((item) => item.status === 'rejected');
45
+ return catchGraphQLNetworkErrors(rejectedPromises.map((item) => item.reason));
46
+ };
47
+ /**
48
+ * Encapsulates the loader/action callback to execute them and then catch the error to validate
49
+ * if its an actual error that we need to send to ErrorBoundary or its a redirect response.
50
+ * Checks if the error contain graphql or network error with properties then throw
51
+ * a json response with status code 500 to show internal error. The error would contain extra
52
+ * properties sent from graphql server
53
+ *
54
+ * @param cb
55
+ * @param args
56
+ * @returns
57
+ */
58
+ const withErrorHandler = async (cb, ...args) => {
59
+ let result = null;
60
+ try {
61
+ result = await cb(...args);
62
+ }
63
+ catch (error) {
64
+ throw error;
65
+ }
66
+ let errors = [];
67
+ let promises = [];
68
+ if (result?.data) {
69
+ if (Array.isArray(result?.data)) {
70
+ if (result?.data?.length) {
71
+ promises = result?.data;
72
+ }
73
+ }
74
+ else {
75
+ //default server loader case
76
+ const keys = Object.keys(result?.data);
77
+ if (keys?.length) {
78
+ keys.forEach((key) => {
79
+ if (result.data[key] instanceof Promise) {
80
+ promises = promises.concat(result.data[key]);
81
+ }
82
+ });
83
+ }
84
+ }
85
+ }
86
+ errors = await getBulkRequestErrors(promises);
87
+ if (result?.data) {
88
+ return { ...result, errors };
89
+ }
90
+ return result;
91
+ };export{withErrorHandler};//# sourceMappingURL=withErrorHandleUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withErrorHandleUtil.js","sources":["../../src/utils/withErrorHandleUtil.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function writeIconsSwitch(names: string[], svgPaths: string[]): void;
2
+ export declare function getPackageName(filePath: any): any;
3
+ export declare function copySVGFiles(svgPaths: string[]): void;
@@ -0,0 +1,83 @@
1
+ import*as fs from'fs';import*as path from'path';import {getRootPath}from'./wrapperComponent.js';import {findPackageDir}from'../utils/utils.js';function writeIconsSwitch(names, svgPaths) {
2
+ copySVGFiles(svgPaths);
3
+ let content = `
4
+ function __variableDynamicIcon(icon) {
5
+ switch (icon) {
6
+ `;
7
+ names.forEach((name) => {
8
+ const group = name.slice(0, 2).toLocaleLowerCase();
9
+ content += `
10
+ case '${name}':
11
+ return import('@react-icons/all-files/${group}/${name}.js');
12
+ `;
13
+ });
14
+ svgPaths.forEach((svgPath) => {
15
+ const svgFileName = path.basename(svgPath);
16
+ content += `
17
+ case '${svgPath}':
18
+ return import('@app/icons/${svgFileName}');
19
+ `;
20
+ });
21
+ content += `
22
+ default:
23
+ console.warn('Sorry, the icon named "', icon, '" could not be found in "@react-icon/all-files". Please check again.');
24
+ return import('@react-icons/all-files/bi/BiError.js');
25
+ }
26
+ }
27
+ export default function(icon) {
28
+ return __variableDynamicIcon(icon);
29
+ }
30
+ `;
31
+ const rootPath = process.cwd();
32
+ const fileName = `selectiveIcons.js`;
33
+ const newFilePath = path.join(rootPath, 'app', fileName);
34
+ // Ensure the directory exists
35
+ if (!fs.existsSync(path.dirname(newFilePath))) {
36
+ fs.mkdirSync(path.dirname(newFilePath), { recursive: true });
37
+ }
38
+ fs.writeFileSync(newFilePath, content, 'utf8');
39
+ }
40
+ function getPackageName(filePath) {
41
+ const match = filePath.match(/^(@[^/]+\/[^/]+)/);
42
+ return match ? match[1] : null;
43
+ }
44
+ function copySVGFiles(svgPaths) {
45
+ if (svgPaths.length == 0)
46
+ return;
47
+ const destDir = path.join(getRootPath(), 'app', 'icons');
48
+ if (!fs.existsSync(destDir)) {
49
+ fs.mkdirSync(destDir, { recursive: true });
50
+ }
51
+ const currentDir = getRootPath();
52
+ const packageJsonPath = path.join(currentDir, 'package.json');
53
+ if (!fs.existsSync(packageJsonPath)) {
54
+ throw new Error(`No package.json found in path ${currentDir}`);
55
+ }
56
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
57
+ const dependencies = packageJson.dependencies;
58
+ svgPaths.forEach((svgFile) => {
59
+ const packageName = getPackageName(svgFile);
60
+ if (packageName) {
61
+ const packageDir = findPackageDir(getRootPath(), packageName);
62
+ if (packageDir) {
63
+ let srcFile = path.join(packageDir, svgFile.replace(packageName + '/', ''));
64
+ if (!fs.existsSync(srcFile)) {
65
+ let dependencyPath = dependencies[packageName];
66
+ if (dependencyPath) {
67
+ dependencyPath = dependencyPath.replace('link:', '');
68
+ srcFile = path.resolve(currentDir, dependencyPath, svgFile.replace(packageName + '/', ''));
69
+ }
70
+ }
71
+ if (!fs.existsSync(srcFile)) {
72
+ console.warn(`Not found svg file from ${svgFile}.`);
73
+ }
74
+ else {
75
+ const svgFileName = path.basename(svgFile);
76
+ const destFile = path.resolve(destDir, svgFileName);
77
+ fs.copyFileSync(srcFile, destFile);
78
+ console.log(`SVG file copied from ${srcFile} to ${destFile}.`);
79
+ }
80
+ }
81
+ }
82
+ });
83
+ }export{copySVGFiles,getPackageName,writeIconsSwitch};//# sourceMappingURL=icon-switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-switch.js","sources":["../../src/vite-wrappers/icon-switch.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import {getSortedRoutes}from'@common-stack/client-react/lib/route/get-routes.js';import fs__default from'fs';import globAll from'glob-all';import {mergeWith,isArray}from'lodash-es';import {createHash}from'node:crypto';import {getRootPath,writeIconsSwitch,wrapRouteComponent}from'./wrapperComponent.js';import {writeDialogsSwitch,dialogWrapperUtility}from'./dialog-wrapper.js';const getHash = (source, maxLength = 8) => {
1
+ import {getSortedRoutes}from'@common-stack/client-react/lib/route/get-routes.js';import fs__default from'fs';import globAll from'glob-all';import {mergeWith,isArray}from'lodash-es';import {createHash}from'node:crypto';import {getRootPath,wrapRouteComponent}from'./wrapperComponent.js';import {writeDialogsSwitch,dialogWrapperUtility}from'./dialog-wrapper.js';import {writeIconsSwitch}from'./icon-switch.js';const getHash = (source, maxLength = 8) => {
2
2
  const hash = createHash('sha256').update(source).digest('hex');
3
3
  return typeof maxLength === 'number' ? hash.slice(0, maxLength) : hash;
4
4
  };
@@ -36,18 +36,26 @@ function loadRoutesConfig(options) {
36
36
  return result;
37
37
  }
38
38
  let dialogPaths = [];
39
- let icons = [];
39
+ let iconNames = [];
40
+ let iconSvgPaths = [];
40
41
  function defineRoute(routeFn, jsonRoute, { metaJson, settings, paths }) {
41
- const { routes = null, relativePath: path, componentPath, clientOnly, dialogPath, isResourceRoute, auth = 'optional', hasLoader = false, hasAction = false, hasClientLoader = false, hasClientAction = false, hasComponent = false, hasErrorBoundary = false, hasLinks = false, hasMeta = false, hasHydrateFallback = false, hasShouldRevalidate = false, hasHandle = false, hasHeaders = false, wrapperPaths = [], middlewares = [], authority = [], extraPermissions = [], extraProps = {}, loaderReturnInfo = {}, queries = {}, clientMiddlewares = [], configurations = [], resourceUri, icon, ...rest } = jsonRoute;
42
+ const { routes = null, relativePath: path, componentPath, clientOnly, dialogPath, isResourceRoute, auth = 'optional', hasLoader = false, hasAction = false, hasClientLoader = false, hasClientAction = false, hasComponent = false, hasErrorBoundary = false, hasLinks = false, hasMeta = false, hasHydrateFallback = false, hasShouldRevalidate = false, queryParamsGenerator = false, hasHandle = false, hasHeaders = false, wrapperPaths = [], middlewares = [], authority = [], extraPermissions = [], extraProps = {}, loaderReturnInfo = {}, queries = {}, clientMiddlewares = [], configurations = [], resourceUri, icon, ...rest } = jsonRoute;
42
43
  if (icon) {
43
- if (typeof icon === 'object' && typeof icon.name === 'string') {
44
- icons.push(icon.name);
44
+ if (typeof icon === 'object') {
45
+ if (typeof icon.svgPath === 'string') {
46
+ if (!iconSvgPaths.includes(icon.svgPath)) {
47
+ iconSvgPaths.push(icon.svgPath);
48
+ }
49
+ }
50
+ else if (typeof icon.name === 'string' && !iconNames.includes(icon.name)) {
51
+ iconNames.push(icon.name);
52
+ }
45
53
  }
46
- else if (typeof icon === 'string') {
47
- icons.push(icon);
54
+ else if (typeof icon === 'string' && !iconNames.includes(icon)) {
55
+ iconNames.push(icon);
48
56
  }
49
57
  }
50
- if (dialogPath) {
58
+ if (dialogPath && !dialogPaths.includes(dialogPath)) {
51
59
  dialogWrapperUtility(dialogPath, { path: rest.path });
52
60
  dialogPaths.push(dialogPath);
53
61
  }
@@ -78,6 +86,7 @@ function defineRoute(routeFn, jsonRoute, { metaJson, settings, paths }) {
78
86
  hasHandle: settings.disableHandle !== true && hasHandle,
79
87
  hasHeaders: settings.disableHeaders !== true && hasHeaders,
80
88
  hasClientAction: settings.disableClientAction !== true && hasClientAction,
89
+ queryParamsGenerator,
81
90
  loaderReturnInfo,
82
91
  suffix: getHash(rest.path || '/'),
83
92
  middlewares,
@@ -108,10 +117,11 @@ function defineRoutesConfig(routeFn, options, metaJson = null) {
108
117
  const settings = options.settings || {};
109
118
  const paths = options.paths || {};
110
119
  dialogPaths = [];
111
- icons = [];
120
+ iconNames = [];
121
+ iconSvgPaths = [];
112
122
  jsonRoute.forEach((item) => {
113
123
  defineRoute(routeFn, item, { metaJson, settings, paths });
114
124
  });
115
125
  writeDialogsSwitch(dialogPaths);
116
- writeIconsSwitch(icons);
126
+ writeIconsSwitch(iconNames, iconSvgPaths);
117
127
  }export{defineRoutesConfig,loadRoutesConfig,resolvePathsUsingPackages};//# sourceMappingURL=json-wrappers.js.map