@common-stack/rollup-vite-utils 6.0.6-alpha.0 → 6.0.6-alpha.104
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/config-schema.cjs +111 -0
- package/lib/config-schema.cjs.map +1 -0
- package/lib/config-schema.js +111 -0
- package/lib/config-schema.js.map +1 -0
- package/lib/constants/constants.cjs +2 -1
- package/lib/constants/constants.cjs.map +1 -1
- 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 +42 -4
- package/lib/default-config.json.cjs.map +1 -1
- package/lib/default-config.json.js +42 -4
- package/lib/default-config.json.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -1
- package/lib/interfaces/rollup.d.ts +1 -0
- package/lib/preStartup/configLoader/configLoader.cjs +38 -6
- package/lib/preStartup/configLoader/configLoader.cjs.map +1 -1
- package/lib/preStartup/configLoader/configLoader.d.ts +3 -3
- package/lib/preStartup/configLoader/configLoader.js +38 -6
- package/lib/preStartup/configLoader/configLoader.js.map +1 -1
- package/lib/preStartup/configLoader/index.cjs +1 -1
- package/lib/preStartup/configLoader/index.cjs.map +1 -1
- package/lib/preStartup/configLoader/index.js +1 -1
- package/lib/preStartup/configLoader/index.js.map +1 -1
- package/lib/preStartup/copyIfVersionChanged.cjs +8 -2
- package/lib/preStartup/copyIfVersionChanged.cjs.map +1 -1
- package/lib/preStartup/copyIfVersionChanged.js +8 -2
- package/lib/preStartup/copyIfVersionChanged.js.map +1 -1
- package/lib/rollup/index.d.ts +1 -0
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs +39 -10
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs.map +1 -1
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js +39 -10
- package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js.map +1 -1
- package/lib/rollup/modifyLibFiles/fixtures/compute1/TestComponent.d.ts +6 -0
- package/lib/rollup/modifyLibFiles/fixtures/compute1/TestDeferComponent.d.ts +10 -0
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs +214 -141
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs.map +1 -1
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.d.ts +21 -0
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js +214 -141
- package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js.map +1 -1
- package/lib/rollup/modifyLibFiles/handleImportPaths.cjs +24 -0
- package/lib/rollup/modifyLibFiles/handleImportPaths.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/handleImportPaths.d.ts +3 -0
- package/lib/rollup/modifyLibFiles/handleImportPaths.js +24 -0
- package/lib/rollup/modifyLibFiles/handleImportPaths.js.map +1 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.cjs +86 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.cjs.map +1 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.d.ts +11 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.js +86 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.js.map +1 -0
- package/lib/rollup/modifyLibFiles/handleLoaderReturn.test.d.ts +1 -0
- package/lib/rollup/modifyLibFiles/utils.cjs +7 -7
- package/lib/rollup/modifyLibFiles/utils.cjs.map +1 -1
- package/lib/rollup/modifyLibFiles/utils.d.ts +1 -1
- package/lib/rollup/modifyLibFiles/utils.js +7 -7
- package/lib/rollup/modifyLibFiles/utils.js.map +1 -1
- package/lib/rollup/rollupPluginGenerateJson.cjs +2 -3
- package/lib/rollup/rollupPluginGenerateJson.cjs.map +1 -1
- package/lib/rollup/rollupPluginGenerateJson.js +2 -3
- package/lib/rollup/rollupPluginGenerateJson.js.map +1 -1
- package/lib/rollup/rollupPluginModifyLibFiles.cjs +25 -11
- package/lib/rollup/rollupPluginModifyLibFiles.cjs.map +1 -1
- package/lib/rollup/rollupPluginModifyLibFiles.js +25 -11
- package/lib/rollup/rollupPluginModifyLibFiles.js.map +1 -1
- package/lib/rollup/rollupPluginModifyLibFiles.test.d.ts +1 -0
- package/lib/rollup/rollupPluginUpdateFromConfig.cjs +122 -0
- package/lib/rollup/rollupPluginUpdateFromConfig.cjs.map +1 -0
- package/lib/rollup/rollupPluginUpdateFromConfig.d.ts +1 -0
- package/lib/rollup/rollupPluginUpdateFromConfig.js +122 -0
- package/lib/rollup/rollupPluginUpdateFromConfig.js.map +1 -0
- package/lib/utils/deepMerge.cjs +61 -0
- package/lib/utils/deepMerge.cjs.map +1 -0
- package/lib/utils/deepMerge.d.ts +1 -0
- package/lib/utils/deepMerge.js +61 -0
- package/lib/utils/deepMerge.js.map +1 -0
- package/lib/utils/getAllCDECodeConfig.cjs +18 -0
- package/lib/utils/getAllCDECodeConfig.cjs.map +1 -0
- package/lib/utils/getAllCDECodeConfig.d.ts +1 -0
- package/lib/utils/getAllCDECodeConfig.js +18 -0
- package/lib/utils/getAllCDECodeConfig.js.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/parseUtility.d.ts +3 -0
- package/lib/utils/setupConfig.cjs +6 -65
- package/lib/utils/setupConfig.cjs.map +1 -1
- package/lib/utils/setupConfig.d.ts +1 -2
- package/lib/utils/setupConfig.js +6 -65
- package/lib/utils/setupConfig.js.map +1 -1
- package/lib/utils/utils.cjs +29 -1
- package/lib/utils/utils.cjs.map +1 -1
- package/lib/utils/utils.d.ts +1 -0
- package/lib/utils/utils.js +29 -1
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils/verifyConfig.cjs +13 -0
- package/lib/utils/verifyConfig.cjs.map +1 -0
- package/lib/utils/verifyConfig.d.ts +2 -0
- package/lib/utils/verifyConfig.js +13 -0
- package/lib/utils/verifyConfig.js.map +1 -0
- package/lib/utils/withErrorHandleUtil.cjs +3 -7
- package/lib/utils/withErrorHandleUtil.cjs.map +1 -1
- package/lib/utils/withErrorHandleUtil.js +3 -7
- package/lib/utils/withErrorHandleUtil.js.map +1 -1
- package/lib/vite-wrappers/custom-routes.cjs +44 -0
- package/lib/vite-wrappers/custom-routes.cjs.map +1 -0
- package/lib/vite-wrappers/custom-routes.d.ts +2 -0
- package/lib/vite-wrappers/custom-routes.js +44 -0
- package/lib/vite-wrappers/custom-routes.js.map +1 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs +159 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs.map +1 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.d.ts +17 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.js +159 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.js.map +1 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.test.d.ts +1 -0
- package/lib/vite-wrappers/generators/generateHasConfiguration.cjs +20 -0
- package/lib/vite-wrappers/generators/generateHasConfiguration.cjs.map +1 -0
- package/lib/vite-wrappers/generators/generateHasConfiguration.d.ts +10 -0
- package/lib/vite-wrappers/generators/generateHasConfiguration.js +20 -0
- package/lib/vite-wrappers/generators/generateHasConfiguration.js.map +1 -0
- package/lib/vite-wrappers/generators/generateHasPermission.cjs +29 -0
- package/lib/vite-wrappers/generators/generateHasPermission.cjs.map +1 -0
- package/lib/vite-wrappers/generators/generateHasPermission.d.ts +9 -0
- package/lib/vite-wrappers/generators/generateHasPermission.js +29 -0
- package/lib/vite-wrappers/generators/generateHasPermission.js.map +1 -0
- package/lib/vite-wrappers/generators/generateHasPermission.test.d.ts +1 -0
- package/lib/vite-wrappers/generators/loaderGenerator.cjs +157 -0
- package/lib/vite-wrappers/generators/loaderGenerator.cjs.map +1 -0
- package/lib/vite-wrappers/generators/loaderGenerator.d.ts +36 -0
- package/lib/vite-wrappers/generators/loaderGenerator.js +157 -0
- package/lib/vite-wrappers/generators/loaderGenerator.js.map +1 -0
- package/lib/vite-wrappers/generators/loaderGenerator.test.d.ts +1 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.cjs +40 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.cjs.map +1 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.d.ts +10 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.js +40 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.js.map +1 -0
- package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.test.d.ts +1 -0
- package/lib/vite-wrappers/generators/utils/pickConfig.cjs +15 -0
- package/lib/vite-wrappers/generators/utils/pickConfig.cjs.map +1 -0
- package/lib/vite-wrappers/generators/utils/pickConfig.d.ts +10 -0
- package/lib/vite-wrappers/generators/utils/pickConfig.js +15 -0
- package/lib/vite-wrappers/generators/utils/pickConfig.js.map +1 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.cjs +58 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.cjs.map +1 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.d.ts +12 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.js +58 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.js.map +1 -0
- package/lib/vite-wrappers/generators/utils/resourceParams.test.d.ts +1 -0
- package/lib/vite-wrappers/helpers/componentReplacement.cjs +12 -0
- package/lib/vite-wrappers/helpers/componentReplacement.cjs.map +1 -0
- package/lib/vite-wrappers/helpers/componentReplacement.d.ts +2 -0
- package/lib/vite-wrappers/helpers/componentReplacement.js +12 -0
- package/lib/vite-wrappers/helpers/componentReplacement.js.map +1 -0
- package/lib/vite-wrappers/icon-switch.cjs +20 -6
- package/lib/vite-wrappers/icon-switch.cjs.map +1 -1
- package/lib/vite-wrappers/icon-switch.d.ts +1 -1
- package/lib/vite-wrappers/icon-switch.js +20 -6
- package/lib/vite-wrappers/icon-switch.js.map +1 -1
- package/lib/vite-wrappers/index.d.ts +3 -0
- package/lib/vite-wrappers/json-wrappers.cjs +105 -13
- package/lib/vite-wrappers/json-wrappers.cjs.map +1 -1
- package/lib/vite-wrappers/json-wrappers.d.ts +33 -0
- package/lib/vite-wrappers/json-wrappers.js +105 -13
- package/lib/vite-wrappers/json-wrappers.js.map +1 -1
- package/lib/vite-wrappers/wrapperComponent.cjs +210 -132
- package/lib/vite-wrappers/wrapperComponent.cjs.map +1 -1
- package/lib/vite-wrappers/wrapperComponent.d.ts +11 -2
- package/lib/vite-wrappers/wrapperComponent.js +209 -131
- package/lib/vite-wrappers/wrapperComponent.js.map +1 -1
- package/package.json +7 -5
- package/lib/interfaces/types.d.ts +0 -59
- package/lib/vite-wrappers/loaderGenerator.cjs +0 -245
- package/lib/vite-wrappers/loaderGenerator.cjs.map +0 -1
- package/lib/vite-wrappers/loaderGenerator.d.ts +0 -18
- package/lib/vite-wrappers/loaderGenerator.js +0 -245
- package/lib/vite-wrappers/loaderGenerator.js.map +0 -1
- /package/lib/{vite-wrappers/loaderGenerator.test.d.ts → rollup/modifyLibFiles/handleComponentOrDialog.test.d.ts} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Generates the configuration-picking logic for loaders.
|
|
3
|
+
* Filters configurations based on provided configuration keys.
|
|
4
|
+
*
|
|
5
|
+
* @param options - The options containing configuration keys to pick.
|
|
6
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
7
|
+
* @returns The configuration-picking logic string.
|
|
8
|
+
*/
|
|
9
|
+
function generateConfigurationLogic(options, isClient = false) {
|
|
10
|
+
let generates = '';
|
|
11
|
+
// Check if configurations are provided and generate logic for picking configurations based on keys
|
|
12
|
+
if (options.configurations?.length > 0) {
|
|
13
|
+
generates = `
|
|
14
|
+
if (configurations !== null) {
|
|
15
|
+
configurations = pickValues(configurations, ${JSON.stringify(options.configurations)});
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
19
|
+
return generates;
|
|
20
|
+
}exports.generateConfigurationLogic=generateConfigurationLogic;//# sourceMappingURL=generateHasConfiguration.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateHasConfiguration.cjs","sources":["../../../src/vite-wrappers/generators/generateHasConfiguration.ts"],"sourcesContent":[null],"names":[],"mappings":"aAEA;;;;;;;AAOG;SACa,0BAA0B,CAAC,OAAwB,EAAE,WAAoB,KAAK,EAAA;IAC1F,IAAI,SAAS,GAAG,EAAE,CAAC;;IAGnB,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE;AACpC,QAAA,SAAS,GAAG,CAAA;;AAEsC,wDAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;;SAEvF,CAAC;KACL;AACD,IAAA,OAAO,SAAS,CAAC;AACrB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IWrapperOptions } from '@common-stack/core/lib/index.component';
|
|
2
|
+
/**
|
|
3
|
+
* Generates the configuration-picking logic for loaders.
|
|
4
|
+
* Filters configurations based on provided configuration keys.
|
|
5
|
+
*
|
|
6
|
+
* @param options - The options containing configuration keys to pick.
|
|
7
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
8
|
+
* @returns The configuration-picking logic string.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateConfigurationLogic(options: IWrapperOptions, isClient?: boolean): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates the configuration-picking logic for loaders.
|
|
3
|
+
* Filters configurations based on provided configuration keys.
|
|
4
|
+
*
|
|
5
|
+
* @param options - The options containing configuration keys to pick.
|
|
6
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
7
|
+
* @returns The configuration-picking logic string.
|
|
8
|
+
*/
|
|
9
|
+
function generateConfigurationLogic(options, isClient = false) {
|
|
10
|
+
let generates = '';
|
|
11
|
+
// Check if configurations are provided and generate logic for picking configurations based on keys
|
|
12
|
+
if (options.configurations?.length > 0) {
|
|
13
|
+
generates = `
|
|
14
|
+
if (configurations !== null) {
|
|
15
|
+
configurations = pickValues(configurations, ${JSON.stringify(options.configurations)});
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
19
|
+
return generates;
|
|
20
|
+
}export{generateConfigurationLogic};//# sourceMappingURL=generateHasConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateHasConfiguration.js","sources":["../../../src/vite-wrappers/generators/generateHasConfiguration.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;AAOG;SACa,0BAA0B,CAAC,OAAwB,EAAE,WAAoB,KAAK,EAAA;IAC1F,IAAI,SAAS,GAAG,EAAE,CAAC;;IAGnB,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE;AACpC,QAAA,SAAS,GAAG,CAAA;;AAEsC,wDAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;;SAEvF,CAAC;KACL;AACD,IAAA,OAAO,SAAS,CAAC;AACrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Generates the permission-check logic for loaders, filtering permissions based on authority keys.
|
|
3
|
+
*
|
|
4
|
+
* @param options - The options containing the authority and extraPermissions to check.
|
|
5
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
6
|
+
* @returns The permission-check logic string.
|
|
7
|
+
*/
|
|
8
|
+
function generateHasPermission(options, isClient = false) {
|
|
9
|
+
const hasLoader = isClient ? options.hasClientLoader : options.hasLoader;
|
|
10
|
+
let generates = '';
|
|
11
|
+
// Check if authority or extraPermissions are provided and generate logic for permission checks
|
|
12
|
+
if (options.authority?.length > 0 || options.extraPermissions?.length > 0) {
|
|
13
|
+
generates = `
|
|
14
|
+
if (permissions !== null) {
|
|
15
|
+
const permissionKeys = ${JSON.stringify(options.authority)} || [];
|
|
16
|
+
let extraPermissions = ${JSON.stringify(options.extraPermissions)} || [];
|
|
17
|
+
extraPermissions = permissionKeys.concat(extraPermissions);
|
|
18
|
+
permissions = pickValues(permissions, extraPermissions);
|
|
19
|
+
`;
|
|
20
|
+
// If loader is present, generate logic to determine if required permissions are allowed
|
|
21
|
+
if (hasLoader && options.authority?.length > 0) {
|
|
22
|
+
generates += `
|
|
23
|
+
hasPermissions = permissionKeys.some(key => ['Allow'].includes(get(permissions, key)));
|
|
24
|
+
`;
|
|
25
|
+
}
|
|
26
|
+
generates += `}`;
|
|
27
|
+
}
|
|
28
|
+
return generates;
|
|
29
|
+
}exports.generateHasPermission=generateHasPermission;//# sourceMappingURL=generateHasPermission.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateHasPermission.cjs","sources":["../../../src/vite-wrappers/generators/generateHasPermission.ts"],"sourcesContent":[null],"names":[],"mappings":"aAEA;;;;;;AAMG;SACa,qBAAqB,CAAC,OAAwB,EAAE,WAAoB,KAAK,EAAA;AACrF,IAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IACzE,IAAI,SAAS,GAAG,EAAE,CAAC;;AAGnB,IAAA,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;AACvE,QAAA,SAAS,GAAG,CAAA;;AAEiB,mCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,mCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;;;SAGpE,CAAC;;QAGF,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;AAC5C,YAAA,SAAS,IAAI,CAAA;;aAEZ,CAAC;SACL;QACD,SAAS,IAAI,GAAG,CAAC;KACpB;AACD,IAAA,OAAO,SAAS,CAAC;AACrB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IWrapperOptions } from '@common-stack/core/lib/index.component';
|
|
2
|
+
/**
|
|
3
|
+
* Generates the permission-check logic for loaders, filtering permissions based on authority keys.
|
|
4
|
+
*
|
|
5
|
+
* @param options - The options containing the authority and extraPermissions to check.
|
|
6
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
7
|
+
* @returns The permission-check logic string.
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateHasPermission(options: IWrapperOptions, isClient?: boolean): string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates the permission-check logic for loaders, filtering permissions based on authority keys.
|
|
3
|
+
*
|
|
4
|
+
* @param options - The options containing the authority and extraPermissions to check.
|
|
5
|
+
* @param isClient - A flag to specify if it's for client-side loading (default: false).
|
|
6
|
+
* @returns The permission-check logic string.
|
|
7
|
+
*/
|
|
8
|
+
function generateHasPermission(options, isClient = false) {
|
|
9
|
+
const hasLoader = isClient ? options.hasClientLoader : options.hasLoader;
|
|
10
|
+
let generates = '';
|
|
11
|
+
// Check if authority or extraPermissions are provided and generate logic for permission checks
|
|
12
|
+
if (options.authority?.length > 0 || options.extraPermissions?.length > 0) {
|
|
13
|
+
generates = `
|
|
14
|
+
if (permissions !== null) {
|
|
15
|
+
const permissionKeys = ${JSON.stringify(options.authority)} || [];
|
|
16
|
+
let extraPermissions = ${JSON.stringify(options.extraPermissions)} || [];
|
|
17
|
+
extraPermissions = permissionKeys.concat(extraPermissions);
|
|
18
|
+
permissions = pickValues(permissions, extraPermissions);
|
|
19
|
+
`;
|
|
20
|
+
// If loader is present, generate logic to determine if required permissions are allowed
|
|
21
|
+
if (hasLoader && options.authority?.length > 0) {
|
|
22
|
+
generates += `
|
|
23
|
+
hasPermissions = permissionKeys.some(key => ['Allow'].includes(get(permissions, key)));
|
|
24
|
+
`;
|
|
25
|
+
}
|
|
26
|
+
generates += `}`;
|
|
27
|
+
}
|
|
28
|
+
return generates;
|
|
29
|
+
}export{generateHasPermission};//# sourceMappingURL=generateHasPermission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateHasPermission.js","sources":["../../../src/vite-wrappers/generators/generateHasPermission.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;AAMG;SACa,qBAAqB,CAAC,OAAwB,EAAE,WAAoB,KAAK,EAAA;AACrF,IAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IACzE,IAAI,SAAS,GAAG,EAAE,CAAC;;AAGnB,IAAA,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;AACvE,QAAA,SAAS,GAAG,CAAA;;AAEiB,mCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,mCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;;;SAGpE,CAAC;;QAGF,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;AAC5C,YAAA,SAAS,IAAI,CAAA;;aAEZ,CAAC;SACL;QACD,SAAS,IAAI,GAAG,CAAC;KACpB;AACD,IAAA,OAAO,SAAS,CAAC;AACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
'use strict';var generateHasPermission=require('./generateHasPermission.cjs'),generateHasConfiguration=require('./generateHasConfiguration.cjs'),serverQueryLoaderGenerator=require('./serverQueryLoaderGenerator.cjs');function generateLoaderReturnLogic(options) {
|
|
2
|
+
if (options.loaderReturnInfo?.keys?.length > 0) {
|
|
3
|
+
// Create deferred objects by directly assigning each key to its corresponding index in loaderData
|
|
4
|
+
const deferredAssignments = options.loaderReturnInfo?.keys
|
|
5
|
+
.map((key, index) => ` returnObject['${key}'] = loaderData[${index}];`)
|
|
6
|
+
.join('\n ');
|
|
7
|
+
return `
|
|
8
|
+
const returnObject = {};
|
|
9
|
+
if (hasPermissions) {
|
|
10
|
+
${deferredAssignments}
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is false, return loaderData otherwise
|
|
18
|
+
* if loaderReturnInfo.keys is not empty, return an object with the keys and values from loaderData wrapped with the loaderReturnInfo.returnType.
|
|
19
|
+
* Also if we have the hasMiddleware flag, include the permissions and dataContext in the object. Also if we have the respondOptions flag, include the respondOptions in the object.
|
|
20
|
+
* Also if we have the options.queries object, include the defaultLoaderData in the object.
|
|
21
|
+
* If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
|
|
22
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
|
|
23
|
+
* if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
|
|
24
|
+
*
|
|
25
|
+
* Generates the return statement based on loader, middleware, and options configurations.
|
|
26
|
+
* Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Configuration options containing loader info and queries.
|
|
29
|
+
* @param hasMiddleware - A boolean flag indicating if middleware is being applied.
|
|
30
|
+
* @returns The return statement string for the loader function.
|
|
31
|
+
*/
|
|
32
|
+
function generateReturnStatement(options, hasMiddleware) {
|
|
33
|
+
const { loaderReturnInfo, isResourceRoute, queries, hasLoader } = options;
|
|
34
|
+
const hasQueries = Object.keys(queries ?? {}).length > 0;
|
|
35
|
+
let responseKey = '';
|
|
36
|
+
if (isResourceRoute) {
|
|
37
|
+
responseKey = 'json';
|
|
38
|
+
}
|
|
39
|
+
else if (loaderReturnInfo?.keys?.length > 0 || hasQueries) {
|
|
40
|
+
responseKey = 'defer';
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
responseKey = loaderReturnInfo?.returnType || '';
|
|
44
|
+
}
|
|
45
|
+
const defaultLoaderData = hasQueries ? 'defaultLoaderData' : '{}';
|
|
46
|
+
const middlewareData = hasMiddleware ? '{ permissions, dataContext: rest, configurations }' : '{}';
|
|
47
|
+
const respondOptions = loaderReturnInfo?.hasOptions ? 'respondOptions' : '';
|
|
48
|
+
if (loaderReturnInfo?.keys?.length > 0) {
|
|
49
|
+
return `return ${responseKey}({
|
|
50
|
+
...returnObject,
|
|
51
|
+
...${defaultLoaderData},
|
|
52
|
+
...${middlewareData},
|
|
53
|
+
errors: loaderErrors
|
|
54
|
+
}${respondOptions ? `, ${respondOptions}` : ''});`;
|
|
55
|
+
}
|
|
56
|
+
if (hasLoader && !hasMiddleware && !hasQueries) {
|
|
57
|
+
return 'return loaderData;';
|
|
58
|
+
}
|
|
59
|
+
const loaderDataSpread = hasLoader ? '...loaderData, ' : '';
|
|
60
|
+
return `return ${responseKey}({
|
|
61
|
+
${loaderDataSpread}
|
|
62
|
+
...${defaultLoaderData},
|
|
63
|
+
...${middlewareData},
|
|
64
|
+
errors: loaderErrors
|
|
65
|
+
}${respondOptions ? `, ${respondOptions}` : ''});`;
|
|
66
|
+
}
|
|
67
|
+
function generateMiddlewarePushes(options) {
|
|
68
|
+
return (options.middlewares ?? [])
|
|
69
|
+
?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}", func: middleware${index + 1} });`)
|
|
70
|
+
.join('\n');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generates the export functions for loaders and actions based on the provided options.
|
|
74
|
+
* Handles middleware and permission checks if present.
|
|
75
|
+
*
|
|
76
|
+
* @param options - The configuration options including middleware, queries, etc.
|
|
77
|
+
* @param hasMiddleware - A flag indicating if middleware exists.
|
|
78
|
+
* @param hasQueries - A flag indicating if GraphQL queries are present.
|
|
79
|
+
* @returns The updated export string.
|
|
80
|
+
*/
|
|
81
|
+
function generateLoaderExports(options, hasMiddleware = false, hasQueries = false) {
|
|
82
|
+
let loaderExport = '';
|
|
83
|
+
// Generate server-side loader if queries are present
|
|
84
|
+
if (hasQueries) {
|
|
85
|
+
loaderExport += serverQueryLoaderGenerator.generateServerLoader(options);
|
|
86
|
+
}
|
|
87
|
+
const getMiddlewareOptions = () => {
|
|
88
|
+
if (options.requireAuth) {
|
|
89
|
+
const val = typeof options.authStrategy === 'boolean' ? options.authStrategy : `'${options.authStrategy}'`;
|
|
90
|
+
return `{authStrategy: ${val}}`;
|
|
91
|
+
}
|
|
92
|
+
return '{}';
|
|
93
|
+
};
|
|
94
|
+
const { configurations, extraParams } = options;
|
|
95
|
+
loaderExport += `
|
|
96
|
+
export async function loader(params) {
|
|
97
|
+
${hasMiddleware ? 'const middlewareStack = [];' : ''}
|
|
98
|
+
const middlewareOptions = ${getMiddlewareOptions()}
|
|
99
|
+
${options.requireAuth ? 'middlewareStack.push({ name: "auth", func: authMiddleware });' : ''}
|
|
100
|
+
${generateMiddlewarePushes(options)}
|
|
101
|
+
${options.configurations?.length > 0 || options.authority?.length > 0 || options.extraPermissions?.length > 0
|
|
102
|
+
? 'middlewareStack.push({ name: "lifecycle", func: lifecycleMiddleware });\n'
|
|
103
|
+
: ''}
|
|
104
|
+
${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permission", func: permissionMiddleware });\n' : ''}
|
|
105
|
+
${options.configurations.length > 0 ? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n' : ''}
|
|
106
|
+
|
|
107
|
+
// Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
|
|
108
|
+
const resourceParams = ${options.configurations?.length > 0 || options.authority?.length > 0 || options.extraPermissions?.length > 0
|
|
109
|
+
? `
|
|
110
|
+
resolveResourceParamsPlaceholders(
|
|
111
|
+
${JSON.stringify(options.extraParams?.resourceParams ?? {})},
|
|
112
|
+
params.params || {}
|
|
113
|
+
)`
|
|
114
|
+
: '{}'};
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
const paramsWithResource = {
|
|
118
|
+
...params,
|
|
119
|
+
resourceParams,
|
|
120
|
+
configurations: ${JSON.stringify(configurations ?? [])},
|
|
121
|
+
};
|
|
122
|
+
${hasMiddleware
|
|
123
|
+
? 'let middlewareData = {};\n' +
|
|
124
|
+
' if (middlewareStack.length > 0) {\n' +
|
|
125
|
+
' middlewareData = await loaderWithMiddleware({...paramsWithResource}, middlewareOptions, middlewareStack) || {};\n' +
|
|
126
|
+
' }\n' +
|
|
127
|
+
' let { permissions = null, configurations = null, apolloState = null, ...rest } = middlewareData;\n'
|
|
128
|
+
: ''}
|
|
129
|
+
let hasPermissions = true;
|
|
130
|
+
let loaderErrors = [];
|
|
131
|
+
${generateHasPermission.generateHasPermission(options)}
|
|
132
|
+
${generateHasConfiguration.generateConfigurationLogic(options)}
|
|
133
|
+
const paramsWithMiddlewareData = ${hasMiddleware ? `{ ...params, _dataContext: middlewareData }` : '{ ...params }'};
|
|
134
|
+
|
|
135
|
+
const defaultLoaderResult = ${hasQueries
|
|
136
|
+
? `hasPermissions ? await withErrorHandler(defaultServerLoader, paramsWithMiddlewareData) : { data: {}, errors: [] };\n
|
|
137
|
+
loaderErrors = defaultLoaderResult.errors`
|
|
138
|
+
: '{ data: {}, errors: [] }'};
|
|
139
|
+
const defaultLoaderData = defaultLoaderResult.data;
|
|
140
|
+
${options.requireAuth
|
|
141
|
+
? 'if (middlewareData.userId) { params.context = params.context || {}; params.context.userId = middlewareData.userId; }\n'
|
|
142
|
+
: ''}
|
|
143
|
+
${options.hasLoader && options.loaderReturnInfo?.keys?.length > 0
|
|
144
|
+
? `let loaderResult = hasPermissions && await withErrorHandler(loaderFunc, paramsWithMiddlewareData) || { data: [], errors: [] };\n
|
|
145
|
+
let loaderData = loaderResult.data || [];\n
|
|
146
|
+
loaderErrors = loaderResult?.errors;\n
|
|
147
|
+
${options.loaderReturnInfo.hasOptions ? 'let respondOptions = loaderResult.options || null;' : ''}`
|
|
148
|
+
: options.hasLoader
|
|
149
|
+
? `let loaderData = hasPermissions && await withErrorHandler(loaderFunc, paramsWithMiddlewareData) || { data: [], errors: [] };\n
|
|
150
|
+
loaderErrors = loaderData?.errors;\n`
|
|
151
|
+
: ''}
|
|
152
|
+
|
|
153
|
+
${generateLoaderReturnLogic(options)}
|
|
154
|
+
${generateReturnStatement(options, hasMiddleware)}
|
|
155
|
+
}`;
|
|
156
|
+
return loaderExport;
|
|
157
|
+
}exports.generateLoaderExports=generateLoaderExports;exports.generateReturnStatement=generateReturnStatement;//# sourceMappingURL=loaderGenerator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaderGenerator.cjs","sources":["../../../src/vite-wrappers/generators/loaderGenerator.ts"],"sourcesContent":[null],"names":["generateServerLoader","generateHasPermission","generateConfigurationLogic"],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { IWrapperOptions } from '@common-stack/core/lib/index.component';
|
|
2
|
+
/**
|
|
3
|
+
* Internal function to update the options with default loader configurations.
|
|
4
|
+
* Adds a loaderReturnInfo object to the options, which will be used to handle deferred data loading.
|
|
5
|
+
*
|
|
6
|
+
* @param options - The options object which will be modified to include loader-related configurations.
|
|
7
|
+
* @returns The updated options object.
|
|
8
|
+
*/
|
|
9
|
+
export declare function internalOptions(options: IWrapperOptions): IWrapperOptions;
|
|
10
|
+
/**
|
|
11
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is false, return loaderData otherwise
|
|
12
|
+
* if loaderReturnInfo.keys is not empty, return an object with the keys and values from loaderData wrapped with the loaderReturnInfo.returnType.
|
|
13
|
+
* Also if we have the hasMiddleware flag, include the permissions and dataContext in the object. Also if we have the respondOptions flag, include the respondOptions in the object.
|
|
14
|
+
* Also if we have the options.queries object, include the defaultLoaderData in the object.
|
|
15
|
+
* If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
|
|
16
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
|
|
17
|
+
* if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
|
|
18
|
+
*
|
|
19
|
+
* Generates the return statement based on loader, middleware, and options configurations.
|
|
20
|
+
* Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
|
|
21
|
+
*
|
|
22
|
+
* @param options - Configuration options containing loader info and queries.
|
|
23
|
+
* @param hasMiddleware - A boolean flag indicating if middleware is being applied.
|
|
24
|
+
* @returns The return statement string for the loader function.
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateReturnStatement(options: IWrapperOptions, hasMiddleware: boolean): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generates the export functions for loaders and actions based on the provided options.
|
|
29
|
+
* Handles middleware and permission checks if present.
|
|
30
|
+
*
|
|
31
|
+
* @param options - The configuration options including middleware, queries, etc.
|
|
32
|
+
* @param hasMiddleware - A flag indicating if middleware exists.
|
|
33
|
+
* @param hasQueries - A flag indicating if GraphQL queries are present.
|
|
34
|
+
* @returns The updated export string.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateLoaderExports(options: IWrapperOptions, hasMiddleware?: boolean, hasQueries?: boolean): string;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import {generateHasPermission}from'./generateHasPermission.js';import {generateConfigurationLogic}from'./generateHasConfiguration.js';import {generateServerLoader}from'./serverQueryLoaderGenerator.js';function generateLoaderReturnLogic(options) {
|
|
2
|
+
if (options.loaderReturnInfo?.keys?.length > 0) {
|
|
3
|
+
// Create deferred objects by directly assigning each key to its corresponding index in loaderData
|
|
4
|
+
const deferredAssignments = options.loaderReturnInfo?.keys
|
|
5
|
+
.map((key, index) => ` returnObject['${key}'] = loaderData[${index}];`)
|
|
6
|
+
.join('\n ');
|
|
7
|
+
return `
|
|
8
|
+
const returnObject = {};
|
|
9
|
+
if (hasPermissions) {
|
|
10
|
+
${deferredAssignments}
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is false, return loaderData otherwise
|
|
18
|
+
* if loaderReturnInfo.keys is not empty, return an object with the keys and values from loaderData wrapped with the loaderReturnInfo.returnType.
|
|
19
|
+
* Also if we have the hasMiddleware flag, include the permissions and dataContext in the object. Also if we have the respondOptions flag, include the respondOptions in the object.
|
|
20
|
+
* Also if we have the options.queries object, include the defaultLoaderData in the object.
|
|
21
|
+
* If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
|
|
22
|
+
* if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
|
|
23
|
+
* if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
|
|
24
|
+
*
|
|
25
|
+
* Generates the return statement based on loader, middleware, and options configurations.
|
|
26
|
+
* Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Configuration options containing loader info and queries.
|
|
29
|
+
* @param hasMiddleware - A boolean flag indicating if middleware is being applied.
|
|
30
|
+
* @returns The return statement string for the loader function.
|
|
31
|
+
*/
|
|
32
|
+
function generateReturnStatement(options, hasMiddleware) {
|
|
33
|
+
const { loaderReturnInfo, isResourceRoute, queries, hasLoader } = options;
|
|
34
|
+
const hasQueries = Object.keys(queries ?? {}).length > 0;
|
|
35
|
+
let responseKey = '';
|
|
36
|
+
if (isResourceRoute) {
|
|
37
|
+
responseKey = 'json';
|
|
38
|
+
}
|
|
39
|
+
else if (loaderReturnInfo?.keys?.length > 0 || hasQueries) {
|
|
40
|
+
responseKey = 'defer';
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
responseKey = loaderReturnInfo?.returnType || '';
|
|
44
|
+
}
|
|
45
|
+
const defaultLoaderData = hasQueries ? 'defaultLoaderData' : '{}';
|
|
46
|
+
const middlewareData = hasMiddleware ? '{ permissions, dataContext: rest, configurations }' : '{}';
|
|
47
|
+
const respondOptions = loaderReturnInfo?.hasOptions ? 'respondOptions' : '';
|
|
48
|
+
if (loaderReturnInfo?.keys?.length > 0) {
|
|
49
|
+
return `return ${responseKey}({
|
|
50
|
+
...returnObject,
|
|
51
|
+
...${defaultLoaderData},
|
|
52
|
+
...${middlewareData},
|
|
53
|
+
errors: loaderErrors
|
|
54
|
+
}${respondOptions ? `, ${respondOptions}` : ''});`;
|
|
55
|
+
}
|
|
56
|
+
if (hasLoader && !hasMiddleware && !hasQueries) {
|
|
57
|
+
return 'return loaderData;';
|
|
58
|
+
}
|
|
59
|
+
const loaderDataSpread = hasLoader ? '...loaderData, ' : '';
|
|
60
|
+
return `return ${responseKey}({
|
|
61
|
+
${loaderDataSpread}
|
|
62
|
+
...${defaultLoaderData},
|
|
63
|
+
...${middlewareData},
|
|
64
|
+
errors: loaderErrors
|
|
65
|
+
}${respondOptions ? `, ${respondOptions}` : ''});`;
|
|
66
|
+
}
|
|
67
|
+
function generateMiddlewarePushes(options) {
|
|
68
|
+
return (options.middlewares ?? [])
|
|
69
|
+
?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}", func: middleware${index + 1} });`)
|
|
70
|
+
.join('\n');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generates the export functions for loaders and actions based on the provided options.
|
|
74
|
+
* Handles middleware and permission checks if present.
|
|
75
|
+
*
|
|
76
|
+
* @param options - The configuration options including middleware, queries, etc.
|
|
77
|
+
* @param hasMiddleware - A flag indicating if middleware exists.
|
|
78
|
+
* @param hasQueries - A flag indicating if GraphQL queries are present.
|
|
79
|
+
* @returns The updated export string.
|
|
80
|
+
*/
|
|
81
|
+
function generateLoaderExports(options, hasMiddleware = false, hasQueries = false) {
|
|
82
|
+
let loaderExport = '';
|
|
83
|
+
// Generate server-side loader if queries are present
|
|
84
|
+
if (hasQueries) {
|
|
85
|
+
loaderExport += generateServerLoader(options);
|
|
86
|
+
}
|
|
87
|
+
const getMiddlewareOptions = () => {
|
|
88
|
+
if (options.requireAuth) {
|
|
89
|
+
const val = typeof options.authStrategy === 'boolean' ? options.authStrategy : `'${options.authStrategy}'`;
|
|
90
|
+
return `{authStrategy: ${val}}`;
|
|
91
|
+
}
|
|
92
|
+
return '{}';
|
|
93
|
+
};
|
|
94
|
+
const { configurations, extraParams } = options;
|
|
95
|
+
loaderExport += `
|
|
96
|
+
export async function loader(params) {
|
|
97
|
+
${hasMiddleware ? 'const middlewareStack = [];' : ''}
|
|
98
|
+
const middlewareOptions = ${getMiddlewareOptions()}
|
|
99
|
+
${options.requireAuth ? 'middlewareStack.push({ name: "auth", func: authMiddleware });' : ''}
|
|
100
|
+
${generateMiddlewarePushes(options)}
|
|
101
|
+
${options.configurations?.length > 0 || options.authority?.length > 0 || options.extraPermissions?.length > 0
|
|
102
|
+
? 'middlewareStack.push({ name: "lifecycle", func: lifecycleMiddleware });\n'
|
|
103
|
+
: ''}
|
|
104
|
+
${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permission", func: permissionMiddleware });\n' : ''}
|
|
105
|
+
${options.configurations.length > 0 ? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n' : ''}
|
|
106
|
+
|
|
107
|
+
// Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
|
|
108
|
+
const resourceParams = ${options.configurations?.length > 0 || options.authority?.length > 0 || options.extraPermissions?.length > 0
|
|
109
|
+
? `
|
|
110
|
+
resolveResourceParamsPlaceholders(
|
|
111
|
+
${JSON.stringify(options.extraParams?.resourceParams ?? {})},
|
|
112
|
+
params.params || {}
|
|
113
|
+
)`
|
|
114
|
+
: '{}'};
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
const paramsWithResource = {
|
|
118
|
+
...params,
|
|
119
|
+
resourceParams,
|
|
120
|
+
configurations: ${JSON.stringify(configurations ?? [])},
|
|
121
|
+
};
|
|
122
|
+
${hasMiddleware
|
|
123
|
+
? 'let middlewareData = {};\n' +
|
|
124
|
+
' if (middlewareStack.length > 0) {\n' +
|
|
125
|
+
' middlewareData = await loaderWithMiddleware({...paramsWithResource}, middlewareOptions, middlewareStack) || {};\n' +
|
|
126
|
+
' }\n' +
|
|
127
|
+
' let { permissions = null, configurations = null, apolloState = null, ...rest } = middlewareData;\n'
|
|
128
|
+
: ''}
|
|
129
|
+
let hasPermissions = true;
|
|
130
|
+
let loaderErrors = [];
|
|
131
|
+
${generateHasPermission(options)}
|
|
132
|
+
${generateConfigurationLogic(options)}
|
|
133
|
+
const paramsWithMiddlewareData = ${hasMiddleware ? `{ ...params, _dataContext: middlewareData }` : '{ ...params }'};
|
|
134
|
+
|
|
135
|
+
const defaultLoaderResult = ${hasQueries
|
|
136
|
+
? `hasPermissions ? await withErrorHandler(defaultServerLoader, paramsWithMiddlewareData) : { data: {}, errors: [] };\n
|
|
137
|
+
loaderErrors = defaultLoaderResult.errors`
|
|
138
|
+
: '{ data: {}, errors: [] }'};
|
|
139
|
+
const defaultLoaderData = defaultLoaderResult.data;
|
|
140
|
+
${options.requireAuth
|
|
141
|
+
? 'if (middlewareData.userId) { params.context = params.context || {}; params.context.userId = middlewareData.userId; }\n'
|
|
142
|
+
: ''}
|
|
143
|
+
${options.hasLoader && options.loaderReturnInfo?.keys?.length > 0
|
|
144
|
+
? `let loaderResult = hasPermissions && await withErrorHandler(loaderFunc, paramsWithMiddlewareData) || { data: [], errors: [] };\n
|
|
145
|
+
let loaderData = loaderResult.data || [];\n
|
|
146
|
+
loaderErrors = loaderResult?.errors;\n
|
|
147
|
+
${options.loaderReturnInfo.hasOptions ? 'let respondOptions = loaderResult.options || null;' : ''}`
|
|
148
|
+
: options.hasLoader
|
|
149
|
+
? `let loaderData = hasPermissions && await withErrorHandler(loaderFunc, paramsWithMiddlewareData) || { data: [], errors: [] };\n
|
|
150
|
+
loaderErrors = loaderData?.errors;\n`
|
|
151
|
+
: ''}
|
|
152
|
+
|
|
153
|
+
${generateLoaderReturnLogic(options)}
|
|
154
|
+
${generateReturnStatement(options, hasMiddleware)}
|
|
155
|
+
}`;
|
|
156
|
+
return loaderExport;
|
|
157
|
+
}export{generateLoaderExports,generateReturnStatement};//# sourceMappingURL=loaderGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaderGenerator.js","sources":["../../../src/vite-wrappers/generators/loaderGenerator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';var lodashEs=require('lodash-es'),constants=require('../../constants/constants.cjs');// Utility to generate a key for the query, converting its format for use in client-side and server-side loaders
|
|
2
|
+
const generateDeferKey = (key) => lodashEs.camelCase(key.replace('Get', '')).replace('Document', 'Query');
|
|
3
|
+
/**
|
|
4
|
+
* Generates the server-side loader function for handling GraphQL queries.
|
|
5
|
+
* It creates the default server loader for fetching data based on provided queries in the options.
|
|
6
|
+
*
|
|
7
|
+
* @param queries - The list of queries to be used for data fetching.
|
|
8
|
+
* @returns The generated server loader function string.
|
|
9
|
+
*/
|
|
10
|
+
const generateServerLoader = ({ queries }) => {
|
|
11
|
+
if (Object.keys(queries ?? {}).length === 0) {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
return `
|
|
15
|
+
export const defaultServerLoader = async ({ context, params, _dataContext = {} }) => {
|
|
16
|
+
const { apolloClient: client } = context;
|
|
17
|
+
const queries = ${Object.entries(queries).reduce((acc, [key, value], index) => {
|
|
18
|
+
const formattedValue = typeof value === 'string' && value.includes(constants.SEARCH_QUERY_PARAMS_GENERATOR)
|
|
19
|
+
? `queryGeneratorFunc({...params, _dataContext}).${value.split(constants.SEARCH_QUERY_PARAMS_GENERATOR)[1]}`
|
|
20
|
+
: value;
|
|
21
|
+
return `${acc}${key}:${formattedValue}${index + 1 === Object.keys(queries).length ? '}' : ','}`;
|
|
22
|
+
}, '{')};
|
|
23
|
+
${Object.keys(queries)
|
|
24
|
+
.map((queryDoc) => `
|
|
25
|
+
const ${generateDeferKey(queryDoc)} = client.query({
|
|
26
|
+
query: ${queryDoc},
|
|
27
|
+
variables: queries['${queryDoc}'],
|
|
28
|
+
fetchPolicy: __SERVER__ ? 'network-only' : 'cache-first',
|
|
29
|
+
});
|
|
30
|
+
`)
|
|
31
|
+
.join('')}
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
data: {
|
|
35
|
+
${Object.keys(queries).map(generateDeferKey)}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
`;
|
|
40
|
+
};exports.generateDeferKey=generateDeferKey;exports.generateServerLoader=generateServerLoader;//# sourceMappingURL=serverQueryLoaderGenerator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverQueryLoaderGenerator.cjs","sources":["../../../src/vite-wrappers/generators/serverQueryLoaderGenerator.ts"],"sourcesContent":[null],"names":["camelCase","SEARCH_QUERY_PARAMS_GENERATOR"],"mappings":"kGAIA;AACa,MAAA,gBAAgB,GAAG,CAAC,GAAW,KAAKA,kBAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE;AAEhH;;;;;;AAMG;MACU,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAoC,KAAI;AAClF,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,QAAA,OAAO,EAAE,CAAC;KACb;IACD,OAAO,CAAA;;;AAGW,oBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAI;AAC1E,QAAA,MAAM,cAAc,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAACC,uCAA6B,CAAC;cACpE,CAAiD,8CAAA,EAAA,KAAK,CAAC,KAAK,CAACA,uCAA6B,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;cAChG,KAAK,CAAC;AAChB,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,cAAc,CAAG,EAAA,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,CAAE,CAAC;KACnG,EAAE,GAAG,CAAC,CAAA;AACN,GAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,KAAK,CAAA;YACb,gBAAgB,CAAC,QAAQ,CAAC,CAAA;iBACrB,QAAQ,CAAA;8BACK,QAAQ,CAAA;;;MAGhC,CACE;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;cAIF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;;;;KAInD,CAAC;AACN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IWrapperOptions } from '@common-stack/core/lib/index.component';
|
|
2
|
+
export declare const generateDeferKey: (key: string) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Generates the server-side loader function for handling GraphQL queries.
|
|
5
|
+
* It creates the default server loader for fetching data based on provided queries in the options.
|
|
6
|
+
*
|
|
7
|
+
* @param queries - The list of queries to be used for data fetching.
|
|
8
|
+
* @returns The generated server loader function string.
|
|
9
|
+
*/
|
|
10
|
+
export declare const generateServerLoader: ({ queries }: Pick<IWrapperOptions, "queries">) => string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {camelCase}from'lodash-es';import {SEARCH_QUERY_PARAMS_GENERATOR}from'../../constants/constants.js';// Utility to generate a key for the query, converting its format for use in client-side and server-side loaders
|
|
2
|
+
const generateDeferKey = (key) => camelCase(key.replace('Get', '')).replace('Document', 'Query');
|
|
3
|
+
/**
|
|
4
|
+
* Generates the server-side loader function for handling GraphQL queries.
|
|
5
|
+
* It creates the default server loader for fetching data based on provided queries in the options.
|
|
6
|
+
*
|
|
7
|
+
* @param queries - The list of queries to be used for data fetching.
|
|
8
|
+
* @returns The generated server loader function string.
|
|
9
|
+
*/
|
|
10
|
+
const generateServerLoader = ({ queries }) => {
|
|
11
|
+
if (Object.keys(queries ?? {}).length === 0) {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
return `
|
|
15
|
+
export const defaultServerLoader = async ({ context, params, _dataContext = {} }) => {
|
|
16
|
+
const { apolloClient: client } = context;
|
|
17
|
+
const queries = ${Object.entries(queries).reduce((acc, [key, value], index) => {
|
|
18
|
+
const formattedValue = typeof value === 'string' && value.includes(SEARCH_QUERY_PARAMS_GENERATOR)
|
|
19
|
+
? `queryGeneratorFunc({...params, _dataContext}).${value.split(SEARCH_QUERY_PARAMS_GENERATOR)[1]}`
|
|
20
|
+
: value;
|
|
21
|
+
return `${acc}${key}:${formattedValue}${index + 1 === Object.keys(queries).length ? '}' : ','}`;
|
|
22
|
+
}, '{')};
|
|
23
|
+
${Object.keys(queries)
|
|
24
|
+
.map((queryDoc) => `
|
|
25
|
+
const ${generateDeferKey(queryDoc)} = client.query({
|
|
26
|
+
query: ${queryDoc},
|
|
27
|
+
variables: queries['${queryDoc}'],
|
|
28
|
+
fetchPolicy: __SERVER__ ? 'network-only' : 'cache-first',
|
|
29
|
+
});
|
|
30
|
+
`)
|
|
31
|
+
.join('')}
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
data: {
|
|
35
|
+
${Object.keys(queries).map(generateDeferKey)}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
`;
|
|
40
|
+
};export{generateDeferKey,generateServerLoader};//# sourceMappingURL=serverQueryLoaderGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverQueryLoaderGenerator.js","sources":["../../../src/vite-wrappers/generators/serverQueryLoaderGenerator.ts"],"sourcesContent":[null],"names":[],"mappings":"2GAIA;AACa,MAAA,gBAAgB,GAAG,CAAC,GAAW,KAAK,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE;AAEhH;;;;;;AAMG;MACU,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAoC,KAAI;AAClF,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,QAAA,OAAO,EAAE,CAAC;KACb;IACD,OAAO,CAAA;;;AAGW,oBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAI;AAC1E,QAAA,MAAM,cAAc,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,6BAA6B,CAAC;cACpE,CAAiD,8CAAA,EAAA,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;cAChG,KAAK,CAAC;AAChB,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,cAAc,CAAG,EAAA,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,CAAE,CAAC;KACnG,EAAE,GAAG,CAAC,CAAA;AACN,GAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,KAAK,CAAA;YACb,gBAAgB,CAAC,QAAQ,CAAC,CAAA;iBACrB,QAAQ,CAAA;8BACK,QAAQ,CAAA;;;MAGhC,CACE;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;cAIF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;;;;KAInD,CAAC;AACN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|