@common-stack/rollup-vite-utils 5.0.4-alpha.8 → 5.0.5-alpha.9
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/lib/constants/constants.cjs +4 -0
- package/lib/constants/constants.cjs.map +1 -0
- package/lib/constants/constants.d.ts +1 -0
- package/lib/constants/constants.js +2 -1
- package/lib/constants/constants.js.map +1 -1
- package/lib/default-config.json.cjs +31 -0
- package/lib/default-config.json.cjs.map +1 -0
- package/lib/index.cjs +1 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.js +1 -1
- package/lib/preStartup/configLoader/configLoader.cjs +27 -0
- package/lib/preStartup/configLoader/configLoader.cjs.map +1 -0
- package/lib/preStartup/configLoader/envLoader.cjs +10 -0
- package/lib/preStartup/configLoader/envLoader.cjs.map +1 -0
- package/lib/preStartup/configLoader/index.cjs +1 -0
- package/lib/preStartup/configLoader/index.cjs.map +1 -0
- package/lib/preStartup/copyIfVersionChanged.cjs +110 -0
- package/lib/preStartup/copyIfVersionChanged.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs +59 -0
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs +236 -0
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/handleIconSVGFiles.cjs +25 -0
- package/lib/rollup/modifyLibFiles/handleIconSVGFiles.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/handleWrappers.cjs +34 -0
- package/lib/rollup/modifyLibFiles/handleWrappers.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/utils.cjs +19 -0
- package/lib/rollup/modifyLibFiles/utils.cjs.map +1 -0
- package/lib/rollup/pluginIgnore.cjs +17 -0
- package/lib/rollup/pluginIgnore.cjs.map +1 -0
- package/lib/rollup/rollupPluginAddJsExtension.cjs +68 -0
- package/lib/rollup/rollupPluginAddJsExtension.cjs.map +1 -0
- package/lib/rollup/rollupPluginGenerateJson.cjs +39 -0
- package/lib/rollup/rollupPluginGenerateJson.cjs.map +1 -0
- package/lib/rollup/rollupPluginModifyLibFiles.cjs +50 -0
- package/lib/rollup/rollupPluginModifyLibFiles.cjs.map +1 -0
- package/lib/utils/setupConfig.cjs +65 -0
- package/lib/utils/setupConfig.cjs.map +1 -0
- package/lib/utils/utils.cjs +188 -0
- package/lib/utils/utils.cjs.map +1 -0
- package/lib/utils/utils.d.ts +12 -0
- package/lib/utils/utils.js +98 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils/withErrorHandleUtil.cjs +92 -0
- package/lib/utils/withErrorHandleUtil.cjs.map +1 -0
- package/lib/vite-plugins/i18n-internationalization-plugin.cjs +93 -0
- package/lib/vite-plugins/i18n-internationalization-plugin.cjs.map +1 -0
- package/lib/vite-plugins/vite-plugin-virutal-imports.cjs +27 -0
- package/lib/vite-plugins/vite-plugin-virutal-imports.cjs.map +1 -0
- package/lib/vite-wrappers/dialog-wrapper.cjs +53 -0
- package/lib/vite-wrappers/dialog-wrapper.cjs.map +1 -0
- package/lib/vite-wrappers/icon-switch.cjs +89 -0
- package/lib/vite-wrappers/icon-switch.cjs.map +1 -0
- package/lib/vite-wrappers/json-wrappers.cjs +132 -0
- package/lib/vite-wrappers/json-wrappers.cjs.map +1 -0
- package/lib/vite-wrappers/loaderGenerator.cjs +245 -0
- package/lib/vite-wrappers/loaderGenerator.cjs.map +1 -0
- package/lib/vite-wrappers/wrapperComponent.cjs +336 -0
- package/lib/vite-wrappers/wrapperComponent.cjs.map +1 -0
- package/package.json +4 -4
package/lib/utils/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import fs from'fs-extra';import path__default from'path';import {SYNC_META_JSON,MODULES_JS}from'../constants/constants.js';/**
|
|
1
|
+
import fs from'fs-extra';import path__default from'path';import {SYNC_META_JSON,MODULES_JS,MODULES_TS}from'../constants/constants.js';/**
|
|
2
2
|
* Get the version from the package.json file in the specified directory.
|
|
3
3
|
* @param packagePath - The path to the directory containing the package.json file.
|
|
4
4
|
* @returns The version string or null if an error occurs.
|
|
@@ -89,4 +89,100 @@ function findPackageDir(initialDir, packageName) {
|
|
|
89
89
|
}
|
|
90
90
|
console.error(`Package ${packageName} not found from ${initialDir} up to root.`);
|
|
91
91
|
return null;
|
|
92
|
-
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate the content for the modules.js file.
|
|
95
|
+
* @param config - The list of packages to include.
|
|
96
|
+
* @returns The generated content for modules.js.
|
|
97
|
+
*/
|
|
98
|
+
function generateBackendModulesFile(config) {
|
|
99
|
+
const packages = config.modules || [];
|
|
100
|
+
const devPackages = config.devModules || [];
|
|
101
|
+
const exPackages = config.externalModules || [];
|
|
102
|
+
let imports = `import { ContainerModule, interfaces } from 'inversify';
|
|
103
|
+
import { TaggedType } from '@common-stack/core';
|
|
104
|
+
import { Feature } from '@common-stack/server-core';
|
|
105
|
+
`;
|
|
106
|
+
let modules = ``;
|
|
107
|
+
let exModules = ``;
|
|
108
|
+
let devModules = ``;
|
|
109
|
+
packages.forEach((pkg, index) => {
|
|
110
|
+
const moduleName = `Module${index + 1}`;
|
|
111
|
+
imports += `import ${moduleName} from '${pkg}';\n`;
|
|
112
|
+
modules += `${moduleName}, `;
|
|
113
|
+
});
|
|
114
|
+
exPackages.forEach((pkg, index) => {
|
|
115
|
+
const moduleName = `ExModule${index + 1}`;
|
|
116
|
+
imports += `import ${moduleName} from '${pkg}';\n`;
|
|
117
|
+
exModules += `${moduleName}, `;
|
|
118
|
+
});
|
|
119
|
+
let featureSetup = `import { EnvironmentService } from '@adminide-stack/platform-server';
|
|
120
|
+
import { IAdminIdeSettings } from '@adminide-stack/core';
|
|
121
|
+
import { config } from '../config';
|
|
122
|
+
const environmentService = new EnvironmentService(null, null);
|
|
123
|
+
|
|
124
|
+
export const settings: IAdminIdeSettings & any = {
|
|
125
|
+
subTopic: config.CONNECTION_ID,
|
|
126
|
+
brigadeNamespace: 'brigade',
|
|
127
|
+
brigadeVersion: 'v1',
|
|
128
|
+
environmentService,
|
|
129
|
+
environment: {
|
|
130
|
+
args: ['--builtin-extensions-dir', '', '--disable-extensions', ''],
|
|
131
|
+
},
|
|
132
|
+
adminApiNamespace: config.ADMIN_API_NAMESPACE,
|
|
133
|
+
apiNamespace: config.API_NAMESPACE,
|
|
134
|
+
sshNamespace: config.API_NAMESPACE,
|
|
135
|
+
apiVersion: 'v1',
|
|
136
|
+
activityNamespace: config.ACTIVITY_NAMESPACE,
|
|
137
|
+
activityVersion: '',
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
const defaultModule = () =>
|
|
141
|
+
new ContainerModule((bind: interfaces.Bind) => {
|
|
142
|
+
bind('Settings').toConstantValue(settings).whenTargetTagged('default', true);
|
|
143
|
+
bind('Settings').toConstantValue(settings).whenTargetTagged('microservice', true);
|
|
144
|
+
bind('Settings').toConstantValue(settings).whenTargetTagged(TaggedType.MICROSERVICE, true);
|
|
145
|
+
bind('IMongoDBSettings').toConstantValue(settings);
|
|
146
|
+
bind('IMongoDBSettings').toConstantValue(settings);
|
|
147
|
+
bind('MongoOptions').toConstantValue({});
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
const DefaultFeature = new Feature({
|
|
151
|
+
createContainerFunc: [defaultModule],
|
|
152
|
+
createHemeraContainerFunc: [defaultModule],
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
export const ExternalModules = new Feature(${exModules.trim().slice(0, -1)});
|
|
156
|
+
|
|
157
|
+
let DevModules = new Feature({});
|
|
158
|
+
|
|
159
|
+
if (config.isDev) {
|
|
160
|
+
`;
|
|
161
|
+
devPackages.forEach((pkg, index) => {
|
|
162
|
+
const moduleName = `DevModule${index + 1}`;
|
|
163
|
+
featureSetup += `const ${moduleName} = require('${pkg}');\n`;
|
|
164
|
+
devModules += `${moduleName}.default, `;
|
|
165
|
+
});
|
|
166
|
+
featureSetup += `DevModules = new Feature(${devModules.trim().slice(0, -1)});
|
|
167
|
+
}\n
|
|
168
|
+
const features = new Feature(
|
|
169
|
+
DefaultFeature,
|
|
170
|
+
${modules.trim()}
|
|
171
|
+
ExternalModules, DevModules
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
export default features;
|
|
175
|
+
`;
|
|
176
|
+
return `${imports}\n${featureSetup}`;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Write the generated content to the modules.js file.
|
|
180
|
+
* @param destDir - The destination directory.
|
|
181
|
+
* @param packages - The list of packages to include.
|
|
182
|
+
*/
|
|
183
|
+
function writeBackendModuleFile(destDir, config) {
|
|
184
|
+
const modulesFileContent = generateBackendModulesFile(config);
|
|
185
|
+
const newFilePath = path__default.join(destDir, MODULES_TS);
|
|
186
|
+
fs.writeFileSync(newFilePath, modulesFileContent, { encoding: 'utf8', flag: 'w' });
|
|
187
|
+
console.log(`Updated ${newFilePath} based on config.json.`);
|
|
188
|
+
}export{findPackageDir,generateBackendModulesFile,generateModulesFile,getMetadata,getPackageVersion,updateMetadata,writeBackendModuleFile,writeModuleFile};//# sourceMappingURL=utils.js.map
|
package/lib/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/utils/utils.ts"],"sourcesContent":[null],"names":["path"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/utils/utils.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict';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 resultantErrors = error?.networkError?.result?.errors || [error?.networkError];
|
|
29
|
+
const mappedNetworkErrors = resultantErrors.map((error) => {
|
|
30
|
+
return mapError(error);
|
|
31
|
+
});
|
|
32
|
+
networkErrors = networkErrors.concat(mappedNetworkErrors);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return [...graphQLErrors, ...networkErrors];
|
|
36
|
+
};
|
|
37
|
+
const getBulkRequestErrors = async (requests) => {
|
|
38
|
+
const result = await Promise.allSettled(requests);
|
|
39
|
+
const rejectedPromises = result.filter((item) => item.status === 'rejected');
|
|
40
|
+
return catchGraphQLNetworkErrors(rejectedPromises.map((item) => item.reason));
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Encapsulates the loader/action callback to execute them and then catch the error to validate
|
|
44
|
+
* if its an actual error that we need to send to ErrorBoundary or its a redirect response.
|
|
45
|
+
* Checks if the error contain graphql or network error with properties then throw
|
|
46
|
+
* a json response with status code 500 to show internal error. The error would contain extra
|
|
47
|
+
* properties sent from graphql server
|
|
48
|
+
*
|
|
49
|
+
* @param cb
|
|
50
|
+
* @param args
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
const withErrorHandler = async (cb, ...args) => {
|
|
54
|
+
let result = null;
|
|
55
|
+
try {
|
|
56
|
+
result = await cb(...args);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
let errors = [];
|
|
62
|
+
let promises = [];
|
|
63
|
+
if (result?.data) {
|
|
64
|
+
if (Array.isArray(result?.data)) {
|
|
65
|
+
if (result?.data?.length) {
|
|
66
|
+
promises = result?.data;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
//default server loader case
|
|
71
|
+
const keys = Object.keys(result?.data);
|
|
72
|
+
if (keys?.length) {
|
|
73
|
+
keys.forEach((key) => {
|
|
74
|
+
if (result.data[key] instanceof Promise) {
|
|
75
|
+
promises = promises.concat(result.data[key]);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
errors = await getBulkRequestErrors(promises);
|
|
82
|
+
if (result?.data) {
|
|
83
|
+
// deep cloning of a promise would require creating a new promise
|
|
84
|
+
// since in above implementation the promise would already have been executed
|
|
85
|
+
// so the result would contain the rejected/fulfilled promise as we need to
|
|
86
|
+
// return the orignal result with promise being in pending state
|
|
87
|
+
// so we reexecute the callback and sent back the unmodified results so that loader can execute.
|
|
88
|
+
const orignalResult = await cb(...args);
|
|
89
|
+
return { ...orignalResult, errors };
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
};exports.withErrorHandler=withErrorHandler;//# sourceMappingURL=withErrorHandleUtil.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withErrorHandleUtil.cjs","sources":["../../src/utils/withErrorHandleUtil.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';var path=require('path'),fs=require('node:fs'),globAll=require('glob-all'),dotProp=require('dot-prop'),tsDeepmerge=require('ts-deepmerge');/* eslint-disable guard-for-in */
|
|
2
|
+
function enumerateLangs(dir) {
|
|
3
|
+
return fs.readdirSync(dir).filter((file) => fs.statSync(path.join(dir, file)).isDirectory());
|
|
4
|
+
}
|
|
5
|
+
function findAll(globs, cwd) {
|
|
6
|
+
const globArray = Array.isArray(globs) ? globs : [globs];
|
|
7
|
+
return globAll.sync(globArray, { cwd, realpath: true });
|
|
8
|
+
}
|
|
9
|
+
function assertExistence(paths) {
|
|
10
|
+
for (const dir of paths) {
|
|
11
|
+
if (!fs.existsSync(dir)) {
|
|
12
|
+
throw new Error(`Directory does not exist: ${dir}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function loadAndParse(langFile) {
|
|
17
|
+
const fileContent = String(fs.readFileSync(langFile));
|
|
18
|
+
const parsedContent = JSON.parse(fileContent);
|
|
19
|
+
return parsedContent;
|
|
20
|
+
}
|
|
21
|
+
function getRootPath() {
|
|
22
|
+
const currDir = process.cwd();
|
|
23
|
+
return path.resolve(currDir, '../../');
|
|
24
|
+
}
|
|
25
|
+
function resolvePathsUsingPackages(packages, folderName) {
|
|
26
|
+
const basePath = getRootPath();
|
|
27
|
+
const folders = globAll.sync(packages.map((item) => `${basePath}/node_modules/${item}`));
|
|
28
|
+
const localesDirs = folders.reduce((acc, curr) => {
|
|
29
|
+
const dir = `${curr}/lib/${folderName}`;
|
|
30
|
+
if (fs.existsSync(dir)) {
|
|
31
|
+
return [...acc, dir];
|
|
32
|
+
}
|
|
33
|
+
return acc;
|
|
34
|
+
}, []);
|
|
35
|
+
return localesDirs;
|
|
36
|
+
}
|
|
37
|
+
const formatAndCreateDirectories = (appResBundle) => {
|
|
38
|
+
const result = [];
|
|
39
|
+
for (const locale in appResBundle) {
|
|
40
|
+
const namespaces = appResBundle[locale];
|
|
41
|
+
for (const namespace in namespaces) {
|
|
42
|
+
result.push({
|
|
43
|
+
locale,
|
|
44
|
+
namespace,
|
|
45
|
+
content: namespaces[namespace],
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
for (const item of result) {
|
|
50
|
+
const { locale, namespace, content } = item;
|
|
51
|
+
const appDir = `${process.cwd()}/public/cdm-locales`;
|
|
52
|
+
const outputDir = path.join(appDir, locale);
|
|
53
|
+
const outputFile = path.join(outputDir, `${namespace}.json`);
|
|
54
|
+
if (!fs.existsSync(outputFile)) {
|
|
55
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
56
|
+
}
|
|
57
|
+
fs.writeFileSync(outputFile, JSON.stringify(content, null, 2));
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function i18nInternationalizationPlugin(options) {
|
|
61
|
+
return {
|
|
62
|
+
name: 'vite:i18n-intenationalization',
|
|
63
|
+
async buildStart() {
|
|
64
|
+
if (!options.packages.length) {
|
|
65
|
+
throw new Error('Packages not found');
|
|
66
|
+
}
|
|
67
|
+
const localesDirFolderName = options.folderName || 'locales';
|
|
68
|
+
const localeDirs = resolvePathsUsingPackages(options.packages, localesDirFolderName);
|
|
69
|
+
assertExistence(localeDirs);
|
|
70
|
+
let appResBundle = {};
|
|
71
|
+
for (const nextLocaleDir of localeDirs) {
|
|
72
|
+
const langs = enumerateLangs(nextLocaleDir);
|
|
73
|
+
for (const lang of langs) {
|
|
74
|
+
const resBundle = {};
|
|
75
|
+
resBundle[lang] = {};
|
|
76
|
+
const langDir = path.join(nextLocaleDir, lang);
|
|
77
|
+
const langFiles = findAll(['**/*.json'], langDir);
|
|
78
|
+
for (const langFile of langFiles) {
|
|
79
|
+
const content = await loadAndParse(langFile);
|
|
80
|
+
let namespaceFilepath = langFile;
|
|
81
|
+
namespaceFilepath = path.basename(langFile);
|
|
82
|
+
const extname = path.extname(langFile);
|
|
83
|
+
const namespaceParts = namespaceFilepath.replace(extname, '').split(path.sep);
|
|
84
|
+
const namespace = [lang].concat(namespaceParts).join('.');
|
|
85
|
+
dotProp.setProperty(resBundle, namespace, content);
|
|
86
|
+
appResBundle = tsDeepmerge.merge(appResBundle, resBundle);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
formatAndCreateDirectories(appResBundle);
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}exports.i18nInternationalizationPlugin=i18nInternationalizationPlugin;//# sourceMappingURL=i18n-internationalization-plugin.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-internationalization-plugin.cjs","sources":["../../src/vite-plugins/i18n-internationalization-plugin.ts"],"sourcesContent":[null],"names":["setProperty","merge"],"mappings":"wJAAA;AAOA,SAAS,cAAc,CAAC,GAAW,EAAA;AAC/B,IAAA,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,OAAO,CAAC,KAAwB,EAAE,GAAW,EAAA;AAClD,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAa,CAAC;AACxE,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAA;AACpC,IAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAA,CAAE,CAAC,CAAC;SACvD;KACJ;AACL,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAA;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9C,IAAA,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,GAAA;AAChB,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAkB,EAAE,UAAkB,EAAA;AACrE,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAG,EAAA,QAAQ,iBAAiB,IAAI,CAAA,CAAE,CAAC,CAAa,CAAC;IACrG,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAa,EAAE,IAAY,KAAI;AAC/D,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAQ,KAAA,EAAA,UAAU,EAAE,CAAC;AACxC,QAAA,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,CAAa,CAAC;SACpC;AACD,QAAA,OAAO,GAAG,CAAC;KACd,EAAE,EAAE,CAAC,CAAC;AACP,IAAA,OAAO,WAAW,CAAC;AACvB,CAAC;AAOD,MAAM,0BAA0B,GAAG,CAAC,YAAiC,KAAI;IACrE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAA,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;AAC/B,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC;gBACR,MAAM;gBACN,SAAS;AACT,gBAAA,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC;AACjC,aAAA,CAAC,CAAC;SACN;KACJ;AACD,IAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;QACvB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAG,EAAA,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAG,EAAA,SAAS,CAAO,KAAA,CAAA,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC5B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAChD;AACD,QAAA,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KAClE;AACL,CAAC,CAAC;AAEI,SAAU,8BAA8B,CAAC,OAAgB,EAAA;IAC3D,OAAO;AACH,QAAA,IAAI,EAAE,+BAA+B;AACrC,QAAA,MAAM,UAAU,GAAA;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,gBAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACzC;AACD,YAAA,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;YAC7D,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAErF,eAAe,CAAC,UAAU,CAAC,CAAC;YAE5B,IAAI,YAAY,GAAG,EAAE,CAAC;AAEtB,YAAA,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE;AACpC,gBAAA,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC5C,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACtB,MAAM,SAAS,GAAG,EAAyB,CAAC;AAC5C,oBAAA,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AAElD,oBAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAE9B,wBAAA,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;wBAC7C,IAAI,iBAAiB,GAAG,QAAQ,CAAC;AACjC,wBAAA,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,wBAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,wBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1D,wBAAAA,mBAAW,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC3C,wBAAA,YAAY,GAAGC,iBAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;qBACjD;iBACJ;aACJ;YACD,0BAA0B,CAAC,YAAY,CAAC,CAAC;SAC5C;KACJ,CAAC;AACN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';var path=require('path');function virtualImportsPlugin() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'virtual-imports',
|
|
4
|
+
resolveId(source) {
|
|
5
|
+
if (source.startsWith('virtual:')) {
|
|
6
|
+
return source; // treat it as resolved
|
|
7
|
+
}
|
|
8
|
+
return null; // other ids should be handled as usually
|
|
9
|
+
},
|
|
10
|
+
load(id) {
|
|
11
|
+
if (id.startsWith('virtual:')) {
|
|
12
|
+
const moduleName = id.slice('virtual:'.length);
|
|
13
|
+
switch (moduleName) {
|
|
14
|
+
case 'module': // Handle virtual:module
|
|
15
|
+
return `
|
|
16
|
+
import feature, { plugins } from '${path.resolve(__dirname, 'app/frontend-stack-react/modules.js')}';
|
|
17
|
+
export default feature;
|
|
18
|
+
export { plugins };
|
|
19
|
+
`;
|
|
20
|
+
default:
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null; // other ids should be handled as usually
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}exports.virtualImportsPlugin=virtualImportsPlugin;//# sourceMappingURL=vite-plugin-virutal-imports.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-virutal-imports.cjs","sources":["../../src/vite-plugins/vite-plugin-virutal-imports.ts"],"sourcesContent":[null],"names":["resolve"],"mappings":"+CAEgB,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,CAAC,MAAM,EAAA;AACd,YAAA,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBACjC,OAAO,MAAM,CAAC;aACf;YACD,OAAO,IAAI,CAAC;SACb;AACD,QAAA,IAAI,CAAC,EAAE,EAAA;AACL,YAAA,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC7B,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC/C,QAAQ,UAAU;oBAChB,KAAK,QAAQ;wBACX,OAAO,CAAA;AAC+B,gDAAA,EAAAA,YAAO,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;;;aAG9F,CAAC;AACJ,oBAAA;AACE,wBAAA,OAAO,IAAI,CAAC;iBACf;aACF;YACD,OAAO,IAAI,CAAC;SACb;KACF,CAAC;AACJ"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';var fs=require('fs'),path=require('path'),jsSha256=require('js-sha256');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var fs__namespace=/*#__PURE__*/_interopNamespaceDefault(fs);var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);const DIALOG_PATH = 'app/dialog';
|
|
2
|
+
function wrapComponent(currentFilePath) {
|
|
3
|
+
const imports = `import DialogComponent from '${currentFilePath}'`;
|
|
4
|
+
const componentLogic = `
|
|
5
|
+
export default function Component() {
|
|
6
|
+
return <DialogComponent />;
|
|
7
|
+
} `;
|
|
8
|
+
return imports + componentLogic;
|
|
9
|
+
}
|
|
10
|
+
function dialogWrapperUtility(file, options) {
|
|
11
|
+
const rootPath = process.cwd();
|
|
12
|
+
const basePath = path__namespace.join(rootPath, 'node-modules');
|
|
13
|
+
let fileName = path__namespace.basename(file, '.js');
|
|
14
|
+
fileName = `Wrapped${fileName}-${jsSha256.sha256(file).slice(0, 8)}.tsx`;
|
|
15
|
+
const dialogComponentDirectory = DIALOG_PATH;
|
|
16
|
+
if (!fs__namespace.existsSync(dialogComponentDirectory)) {
|
|
17
|
+
fs__namespace.mkdirSync(dialogComponentDirectory, { recursive: false });
|
|
18
|
+
}
|
|
19
|
+
const newFilePath = path__namespace.join(rootPath, dialogComponentDirectory, fileName);
|
|
20
|
+
const wrappedContent = wrapComponent(file);
|
|
21
|
+
fs__namespace.writeFileSync(newFilePath, wrappedContent, 'utf8');
|
|
22
|
+
return path__namespace.relative(basePath, newFilePath);
|
|
23
|
+
}
|
|
24
|
+
function writeDialogsSwitch(paths) {
|
|
25
|
+
let content = `
|
|
26
|
+
function __variableDynamicDialog(path) {
|
|
27
|
+
switch (path) {
|
|
28
|
+
`;
|
|
29
|
+
paths.forEach((path) => {
|
|
30
|
+
content += `
|
|
31
|
+
case '${path}':
|
|
32
|
+
return import('${path}');
|
|
33
|
+
`;
|
|
34
|
+
});
|
|
35
|
+
content += `
|
|
36
|
+
default:
|
|
37
|
+
throw new Error('Unknown variable dynamic import: ' + path);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export default function(dialog) {
|
|
41
|
+
return __variableDynamicDialog(dialog);
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
const rootPath = process.cwd();
|
|
45
|
+
const fileName = `WrappedDialogsSwitch.js`;
|
|
46
|
+
const dialogComponentDirectory = DIALOG_PATH;
|
|
47
|
+
const newFilePath = path__namespace.join(rootPath, dialogComponentDirectory, fileName);
|
|
48
|
+
// Ensure the directory exists
|
|
49
|
+
if (!fs__namespace.existsSync(path__namespace.dirname(newFilePath))) {
|
|
50
|
+
fs__namespace.mkdirSync(path__namespace.dirname(newFilePath), { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
fs__namespace.writeFileSync(newFilePath, content, 'utf8');
|
|
53
|
+
}exports.dialogWrapperUtility=dialogWrapperUtility;exports.writeDialogsSwitch=writeDialogsSwitch;//# sourceMappingURL=dialog-wrapper.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-wrapper.cjs","sources":["../../src/vite-wrappers/dialog-wrapper.ts"],"sourcesContent":[null],"names":["path","sha256","fs"],"mappings":"+eAKA,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,SAAS,aAAa,CAAC,eAAuB,EAAA;AAC1C,IAAA,MAAM,OAAO,GAAG,CAAgC,6BAAA,EAAA,eAAe,GAAG,CAAC;AACnE,IAAA,MAAM,cAAc,GAAG,CAAA;;;WAGhB,CAAC;IAER,OAAO,OAAO,GAAG,cAAc,CAAC;AACpC,CAAC;AAEe,SAAA,oBAAoB,CAChC,IAAY,EACZ,OAEC,EAAA;AAED,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAGA,eAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACrD,IAAI,QAAQ,GAAGA,eAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,IAAA,QAAQ,GAAG,CAAU,OAAA,EAAA,QAAQ,CAAI,CAAA,EAAAC,eAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,wBAAwB,GAAG,WAAW,CAAC;IAC7C,IAAI,CAACC,aAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;QAC1CA,aAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KAChE;AACD,IAAA,MAAM,WAAW,GAAGF,eAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAC5E,IAAA,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3CE,aAAE,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACtD,OAAOF,eAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,kBAAkB,CAAC,KAAe,EAAA;AAC9C,IAAA,IAAI,OAAO,GAAG,CAAA;;;CAGjB,CAAC;AACE,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACnB,QAAA,OAAO,IAAI,CAAA;YACP,IAAI,CAAA;uBACO,IAAI,CAAA;KACtB,CAAC;AACF,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,IAAI,CAAA;;;;;;;;CAQd,CAAC;AACE,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,CAAA,uBAAA,CAAyB,CAAC;IAC3C,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAC7C,IAAA,MAAM,WAAW,GAAGA,eAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;;AAE5E,IAAA,IAAI,CAACE,aAAE,CAAC,UAAU,CAACF,eAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE;AAC3C,QAAAE,aAAE,CAAC,SAAS,CAACF,eAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAChE;IAEDE,aAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACnD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';var fs=require('fs'),path=require('path'),wrapperComponent=require('./wrapperComponent.cjs'),utils=require('../utils/utils.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var fs__namespace=/*#__PURE__*/_interopNamespaceDefault(fs);var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);function writeIconsSwitch(names, svgPaths, files) {
|
|
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__namespace.basename(svgPath);
|
|
16
|
+
content += `
|
|
17
|
+
case '${svgPath}':
|
|
18
|
+
return import('@app/icons/${svgFileName}');
|
|
19
|
+
`;
|
|
20
|
+
});
|
|
21
|
+
files.forEach((file) => {
|
|
22
|
+
content += `
|
|
23
|
+
case '${file}':
|
|
24
|
+
return import('${file}');
|
|
25
|
+
`;
|
|
26
|
+
});
|
|
27
|
+
content += `
|
|
28
|
+
default:
|
|
29
|
+
console.warn('Sorry, the icon named "', icon, '" could not be found in "@react-icon/all-files" and "@app/icons". Please check again.');
|
|
30
|
+
return import('@react-icons/all-files/bi/BiError.js');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export default function(icon) {
|
|
34
|
+
return __variableDynamicIcon(icon);
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
const rootPath = process.cwd();
|
|
38
|
+
const fileName = `selectiveIcons.js`;
|
|
39
|
+
const newFilePath = path__namespace.join(rootPath, 'app', fileName);
|
|
40
|
+
// Ensure the directory exists
|
|
41
|
+
if (!fs__namespace.existsSync(path__namespace.dirname(newFilePath))) {
|
|
42
|
+
fs__namespace.mkdirSync(path__namespace.dirname(newFilePath), { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
fs__namespace.writeFileSync(newFilePath, content, 'utf8');
|
|
45
|
+
}
|
|
46
|
+
function getPackageName(filePath) {
|
|
47
|
+
const match = filePath.match(/^(@[^/]+\/[^/]+)/);
|
|
48
|
+
return match ? match[1] : null;
|
|
49
|
+
}
|
|
50
|
+
function copySVGFiles(svgPaths) {
|
|
51
|
+
if (svgPaths.length == 0)
|
|
52
|
+
return;
|
|
53
|
+
const destDir = path__namespace.join(wrapperComponent.getRootPath(), 'app', 'icons');
|
|
54
|
+
if (!fs__namespace.existsSync(destDir)) {
|
|
55
|
+
fs__namespace.mkdirSync(destDir, { recursive: true });
|
|
56
|
+
}
|
|
57
|
+
const currentDir = wrapperComponent.getRootPath();
|
|
58
|
+
const packageJsonPath = path__namespace.join(currentDir, 'package.json');
|
|
59
|
+
if (!fs__namespace.existsSync(packageJsonPath)) {
|
|
60
|
+
throw new Error(`No package.json found in path ${currentDir}`);
|
|
61
|
+
}
|
|
62
|
+
const packageJson = JSON.parse(fs__namespace.readFileSync(packageJsonPath, 'utf8'));
|
|
63
|
+
const dependencies = packageJson.dependencies;
|
|
64
|
+
svgPaths.forEach((svgFile) => {
|
|
65
|
+
const packageName = getPackageName(svgFile);
|
|
66
|
+
if (packageName) {
|
|
67
|
+
const packageDir = utils.findPackageDir(wrapperComponent.getRootPath(), packageName);
|
|
68
|
+
if (packageDir) {
|
|
69
|
+
let srcFile = path__namespace.join(packageDir, svgFile.replace(packageName + '/', ''));
|
|
70
|
+
if (!fs__namespace.existsSync(srcFile)) {
|
|
71
|
+
let dependencyPath = dependencies[packageName];
|
|
72
|
+
if (dependencyPath) {
|
|
73
|
+
dependencyPath = dependencyPath.replace('link:', '');
|
|
74
|
+
srcFile = path__namespace.resolve(currentDir, dependencyPath, svgFile.replace(packageName + '/', ''));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!fs__namespace.existsSync(srcFile)) {
|
|
78
|
+
console.warn(`Not found svg file from ${svgFile}.`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const svgFileName = path__namespace.basename(svgFile);
|
|
82
|
+
const destFile = path__namespace.resolve(destDir, svgFileName);
|
|
83
|
+
fs__namespace.copyFileSync(srcFile, destFile);
|
|
84
|
+
console.log(`SVG file copied from ${srcFile} to ${destFile}.`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}exports.copySVGFiles=copySVGFiles;exports.getPackageName=getPackageName;exports.writeIconsSwitch=writeIconsSwitch;//# sourceMappingURL=icon-switch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-switch.cjs","sources":["../../src/vite-wrappers/icon-switch.ts"],"sourcesContent":[null],"names":["path","fs","getRootPath","findPackageDir"],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
'use strict';var getRoutes_js=require('@common-stack/client-react/lib/route/get-routes.js'),fs=require('fs'),globAll=require('glob-all'),lodashEs=require('lodash-es'),node_crypto=require('node:crypto'),wrapperComponent=require('./wrapperComponent.cjs'),dialogWrapper=require('./dialog-wrapper.cjs'),iconSwitch=require('./icon-switch.cjs');const getHash = (source, maxLength = 8) => {
|
|
2
|
+
const hash = node_crypto.createHash('sha256').update(source).digest('hex');
|
|
3
|
+
return typeof maxLength === 'number' ? hash.slice(0, maxLength) : hash;
|
|
4
|
+
};
|
|
5
|
+
function resolvePathsUsingPackages(packages, fileName, rootPath) {
|
|
6
|
+
const basePath = rootPath || wrapperComponent.getRootPath();
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
8
|
+
const folders = globAll.sync(packages.map((item) => `${basePath}/node_modules/${item}`));
|
|
9
|
+
const localesDirs = folders.reduce((acc, curr) => {
|
|
10
|
+
const dir = `${curr}/lib/${fileName}`;
|
|
11
|
+
if (fs.existsSync(dir)) {
|
|
12
|
+
return [...acc, dir];
|
|
13
|
+
}
|
|
14
|
+
return acc;
|
|
15
|
+
}, []);
|
|
16
|
+
return localesDirs;
|
|
17
|
+
}
|
|
18
|
+
function customizer(objValue, srcValue) {
|
|
19
|
+
if (lodashEs.isArray(objValue)) {
|
|
20
|
+
return objValue.concat(srcValue);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function loadRoutesConfig(options) {
|
|
24
|
+
const fileName = options.routesFileName || 'route.json';
|
|
25
|
+
const directories = resolvePathsUsingPackages(options.packages, fileName, options.rootPath);
|
|
26
|
+
let content = [];
|
|
27
|
+
directories.forEach((dir) => {
|
|
28
|
+
const fileContent = String(fs.readFileSync(dir));
|
|
29
|
+
const parsedContent = JSON.parse(fileContent);
|
|
30
|
+
const mergedContent = lodashEs.mergeWith(content, parsedContent, customizer);
|
|
31
|
+
if (mergedContent) {
|
|
32
|
+
content = mergedContent;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const result = content.length ? getRoutes_js.getSortedRoutes('/', Object.assign({}, ...content)) : null;
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
let dialogPaths = [];
|
|
39
|
+
let iconNames = [];
|
|
40
|
+
let iconSvgPaths = [];
|
|
41
|
+
let iconFiles = [];
|
|
42
|
+
const addIconName = (icon) => !iconNames.includes(icon) ? iconNames.push(icon) : null;
|
|
43
|
+
const addIconSvgPath = (icon) => !iconSvgPaths.includes(icon) ? iconSvgPaths.push(icon) : null;
|
|
44
|
+
const addIconFile = (icon) => !iconFiles.includes(icon) ? iconFiles.push(icon) : null;
|
|
45
|
+
function defineRoute(routeFn, jsonRoute, { metaJson, settings, paths }) {
|
|
46
|
+
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;
|
|
47
|
+
if (icon) {
|
|
48
|
+
if (typeof icon === 'object') {
|
|
49
|
+
if (typeof icon.svgPath === 'string') {
|
|
50
|
+
addIconSvgPath(icon.svgPath);
|
|
51
|
+
}
|
|
52
|
+
else if (typeof icon.svgJsPath === 'string') {
|
|
53
|
+
addIconFile(icon.svgJsPath);
|
|
54
|
+
}
|
|
55
|
+
else if (typeof icon.name === 'string') {
|
|
56
|
+
addIconName(icon.name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (typeof icon === 'string') {
|
|
60
|
+
addIconName(icon);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (dialogPath && !dialogPaths.includes(dialogPath)) {
|
|
64
|
+
dialogWrapper.dialogWrapperUtility(dialogPath, { path: rest.path });
|
|
65
|
+
dialogPaths.push(dialogPath);
|
|
66
|
+
}
|
|
67
|
+
else if (componentPath) {
|
|
68
|
+
if (clientOnly) {
|
|
69
|
+
wrapperPaths.push('$clientOnlyWrapper'); // Add a placeholder for the client-only wrapper
|
|
70
|
+
}
|
|
71
|
+
if (authority.length > 0) {
|
|
72
|
+
wrapperPaths.push('$permissionWrapper'); // Add a placeholder for the permission wrapper at last
|
|
73
|
+
}
|
|
74
|
+
if (configurations.length > 0 && resourceUri) {
|
|
75
|
+
wrapperPaths.push('$configurationWrapper'); // Add a placeholder for the permission wrapper at last
|
|
76
|
+
}
|
|
77
|
+
const requireAuth = !!auth;
|
|
78
|
+
const options = {
|
|
79
|
+
authStrategy: requireAuth ? auth : null,
|
|
80
|
+
requireAuth,
|
|
81
|
+
isResourceRoute,
|
|
82
|
+
hasLoader: settings.disableLoader !== true && hasLoader,
|
|
83
|
+
hasAction: settings.disableAction !== true && hasAction,
|
|
84
|
+
hasClientLoader: settings.disableClientLoader !== true && hasClientLoader,
|
|
85
|
+
hasComponent,
|
|
86
|
+
hasErrorBoundary: settings.disableErrorBoundary !== true && hasErrorBoundary,
|
|
87
|
+
hasLinks: settings.disableLinks !== true && hasLinks,
|
|
88
|
+
hasMeta: settings.disableMeta !== true && hasMeta,
|
|
89
|
+
hasHydrateFallback: settings.disableHydrateFallback !== true && hasHydrateFallback,
|
|
90
|
+
hasShouldRevalidate: settings.disableShouldRevalidate !== true && hasShouldRevalidate,
|
|
91
|
+
hasHandle: settings.disableHandle !== true && hasHandle,
|
|
92
|
+
hasHeaders: settings.disableHeaders !== true && hasHeaders,
|
|
93
|
+
hasClientAction: settings.disableClientAction !== true && hasClientAction,
|
|
94
|
+
queryParamsGenerator,
|
|
95
|
+
loaderReturnInfo,
|
|
96
|
+
suffix: getHash(rest.path || '/'),
|
|
97
|
+
middlewares,
|
|
98
|
+
authority,
|
|
99
|
+
extraPermissions,
|
|
100
|
+
extraProps: settings.disableExtraProps !== true ? extraProps : {},
|
|
101
|
+
queries,
|
|
102
|
+
clientMiddlewares: settings.disableClientMiddlewares !== true ? clientMiddlewares : [],
|
|
103
|
+
resourceUri,
|
|
104
|
+
configurations,
|
|
105
|
+
settings,
|
|
106
|
+
paths,
|
|
107
|
+
};
|
|
108
|
+
const file = wrapperComponent.wrapRouteComponent(componentPath, wrapperPaths, metaJson, options);
|
|
109
|
+
const opts = { ...rest, id: rest.path };
|
|
110
|
+
if (routes) {
|
|
111
|
+
routeFn(path, file, opts, () => {
|
|
112
|
+
routes.forEach((c) => defineRoute(routeFn, c, { metaJson, settings, paths }));
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
routeFn(path, file, opts);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function defineRoutesConfig(routeFn, options, metaJson = null) {
|
|
121
|
+
const jsonRoute = loadRoutesConfig(options);
|
|
122
|
+
const settings = options.settings || {};
|
|
123
|
+
const paths = options.paths || {};
|
|
124
|
+
dialogPaths = [];
|
|
125
|
+
iconNames = [];
|
|
126
|
+
iconSvgPaths = [];
|
|
127
|
+
jsonRoute.forEach((item) => {
|
|
128
|
+
defineRoute(routeFn, item, { metaJson, settings, paths });
|
|
129
|
+
});
|
|
130
|
+
dialogWrapper.writeDialogsSwitch(dialogPaths);
|
|
131
|
+
iconSwitch.writeIconsSwitch(iconNames, iconSvgPaths, iconFiles);
|
|
132
|
+
}exports.defineRoutesConfig=defineRoutesConfig;exports.loadRoutesConfig=loadRoutesConfig;exports.resolvePathsUsingPackages=resolvePathsUsingPackages;//# sourceMappingURL=json-wrappers.cjs.map
|