@common-stack/rollup-vite-utils 6.0.6-alpha.5 → 6.0.6-alpha.52

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 (124) hide show
  1. package/lib/config-schema.cjs +111 -0
  2. package/lib/config-schema.cjs.map +1 -0
  3. package/lib/config-schema.js +111 -0
  4. package/lib/config-schema.js.map +1 -0
  5. package/lib/default-config.json.cjs +2 -2
  6. package/lib/default-config.json.js +2 -2
  7. package/lib/index.cjs +1 -1
  8. package/lib/index.js +1 -1
  9. package/lib/interfaces/types.cjs +6 -0
  10. package/lib/interfaces/types.cjs.map +1 -0
  11. package/lib/interfaces/types.d.ts +41 -24
  12. package/lib/interfaces/types.js +6 -0
  13. package/lib/interfaces/types.js.map +1 -0
  14. package/lib/preStartup/configLoader/index.cjs +1 -1
  15. package/lib/preStartup/configLoader/index.cjs.map +1 -1
  16. package/lib/preStartup/configLoader/index.js +1 -1
  17. package/lib/preStartup/configLoader/index.js.map +1 -1
  18. package/lib/preStartup/copyIfVersionChanged.cjs +1 -1
  19. package/lib/preStartup/copyIfVersionChanged.cjs.map +1 -1
  20. package/lib/preStartup/copyIfVersionChanged.js +1 -1
  21. package/lib/preStartup/copyIfVersionChanged.js.map +1 -1
  22. package/lib/rollup/index.d.ts +1 -0
  23. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs +1 -1
  24. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs.map +1 -1
  25. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js +1 -1
  26. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js.map +1 -1
  27. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs +212 -110
  28. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs.map +1 -1
  29. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.d.ts +41 -0
  30. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js +212 -110
  31. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js.map +1 -1
  32. package/lib/rollup/modifyLibFiles/handleImportPaths.cjs +4 -3
  33. package/lib/rollup/modifyLibFiles/handleImportPaths.cjs.map +1 -1
  34. package/lib/rollup/modifyLibFiles/handleImportPaths.js +4 -3
  35. package/lib/rollup/modifyLibFiles/handleImportPaths.js.map +1 -1
  36. package/lib/rollup/modifyLibFiles/utils.cjs +7 -7
  37. package/lib/rollup/modifyLibFiles/utils.cjs.map +1 -1
  38. package/lib/rollup/modifyLibFiles/utils.d.ts +1 -1
  39. package/lib/rollup/modifyLibFiles/utils.js +7 -7
  40. package/lib/rollup/modifyLibFiles/utils.js.map +1 -1
  41. package/lib/rollup/rollupPluginGenerateJson.cjs +2 -3
  42. package/lib/rollup/rollupPluginGenerateJson.cjs.map +1 -1
  43. package/lib/rollup/rollupPluginGenerateJson.js +2 -3
  44. package/lib/rollup/rollupPluginGenerateJson.js.map +1 -1
  45. package/lib/rollup/rollupPluginModifyLibFiles.cjs +25 -14
  46. package/lib/rollup/rollupPluginModifyLibFiles.cjs.map +1 -1
  47. package/lib/rollup/rollupPluginModifyLibFiles.js +25 -14
  48. package/lib/rollup/rollupPluginModifyLibFiles.js.map +1 -1
  49. package/lib/rollup/rollupPluginUpdateFromConfig.cjs +122 -0
  50. package/lib/rollup/rollupPluginUpdateFromConfig.cjs.map +1 -0
  51. package/lib/rollup/rollupPluginUpdateFromConfig.d.ts +1 -0
  52. package/lib/rollup/rollupPluginUpdateFromConfig.js +122 -0
  53. package/lib/rollup/rollupPluginUpdateFromConfig.js.map +1 -0
  54. package/lib/utils/index.d.ts +1 -0
  55. package/lib/utils/parseUtility.d.ts +3 -0
  56. package/lib/utils/verifyConfig.cjs +13 -0
  57. package/lib/utils/verifyConfig.cjs.map +1 -0
  58. package/lib/utils/verifyConfig.d.ts +2 -0
  59. package/lib/utils/verifyConfig.js +13 -0
  60. package/lib/utils/verifyConfig.js.map +1 -0
  61. package/lib/utils/withErrorHandleUtil.cjs +3 -7
  62. package/lib/utils/withErrorHandleUtil.cjs.map +1 -1
  63. package/lib/utils/withErrorHandleUtil.js +3 -7
  64. package/lib/utils/withErrorHandleUtil.js.map +1 -1
  65. package/lib/vite-wrappers/custom-routes.cjs +43 -0
  66. package/lib/vite-wrappers/custom-routes.cjs.map +1 -0
  67. package/lib/vite-wrappers/custom-routes.d.ts +2 -0
  68. package/lib/vite-wrappers/custom-routes.js +43 -0
  69. package/lib/vite-wrappers/custom-routes.js.map +1 -0
  70. package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs +149 -0
  71. package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs.map +1 -0
  72. package/lib/vite-wrappers/generators/clientLoaderGenerator.d.ts +17 -0
  73. package/lib/vite-wrappers/generators/clientLoaderGenerator.js +149 -0
  74. package/lib/vite-wrappers/generators/clientLoaderGenerator.js.map +1 -0
  75. package/lib/vite-wrappers/generators/clientLoaderGenerator.test.d.ts +1 -0
  76. package/lib/vite-wrappers/generators/generateHasConfiguration.cjs +20 -0
  77. package/lib/vite-wrappers/generators/generateHasConfiguration.cjs.map +1 -0
  78. package/lib/vite-wrappers/generators/generateHasConfiguration.d.ts +10 -0
  79. package/lib/vite-wrappers/generators/generateHasConfiguration.js +20 -0
  80. package/lib/vite-wrappers/generators/generateHasConfiguration.js.map +1 -0
  81. package/lib/vite-wrappers/generators/generateHasPermission.cjs +29 -0
  82. package/lib/vite-wrappers/generators/generateHasPermission.cjs.map +1 -0
  83. package/lib/vite-wrappers/generators/generateHasPermission.d.ts +9 -0
  84. package/lib/vite-wrappers/generators/generateHasPermission.js +29 -0
  85. package/lib/vite-wrappers/generators/generateHasPermission.js.map +1 -0
  86. package/lib/vite-wrappers/generators/generateHasPermission.test.d.ts +1 -0
  87. package/lib/vite-wrappers/generators/loaderGenerator.cjs +197 -0
  88. package/lib/vite-wrappers/generators/loaderGenerator.cjs.map +1 -0
  89. package/lib/vite-wrappers/generators/loaderGenerator.d.ts +44 -0
  90. package/lib/vite-wrappers/{loaderGenerator.js → generators/loaderGenerator.js} +74 -122
  91. package/lib/vite-wrappers/generators/loaderGenerator.js.map +1 -0
  92. package/lib/vite-wrappers/generators/loaderGenerator.test.d.ts +1 -0
  93. package/lib/vite-wrappers/generators/utils/pickConfig.cjs +16 -0
  94. package/lib/vite-wrappers/generators/utils/pickConfig.cjs.map +1 -0
  95. package/lib/vite-wrappers/generators/utils/pickConfig.d.ts +10 -0
  96. package/lib/vite-wrappers/generators/utils/pickConfig.js +16 -0
  97. package/lib/vite-wrappers/generators/utils/pickConfig.js.map +1 -0
  98. package/lib/vite-wrappers/generators/utils/resourceParams.cjs +36 -0
  99. package/lib/vite-wrappers/generators/utils/resourceParams.cjs.map +1 -0
  100. package/lib/vite-wrappers/generators/utils/resourceParams.d.ts +11 -0
  101. package/lib/vite-wrappers/generators/utils/resourceParams.js +36 -0
  102. package/lib/vite-wrappers/generators/utils/resourceParams.js.map +1 -0
  103. package/lib/vite-wrappers/icon-switch.cjs +4 -4
  104. package/lib/vite-wrappers/icon-switch.cjs.map +1 -1
  105. package/lib/vite-wrappers/icon-switch.d.ts +1 -1
  106. package/lib/vite-wrappers/icon-switch.js +4 -4
  107. package/lib/vite-wrappers/icon-switch.js.map +1 -1
  108. package/lib/vite-wrappers/index.d.ts +3 -0
  109. package/lib/vite-wrappers/json-wrappers.cjs +103 -14
  110. package/lib/vite-wrappers/json-wrappers.cjs.map +1 -1
  111. package/lib/vite-wrappers/json-wrappers.d.ts +33 -0
  112. package/lib/vite-wrappers/json-wrappers.js +103 -14
  113. package/lib/vite-wrappers/json-wrappers.js.map +1 -1
  114. package/lib/vite-wrappers/wrapperComponent.cjs +190 -125
  115. package/lib/vite-wrappers/wrapperComponent.cjs.map +1 -1
  116. package/lib/vite-wrappers/wrapperComponent.d.ts +9 -0
  117. package/lib/vite-wrappers/wrapperComponent.js +190 -125
  118. package/lib/vite-wrappers/wrapperComponent.js.map +1 -1
  119. package/package.json +7 -5
  120. package/lib/vite-wrappers/loaderGenerator.cjs +0 -245
  121. package/lib/vite-wrappers/loaderGenerator.cjs.map +0 -1
  122. package/lib/vite-wrappers/loaderGenerator.d.ts +0 -18
  123. package/lib/vite-wrappers/loaderGenerator.js.map +0 -1
  124. /package/lib/{vite-wrappers/loaderGenerator.test.d.ts → rollup/modifyLibFiles/handleComponentOrDialog.test.d.ts} +0 -0
@@ -0,0 +1,197 @@
1
+ 'use strict';var lodashEs=require('lodash-es'),generateHasPermission=require('./generateHasPermission.cjs'),generateHasConfiguration=require('./generateHasConfiguration.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 = value.includes('queryParamsGenerator_')
19
+ ? `queryGeneratorFunc({...params, _dataContext}).${value.split('queryParamsGenerator_')[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
+ };
41
+ function generateLoaderReturnLogic(options) {
42
+ if (options.loaderReturnInfo?.keys?.length > 0) {
43
+ // Create deferred objects by directly assigning each key to its corresponding index in loaderData
44
+ const deferredAssignments = options.loaderReturnInfo?.keys
45
+ .map((key, index) => ` returnObject['${key}'] = loaderData[${index}];`)
46
+ .join('\n ');
47
+ return `
48
+ const returnObject = {};
49
+ if (hasPermissions) {
50
+ ${deferredAssignments}
51
+ }
52
+ `;
53
+ }
54
+ return '';
55
+ }
56
+ /**
57
+ * if loaderReturnInfo.keys is empty and hasMiddleware is false, return loaderData otherwise
58
+ * if loaderReturnInfo.keys is not empty, return an object with the keys and values from loaderData wrapped with the loaderReturnInfo.returnType.
59
+ * 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.
60
+ * Also if we have the options.queries object, include the defaultLoaderData in the object.
61
+ * If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
62
+ * if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
63
+ * if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
64
+ *
65
+ * Generates the return statement based on loader, middleware, and options configurations.
66
+ * Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
67
+ *
68
+ * @param options - Configuration options containing loader info and queries.
69
+ * @param hasMiddleware - A boolean flag indicating if middleware is being applied.
70
+ * @returns The return statement string for the loader function.
71
+ */
72
+ function generateReturnStatement(options, hasMiddleware) {
73
+ const { loaderReturnInfo, isResourceRoute, queries, hasLoader } = options;
74
+ const hasQueries = Object.keys(queries ?? {}).length > 0;
75
+ let responseKey = '';
76
+ if (isResourceRoute) {
77
+ responseKey = 'json';
78
+ }
79
+ else if (loaderReturnInfo?.keys?.length > 0 || hasQueries) {
80
+ responseKey = 'defer';
81
+ }
82
+ else {
83
+ responseKey = loaderReturnInfo?.returnType || '';
84
+ }
85
+ const defaultLoaderData = hasQueries ? 'defaultLoaderData' : '{}';
86
+ const middlewareData = hasMiddleware ? '{ permissions, dataContext: rest, configurations }' : '{}';
87
+ const respondOptions = loaderReturnInfo?.hasOptions ? 'respondOptions' : '';
88
+ if (loaderReturnInfo?.keys?.length > 0) {
89
+ return `return ${responseKey}({
90
+ ...returnObject,
91
+ ...${defaultLoaderData},
92
+ ...${middlewareData},
93
+ errors: loaderErrors
94
+ }${respondOptions ? `, ${respondOptions}` : ''});`;
95
+ }
96
+ if (hasLoader && !hasMiddleware && !hasQueries) {
97
+ return 'return loaderData;';
98
+ }
99
+ const loaderDataSpread = hasLoader ? '...loaderData, ' : '';
100
+ return `return ${responseKey}({
101
+ ${loaderDataSpread}
102
+ ...${defaultLoaderData},
103
+ ...${middlewareData},
104
+ errors: loaderErrors
105
+ }${respondOptions ? `, ${respondOptions}` : ''});`;
106
+ }
107
+ function generateMiddlewarePushes(options) {
108
+ return (options.middlewares ?? [])
109
+ ?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}", func: middleware${index + 1} });`)
110
+ .join('\n');
111
+ }
112
+ /**
113
+ * Generates the export functions for loaders and actions based on the provided options.
114
+ * Handles middleware and permission checks if present.
115
+ *
116
+ * @param options - The configuration options including middleware, queries, etc.
117
+ * @param hasMiddleware - A flag indicating if middleware exists.
118
+ * @param hasQueries - A flag indicating if GraphQL queries are present.
119
+ * @returns The updated export string.
120
+ */
121
+ function generateLoaderExports(options, hasMiddleware = false, hasQueries = false) {
122
+ let loaderExport = '';
123
+ // Generate server-side loader if queries are present
124
+ if (hasQueries) {
125
+ loaderExport += generateServerLoader(options);
126
+ }
127
+ const getMiddlewareOptions = () => {
128
+ if (options.requireAuth) {
129
+ const val = typeof options.authStrategy === 'boolean' ? options.authStrategy : `'${options.authStrategy}'`;
130
+ return `{authStrategy: ${val}}`;
131
+ }
132
+ return '{}';
133
+ };
134
+ const { configurations, extraParams } = options;
135
+ loaderExport += `
136
+ export async function loader(params) {
137
+ ${hasMiddleware ? 'const middlewareStack = [];' : ''}
138
+ const middlewareOptions = ${getMiddlewareOptions()}
139
+ ${options.requireAuth ? 'middlewareStack.push({ name: "auth", func: authMiddleware });' : ''}
140
+ ${generateMiddlewarePushes(options)}
141
+ ${options.authority?.length > 0 || options.extraPermissions?.length > 0
142
+ ? 'middlewareStack.push({ name: "lifecycle", func: lifecycleMiddleware });\n'
143
+ : ''}
144
+ ${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permission", func: permissionMiddleware });\n' : ''}
145
+ ${options.configurations.length > 0 ? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n' : ''}
146
+
147
+ // Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
148
+ const resourceParams = ${options.configurations?.length > 0
149
+ ? `
150
+ resolveResourceParamsPlaceholders(
151
+ ${JSON.stringify(options.extraParams?.resourceParams ?? {})},
152
+ params.params || {}
153
+ )`
154
+ : '{}'};
155
+
156
+
157
+ const paramsWithResource = {
158
+ ...params,
159
+ resourceParams,
160
+ configurations: ${JSON.stringify(configurations ?? [])},
161
+ };
162
+ ${hasMiddleware
163
+ ? 'let middlewareData = {};\n' +
164
+ ' if (middlewareStack.length > 0) {\n' +
165
+ ' middlewareData = await loaderWithMiddleware({...paramsWithResource}, middlewareOptions, middlewareStack) || {};\n' +
166
+ ' }\n' +
167
+ ' let { permissions = null, configurations = null, ...rest } = middlewareData;\n'
168
+ : ''}
169
+ let hasPermissions = true;
170
+ let loaderErrors = [];
171
+ ${generateHasPermission.generateHasPermission(options)}
172
+ ${generateHasConfiguration.generateConfigurationLogic(options)}
173
+ const paramsWithMiddlewareData = ${hasMiddleware ? `{ ...params, _dataContext: middlewareData }` : '{ ...params }'};
174
+
175
+ const defaultLoaderResult = ${hasQueries
176
+ ? `hasPermissions ? await withErrorHandler(defaultServerLoader, paramsWithMiddlewareData) : { data: {}, errors: [] };\n
177
+ loaderErrors = defaultLoaderResult.errors`
178
+ : '{ data: {}, errors: [] }'};
179
+ const defaultLoaderData = defaultLoaderResult.data;
180
+ ${options.requireAuth
181
+ ? 'if (middlewareData.userId) { params.context = params.context || {}; params.context.userId = middlewareData.userId; }\n'
182
+ : ''}
183
+ ${options.hasLoader && options.loaderReturnInfo?.keys?.length > 0
184
+ ? `let loaderResult = hasPermissions && await withErrorHandler(loaderFunc, params) || { data: [], errors: [] };\n
185
+ let loaderData = loaderResult.data || [];\n
186
+ loaderErrors = loaderResult?.errors;\n
187
+ ${options.loaderReturnInfo.hasOptions ? 'let respondOptions = loaderResult.options || null;' : ''}`
188
+ : options.hasLoader
189
+ ? `let loaderData = hasPermissions && await withErrorHandler(loaderFunc, params) || { data: [], errors: [] };\n
190
+ loaderErrors = loaderData?.errors;\n`
191
+ : ''}
192
+
193
+ ${generateLoaderReturnLogic(options)}
194
+ ${generateReturnStatement(options, hasMiddleware)}
195
+ }`;
196
+ return loaderExport;
197
+ }exports.generateLoaderExports=generateLoaderExports;exports.generateReturnStatement=generateReturnStatement;exports.generateServerLoader=generateServerLoader;//# sourceMappingURL=loaderGenerator.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loaderGenerator.cjs","sources":["../../../src/vite-wrappers/generators/loaderGenerator.ts"],"sourcesContent":[null],"names":["camelCase","generateHasPermission","generateConfigurationLogic"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { IOptions } from '../../interfaces/types';
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: IOptions): IOptions;
10
+ /**
11
+ * Generates the server-side loader function for handling GraphQL queries.
12
+ * It creates the default server loader for fetching data based on provided queries in the options.
13
+ *
14
+ * @param queries - The list of queries to be used for data fetching.
15
+ * @returns The generated server loader function string.
16
+ */
17
+ export declare const generateServerLoader: ({ queries }: Pick<IOptions, "queries">) => string;
18
+ /**
19
+ * if loaderReturnInfo.keys is empty and hasMiddleware is false, return loaderData otherwise
20
+ * if loaderReturnInfo.keys is not empty, return an object with the keys and values from loaderData wrapped with the loaderReturnInfo.returnType.
21
+ * 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.
22
+ * Also if we have the options.queries object, include the defaultLoaderData in the object.
23
+ * If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
24
+ * if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
25
+ * if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
26
+ *
27
+ * Generates the return statement based on loader, middleware, and options configurations.
28
+ * Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
29
+ *
30
+ * @param options - Configuration options containing loader info and queries.
31
+ * @param hasMiddleware - A boolean flag indicating if middleware is being applied.
32
+ * @returns The return statement string for the loader function.
33
+ */
34
+ export declare function generateReturnStatement(options: IOptions, hasMiddleware: boolean): string;
35
+ /**
36
+ * Generates the export functions for loaders and actions based on the provided options.
37
+ * Handles middleware and permission checks if present.
38
+ *
39
+ * @param options - The configuration options including middleware, queries, etc.
40
+ * @param hasMiddleware - A flag indicating if middleware exists.
41
+ * @param hasQueries - A flag indicating if GraphQL queries are present.
42
+ * @returns The updated export string.
43
+ */
44
+ export declare function generateLoaderExports(options: IOptions, hasMiddleware?: boolean, hasQueries?: boolean): string;
@@ -1,14 +1,22 @@
1
- import {camelCase}from'lodash-es';const generateDeferKey = (key) => camelCase(key.replace('Get', '')).replace('Document', 'Query');
1
+ import {camelCase}from'lodash-es';import {generateHasPermission}from'./generateHasPermission.js';import {generateConfigurationLogic}from'./generateHasConfiguration.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
+ */
2
10
  const generateServerLoader = ({ queries }) => {
3
11
  if (Object.keys(queries ?? {}).length === 0) {
4
12
  return '';
5
13
  }
6
14
  return `
7
- export const defaultServerLoader = async ({ context, params }) => {
15
+ export const defaultServerLoader = async ({ context, params, _dataContext = {} }) => {
8
16
  const { apolloClient: client } = context;
9
17
  const queries = ${Object.entries(queries).reduce((acc, [key, value], index) => {
10
18
  const formattedValue = value.includes('queryParamsGenerator_')
11
- ? `queryGeneratorFunc(params).${value.split('queryParamsGenerator_')[1]}`
19
+ ? `queryGeneratorFunc({...params, _dataContext}).${value.split('queryParamsGenerator_')[1]}`
12
20
  : value;
13
21
  return `${acc}${key}:${formattedValue}${index + 1 === Object.keys(queries).length ? '}' : ','}`;
14
22
  }, '{')};
@@ -53,13 +61,27 @@ ${deferredAssignments}
53
61
  * If options.queries is not empty, return an object with wrapped with `defer`. Include middleware if it exists. Include respondOptions if it exists.
54
62
  * if loaderReturnInfo.keys is empty and hasMiddleware is true or false, but has options.queries objects then return defaultLoaderData
55
63
  * if its a resource route and isResourceRoute is true then return an object with the keys and values from loaderData wrapped around `json`.
56
- * @param options
57
- * @returns
64
+ *
65
+ * Generates the return statement based on loader, middleware, and options configurations.
66
+ * Handles whether to wrap data with `defer`, `json`, or just return raw data based on options.
67
+ *
68
+ * @param options - Configuration options containing loader info and queries.
69
+ * @param hasMiddleware - A boolean flag indicating if middleware is being applied.
70
+ * @returns The return statement string for the loader function.
58
71
  */
59
72
  function generateReturnStatement(options, hasMiddleware) {
60
73
  const { loaderReturnInfo, isResourceRoute, queries, hasLoader } = options;
61
74
  const hasQueries = Object.keys(queries ?? {}).length > 0;
62
- const responseKey = isResourceRoute ? 'json' : loaderReturnInfo?.keys?.length > 0 || hasQueries ? 'defer' : loaderReturnInfo?.returnType || '';
75
+ let responseKey = '';
76
+ if (isResourceRoute) {
77
+ responseKey = 'json';
78
+ }
79
+ else if (loaderReturnInfo?.keys?.length > 0 || hasQueries) {
80
+ responseKey = 'defer';
81
+ }
82
+ else {
83
+ responseKey = loaderReturnInfo?.returnType || '';
84
+ }
63
85
  const defaultLoaderData = hasQueries ? 'defaultLoaderData' : '{}';
64
86
  const middlewareData = hasMiddleware ? '{ permissions, dataContext: rest, configurations }' : '{}';
65
87
  const respondOptions = loaderReturnInfo?.hasOptions ? 'respondOptions' : '';
@@ -87,33 +109,20 @@ function generateMiddlewarePushes(options) {
87
109
  ?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}", func: middleware${index + 1} });`)
88
110
  .join('\n');
89
111
  }
90
- function generateHasPermission(options, isClient = false) {
91
- const hasLoader = isClient ? options.hasClientLoader : options.hasLoader;
92
- let generates = '';
93
- if (options.authority?.length > 0 || options.extraPermissions?.length > 0) {
94
- generates = `
95
- if (permissions !== null) {
96
- // Filter permissions based on authority keys
97
- const permissionKeys = ${JSON.stringify(options.authority)} || [];
98
- let extraPermissions = ${JSON.stringify(options.extraPermissions)} || [];
99
- extraPermissions = permissionKeys.concat(extraPermissions);
100
- permissions = {
101
- resolveConfiguration: pick(permissions?.resolveConfiguration, extraPermissions)
102
- };
103
- `;
104
- if (hasLoader) {
105
- generates += `
106
- hasPermissions = permissionKeys.some(key => ['Allow'].includes(get(permissions.resolveConfiguration, key)));
107
- `;
108
- }
109
- generates += `}`;
110
- }
111
- return generates;
112
- }
113
- function generateLoaderExports(sourceExport = '', options, hasMiddleware = false, hasQueries = false) {
112
+ /**
113
+ * Generates the export functions for loaders and actions based on the provided options.
114
+ * Handles middleware and permission checks if present.
115
+ *
116
+ * @param options - The configuration options including middleware, queries, etc.
117
+ * @param hasMiddleware - A flag indicating if middleware exists.
118
+ * @param hasQueries - A flag indicating if GraphQL queries are present.
119
+ * @returns The updated export string.
120
+ */
121
+ function generateLoaderExports(options, hasMiddleware = false, hasQueries = false) {
122
+ let loaderExport = '';
123
+ // Generate server-side loader if queries are present
114
124
  if (hasQueries) {
115
- sourceExport += generateServerLoader(options);
116
- // options = internalOptions(options); // Mutating the options object to add the loaderReturnInfo object
125
+ loaderExport += generateServerLoader(options);
117
126
  }
118
127
  const getMiddlewareOptions = () => {
119
128
  if (options.requireAuth) {
@@ -122,32 +131,51 @@ function generateLoaderExports(sourceExport = '', options, hasMiddleware = false
122
131
  }
123
132
  return '{}';
124
133
  };
125
- const { resourceUri, configurations } = options;
126
- sourceExport += `
134
+ const { configurations, extraParams } = options;
135
+ loaderExport += `
127
136
  export async function loader(params) {
128
137
  ${hasMiddleware ? 'const middlewareStack = [];' : ''}
129
138
  const middlewareOptions = ${getMiddlewareOptions()}
130
139
  ${options.requireAuth ? 'middlewareStack.push({ name: "auth", func: authMiddleware });' : ''}
131
140
  ${generateMiddlewarePushes(options)}
132
- ${(options.authority?.length > 0 || options.extraPermissions?.length > 0) ?
133
- 'middlewareStack.push({ name: "lifecycle", func: lifecycleMiddleware });\n' : ''}
134
- ${options.authority?.length > 0 ? 'middlewareStack.push({ name: "permission", func: permissionMiddleware });\n' : ''}
135
- ${options.resourceUri ? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n' : ''}
136
- const paramsFromOptions = ${options.resourceUri
137
- ? `{ resourceUri: '${resourceUri}', configurations: ${JSON.stringify(configurations ?? [])} }\n`
138
- : '{}'};
141
+ ${options.authority?.length > 0 || options.extraPermissions?.length > 0
142
+ ? 'middlewareStack.push({ name: "lifecycle", func: lifecycleMiddleware });\n'
143
+ : ''}
144
+ ${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permission", func: permissionMiddleware });\n' : ''}
145
+ ${options.configurations.length > 0 ? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n' : ''}
146
+
147
+ // Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
148
+ const resourceParams = ${options.configurations?.length > 0
149
+ ? `
150
+ resolveResourceParamsPlaceholders(
151
+ ${JSON.stringify(options.extraParams?.resourceParams ?? {})},
152
+ params.params || {}
153
+ )`
154
+ : '{}'};
155
+
156
+
157
+ const paramsWithResource = {
158
+ ...params,
159
+ resourceParams,
160
+ configurations: ${JSON.stringify(configurations ?? [])},
161
+ };
139
162
  ${hasMiddleware
140
163
  ? 'let middlewareData = {};\n' +
141
164
  ' if (middlewareStack.length > 0) {\n' +
142
- ' middlewareData = await loaderWithMiddleware({...paramsFromOptions, ...params}, middlewareOptions, middlewareStack) || {};\n' +
165
+ ' middlewareData = await loaderWithMiddleware({...paramsWithResource}, middlewareOptions, middlewareStack) || {};\n' +
143
166
  ' }\n' +
144
167
  ' let { permissions = null, configurations = null, ...rest } = middlewareData;\n'
145
168
  : ''}
146
169
  let hasPermissions = true;
147
170
  let loaderErrors = [];
148
171
  ${generateHasPermission(options)}
149
- const defaultLoaderResult = ${hasQueries ? `hasPermissions ? await withErrorHandler(defaultServerLoader, params) : { data: {}, errors: [] };\n
150
- loaderErrors = defaultLoaderResult.errors` : '{ data: {}, errors: [] }'};
172
+ ${generateConfigurationLogic(options)}
173
+ const paramsWithMiddlewareData = ${hasMiddleware ? `{ ...params, _dataContext: middlewareData }` : '{ ...params }'};
174
+
175
+ const defaultLoaderResult = ${hasQueries
176
+ ? `hasPermissions ? await withErrorHandler(defaultServerLoader, paramsWithMiddlewareData) : { data: {}, errors: [] };\n
177
+ loaderErrors = defaultLoaderResult.errors`
178
+ : '{ data: {}, errors: [] }'};
151
179
  const defaultLoaderData = defaultLoaderResult.data;
152
180
  ${options.requireAuth
153
181
  ? 'if (middlewareData.userId) { params.context = params.context || {}; params.context.userId = middlewareData.userId; }\n'
@@ -161,85 +189,9 @@ function generateLoaderExports(sourceExport = '', options, hasMiddleware = false
161
189
  ? `let loaderData = hasPermissions && await withErrorHandler(loaderFunc, params) || { data: [], errors: [] };\n
162
190
  loaderErrors = loaderData?.errors;\n`
163
191
  : ''}
164
-
165
192
 
166
193
  ${generateLoaderReturnLogic(options)}
167
194
  ${generateReturnStatement(options, hasMiddleware)}
168
195
  }`;
169
- return sourceExport;
170
- }
171
- const generateClientLoader = ({ queries }) => {
172
- if (Object.keys(queries ?? {}).length === 0) {
173
- return '';
174
- }
175
- return `
176
- const defaultClientLoader = async ({params, serverLoader})=>{
177
- const client = window.__CLIENT_SERVICE__?.apolloClient;
178
- const container = window.__CLIENT_SERVICE__?.container
179
-
180
- try {
181
- const getKey = (documentName:string)=> camelCase(documentName).replace('Document','')
182
-
183
-
184
- const queries = ${Object.entries(queries).reduce((acc, [key, value], index) => {
185
- const formattedValue = value.includes('queryParamsGenerator_')
186
- ? `queryGeneratorFunc(params).${value.split('queryParamsGenerator_')[1]}`
187
- : value;
188
- return `${acc}${key}:${formattedValue}${index + 1 === Object.keys(queries).length ? '}' : ','}`;
189
- }, '{')};
190
-
191
- const queryKeys: string[] = [${Object.keys(queries)
192
- .map((key) => camelCase(key.replace('Get', '')).replace('Document', 'Query'))
193
- .map((key) => `'${key}'`)}]
194
- let shouldCallServerLoader = false;
195
- let response = {};
196
- let cachedData, cacheKey;
197
- ${Object.keys(queries)
198
- .map((queryDoc, index) => `
199
- cachedData = client.cache.readQuery({
200
- query: ${queryDoc},
201
- variables: queries['${queryDoc}'],
202
- });
203
- cacheKey = getKey('${queryDoc}');
204
- if(!cachedData){
205
- shouldCallServerLoader = true;
206
- }
207
- if(cachedData && cachedData[cacheKey]){
208
- response[queryKeys[${index}]] = Promise.resolve(cachedData[cacheKey]);
209
- }
210
- `)
211
- .join('')}
212
- if(!shouldCallServerLoader) return response;
213
- const serverData = await serverLoader();
214
-
215
- if(serverData?.errors?.length){
216
- const store = container.get(ClientTypes.ReduxStore)
217
-
218
- serverData?.errors?.map((error)=>{
219
- store.dispatch(error)
220
- })
221
- }
222
-
223
- let queryKey;
224
- ${Object.keys(queries)
225
- .map((queryDoc, index) => `
226
- queryKey = queryKeys[${index}];
227
- if(!serverData[queryKey].then){
228
- return;
229
- }
230
- serverData[queryKey].then(({ data }) => {
231
- client.cache.writeQuery({
232
- query: ${queryDoc},
233
- variables: queries['${queryDoc}'],
234
- data,
235
- })
236
- })
237
- `)
238
- .join('')}
239
- return serverData;
240
-
241
- }catch(err){
242
- console.error('Error in defaultClientLoader',err);
243
- }
244
- }`;
245
- };export{generateClientLoader,generateHasPermission,generateLoaderExports,generateReturnStatement,generateServerLoader};//# sourceMappingURL=loaderGenerator.js.map
196
+ return loaderExport;
197
+ }export{generateLoaderExports,generateReturnStatement,generateServerLoader};//# 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,16 @@
1
+ 'use strict';var lodashEs=require('lodash-es');// src/utils/loaderUtils.ts
2
+ /**
3
+ * Picks specific keys from the provided object.
4
+ * Ensures that only the relevant values are returned for further processing.
5
+ * If the `keys` include `'*'`, all values will be returned.
6
+ *
7
+ * @param valuesObject - The object (configurations or permissions) to pick values from.
8
+ * @param keys - The keys to pick from the object.
9
+ * @returns The picked object or all values if `'*'` is included.
10
+ */
11
+ function pickValues(valuesObject, keys) {
12
+ // Return all values if '*' is present in the keys array
13
+ return keys.includes('*')
14
+ ? valuesObject?.resolveConfiguration // Return the entire value set if '*' is present
15
+ : lodashEs.pick(valuesObject?.resolveConfiguration, keys);
16
+ }exports.pickValues=pickValues;//# sourceMappingURL=pickConfig.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickConfig.cjs","sources":["../../../../src/vite-wrappers/generators/utils/pickConfig.ts"],"sourcesContent":[null],"names":["pick"],"mappings":"+CAAA;AAIA;;;;;;;;AAQG;AACa,SAAA,UAAU,CAAC,YAAiB,EAAE,IAAc,EAAA;;AAExD,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrB,UAAE,YAAY,EAAE,oBAAoB;UAClCA,aAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACzD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Picks specific keys from the provided object.
3
+ * Ensures that only the relevant values are returned for further processing.
4
+ * If the `keys` include `'*'`, all values will be returned.
5
+ *
6
+ * @param valuesObject - The object (configurations or permissions) to pick values from.
7
+ * @param keys - The keys to pick from the object.
8
+ * @returns The picked object or all values if `'*'` is included.
9
+ */
10
+ export declare function pickValues(valuesObject: any, keys: string[]): any;
@@ -0,0 +1,16 @@
1
+ import {pick}from'lodash-es';// src/utils/loaderUtils.ts
2
+ /**
3
+ * Picks specific keys from the provided object.
4
+ * Ensures that only the relevant values are returned for further processing.
5
+ * If the `keys` include `'*'`, all values will be returned.
6
+ *
7
+ * @param valuesObject - The object (configurations or permissions) to pick values from.
8
+ * @param keys - The keys to pick from the object.
9
+ * @returns The picked object or all values if `'*'` is included.
10
+ */
11
+ function pickValues(valuesObject, keys) {
12
+ // Return all values if '*' is present in the keys array
13
+ return keys.includes('*')
14
+ ? valuesObject?.resolveConfiguration // Return the entire value set if '*' is present
15
+ : pick(valuesObject?.resolveConfiguration, keys);
16
+ }export{pickValues};//# sourceMappingURL=pickConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickConfig.js","sources":["../../../../src/vite-wrappers/generators/utils/pickConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"6BAAA;AAIA;;;;;;;;AAQG;AACa,SAAA,UAAU,CAAC,YAAiB,EAAE,IAAc,EAAA;;AAExD,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrB,UAAE,YAAY,EAAE,oBAAoB;UAClC,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACzD"}
@@ -0,0 +1,36 @@
1
+ 'use strict';/**
2
+ * Recursively process the resourceParams object and replace any placeholder values starting with `$params.`.
3
+ * If the `path` is empty or matches `IConfigCollectionName.Organization`, ensure it provides a default query
4
+ * with `{ name: $params.orgName }`.
5
+ *
6
+ * @param resourceParams - The nested resourceParams object containing placeholders.
7
+ * @param params - The params object from which values are extracted.
8
+ * @param defaultPath - Optional default path to be assigned when `path` is empty or a specific condition is met.
9
+ * @returns The processed resourceParams object with replaced values.
10
+ */
11
+ function resolveResourceParamsPlaceholders(resourceParams, params, defaultPath = 'IConfigCollectionName.Organization') {
12
+ if (!resourceParams || typeof resourceParams !== 'object')
13
+ return resourceParams;
14
+ const resolvedParams = {};
15
+ Object.entries(resourceParams).forEach(([key, value]) => {
16
+ if (typeof value === 'string' && value.startsWith('$params.')) {
17
+ // Replace placeholder with actual value from params
18
+ const paramKey = value.split('$params.')[1];
19
+ resolvedParams[key] = params[paramKey];
20
+ }
21
+ else if (typeof value === 'object' && value !== null) {
22
+ // Recursively resolve nested objects
23
+ resolvedParams[key] = resolveResourceParamsPlaceholders(value, params, defaultPath);
24
+ }
25
+ else {
26
+ // Direct assignment for other values
27
+ resolvedParams[key] = value;
28
+ }
29
+ });
30
+ // If the path is missing or matches `IConfigCollectionName.Organization`, ensure query is set
31
+ if (!resolvedParams.path || resolvedParams.path === defaultPath) {
32
+ resolvedParams.path = defaultPath;
33
+ resolvedParams.query = { name: params.orgName }; // Assuming `orgName` exists in params
34
+ }
35
+ return resolvedParams;
36
+ }exports.resolveResourceParamsPlaceholders=resolveResourceParamsPlaceholders;//# sourceMappingURL=resourceParams.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceParams.cjs","sources":["../../../../src/vite-wrappers/generators/utils/resourceParams.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAA;;;;;;;;;AASG;AACG,SAAU,iCAAiC,CAC7C,cAAmC,EACnC,MAA2B,EAC3B,cAAsB,oCAAoC,EAAA;AAE1D,IAAA,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ;AAAE,QAAA,OAAO,cAAc,CAAC;IAEjF,MAAM,cAAc,GAAwB,EAAE,CAAC;AAE/C,IAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACpD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;;YAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC1C;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;;AAEpD,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;SACvF;aAAM;;AAEH,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC/B;AACL,KAAC,CAAC,CAAC;;IAGH,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE;AAC7D,QAAA,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC;AAClC,QAAA,cAAc,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACnD;AAED,IAAA,OAAO,cAAc,CAAC;AAC1B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Recursively process the resourceParams object and replace any placeholder values starting with `$params.`.
3
+ * If the `path` is empty or matches `IConfigCollectionName.Organization`, ensure it provides a default query
4
+ * with `{ name: $params.orgName }`.
5
+ *
6
+ * @param resourceParams - The nested resourceParams object containing placeholders.
7
+ * @param params - The params object from which values are extracted.
8
+ * @param defaultPath - Optional default path to be assigned when `path` is empty or a specific condition is met.
9
+ * @returns The processed resourceParams object with replaced values.
10
+ */
11
+ export declare function resolveResourceParamsPlaceholders(resourceParams: Record<string, any>, params: Record<string, any>, defaultPath?: string): Record<string, any>;