@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.
Files changed (177) 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/constants/constants.cjs +2 -1
  6. package/lib/constants/constants.cjs.map +1 -1
  7. package/lib/constants/constants.d.ts +1 -0
  8. package/lib/constants/constants.js +2 -1
  9. package/lib/constants/constants.js.map +1 -1
  10. package/lib/default-config.json.cjs +42 -4
  11. package/lib/default-config.json.cjs.map +1 -1
  12. package/lib/default-config.json.js +42 -4
  13. package/lib/default-config.json.js.map +1 -1
  14. package/lib/index.cjs +1 -1
  15. package/lib/index.d.ts +0 -1
  16. package/lib/index.js +1 -1
  17. package/lib/interfaces/rollup.d.ts +1 -0
  18. package/lib/preStartup/configLoader/configLoader.cjs +38 -6
  19. package/lib/preStartup/configLoader/configLoader.cjs.map +1 -1
  20. package/lib/preStartup/configLoader/configLoader.d.ts +3 -3
  21. package/lib/preStartup/configLoader/configLoader.js +38 -6
  22. package/lib/preStartup/configLoader/configLoader.js.map +1 -1
  23. package/lib/preStartup/configLoader/index.cjs +1 -1
  24. package/lib/preStartup/configLoader/index.cjs.map +1 -1
  25. package/lib/preStartup/configLoader/index.js +1 -1
  26. package/lib/preStartup/configLoader/index.js.map +1 -1
  27. package/lib/preStartup/copyIfVersionChanged.cjs +8 -2
  28. package/lib/preStartup/copyIfVersionChanged.cjs.map +1 -1
  29. package/lib/preStartup/copyIfVersionChanged.js +8 -2
  30. package/lib/preStartup/copyIfVersionChanged.js.map +1 -1
  31. package/lib/rollup/index.d.ts +1 -0
  32. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs +39 -10
  33. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.cjs.map +1 -1
  34. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js +39 -10
  35. package/lib/rollup/modifyLibFiles/extractGraphQLQueries.js.map +1 -1
  36. package/lib/rollup/modifyLibFiles/fixtures/compute1/TestComponent.d.ts +6 -0
  37. package/lib/rollup/modifyLibFiles/fixtures/compute1/TestDeferComponent.d.ts +10 -0
  38. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs +214 -141
  39. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.cjs.map +1 -1
  40. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.d.ts +21 -0
  41. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js +214 -141
  42. package/lib/rollup/modifyLibFiles/handleComponentOrDialog.js.map +1 -1
  43. package/lib/rollup/modifyLibFiles/handleImportPaths.cjs +24 -0
  44. package/lib/rollup/modifyLibFiles/handleImportPaths.cjs.map +1 -0
  45. package/lib/rollup/modifyLibFiles/handleImportPaths.d.ts +3 -0
  46. package/lib/rollup/modifyLibFiles/handleImportPaths.js +24 -0
  47. package/lib/rollup/modifyLibFiles/handleImportPaths.js.map +1 -0
  48. package/lib/rollup/modifyLibFiles/handleLoaderReturn.cjs +86 -0
  49. package/lib/rollup/modifyLibFiles/handleLoaderReturn.cjs.map +1 -0
  50. package/lib/rollup/modifyLibFiles/handleLoaderReturn.d.ts +11 -0
  51. package/lib/rollup/modifyLibFiles/handleLoaderReturn.js +86 -0
  52. package/lib/rollup/modifyLibFiles/handleLoaderReturn.js.map +1 -0
  53. package/lib/rollup/modifyLibFiles/handleLoaderReturn.test.d.ts +1 -0
  54. package/lib/rollup/modifyLibFiles/utils.cjs +7 -7
  55. package/lib/rollup/modifyLibFiles/utils.cjs.map +1 -1
  56. package/lib/rollup/modifyLibFiles/utils.d.ts +1 -1
  57. package/lib/rollup/modifyLibFiles/utils.js +7 -7
  58. package/lib/rollup/modifyLibFiles/utils.js.map +1 -1
  59. package/lib/rollup/rollupPluginGenerateJson.cjs +2 -3
  60. package/lib/rollup/rollupPluginGenerateJson.cjs.map +1 -1
  61. package/lib/rollup/rollupPluginGenerateJson.js +2 -3
  62. package/lib/rollup/rollupPluginGenerateJson.js.map +1 -1
  63. package/lib/rollup/rollupPluginModifyLibFiles.cjs +25 -11
  64. package/lib/rollup/rollupPluginModifyLibFiles.cjs.map +1 -1
  65. package/lib/rollup/rollupPluginModifyLibFiles.js +25 -11
  66. package/lib/rollup/rollupPluginModifyLibFiles.js.map +1 -1
  67. package/lib/rollup/rollupPluginModifyLibFiles.test.d.ts +1 -0
  68. package/lib/rollup/rollupPluginUpdateFromConfig.cjs +122 -0
  69. package/lib/rollup/rollupPluginUpdateFromConfig.cjs.map +1 -0
  70. package/lib/rollup/rollupPluginUpdateFromConfig.d.ts +1 -0
  71. package/lib/rollup/rollupPluginUpdateFromConfig.js +122 -0
  72. package/lib/rollup/rollupPluginUpdateFromConfig.js.map +1 -0
  73. package/lib/utils/deepMerge.cjs +61 -0
  74. package/lib/utils/deepMerge.cjs.map +1 -0
  75. package/lib/utils/deepMerge.d.ts +1 -0
  76. package/lib/utils/deepMerge.js +61 -0
  77. package/lib/utils/deepMerge.js.map +1 -0
  78. package/lib/utils/getAllCDECodeConfig.cjs +18 -0
  79. package/lib/utils/getAllCDECodeConfig.cjs.map +1 -0
  80. package/lib/utils/getAllCDECodeConfig.d.ts +1 -0
  81. package/lib/utils/getAllCDECodeConfig.js +18 -0
  82. package/lib/utils/getAllCDECodeConfig.js.map +1 -0
  83. package/lib/utils/index.d.ts +1 -0
  84. package/lib/utils/parseUtility.d.ts +3 -0
  85. package/lib/utils/setupConfig.cjs +6 -65
  86. package/lib/utils/setupConfig.cjs.map +1 -1
  87. package/lib/utils/setupConfig.d.ts +1 -2
  88. package/lib/utils/setupConfig.js +6 -65
  89. package/lib/utils/setupConfig.js.map +1 -1
  90. package/lib/utils/utils.cjs +29 -1
  91. package/lib/utils/utils.cjs.map +1 -1
  92. package/lib/utils/utils.d.ts +1 -0
  93. package/lib/utils/utils.js +29 -1
  94. package/lib/utils/utils.js.map +1 -1
  95. package/lib/utils/verifyConfig.cjs +13 -0
  96. package/lib/utils/verifyConfig.cjs.map +1 -0
  97. package/lib/utils/verifyConfig.d.ts +2 -0
  98. package/lib/utils/verifyConfig.js +13 -0
  99. package/lib/utils/verifyConfig.js.map +1 -0
  100. package/lib/utils/withErrorHandleUtil.cjs +3 -7
  101. package/lib/utils/withErrorHandleUtil.cjs.map +1 -1
  102. package/lib/utils/withErrorHandleUtil.js +3 -7
  103. package/lib/utils/withErrorHandleUtil.js.map +1 -1
  104. package/lib/vite-wrappers/custom-routes.cjs +44 -0
  105. package/lib/vite-wrappers/custom-routes.cjs.map +1 -0
  106. package/lib/vite-wrappers/custom-routes.d.ts +2 -0
  107. package/lib/vite-wrappers/custom-routes.js +44 -0
  108. package/lib/vite-wrappers/custom-routes.js.map +1 -0
  109. package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs +159 -0
  110. package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs.map +1 -0
  111. package/lib/vite-wrappers/generators/clientLoaderGenerator.d.ts +17 -0
  112. package/lib/vite-wrappers/generators/clientLoaderGenerator.js +159 -0
  113. package/lib/vite-wrappers/generators/clientLoaderGenerator.js.map +1 -0
  114. package/lib/vite-wrappers/generators/clientLoaderGenerator.test.d.ts +1 -0
  115. package/lib/vite-wrappers/generators/generateHasConfiguration.cjs +20 -0
  116. package/lib/vite-wrappers/generators/generateHasConfiguration.cjs.map +1 -0
  117. package/lib/vite-wrappers/generators/generateHasConfiguration.d.ts +10 -0
  118. package/lib/vite-wrappers/generators/generateHasConfiguration.js +20 -0
  119. package/lib/vite-wrappers/generators/generateHasConfiguration.js.map +1 -0
  120. package/lib/vite-wrappers/generators/generateHasPermission.cjs +29 -0
  121. package/lib/vite-wrappers/generators/generateHasPermission.cjs.map +1 -0
  122. package/lib/vite-wrappers/generators/generateHasPermission.d.ts +9 -0
  123. package/lib/vite-wrappers/generators/generateHasPermission.js +29 -0
  124. package/lib/vite-wrappers/generators/generateHasPermission.js.map +1 -0
  125. package/lib/vite-wrappers/generators/generateHasPermission.test.d.ts +1 -0
  126. package/lib/vite-wrappers/generators/loaderGenerator.cjs +157 -0
  127. package/lib/vite-wrappers/generators/loaderGenerator.cjs.map +1 -0
  128. package/lib/vite-wrappers/generators/loaderGenerator.d.ts +36 -0
  129. package/lib/vite-wrappers/generators/loaderGenerator.js +157 -0
  130. package/lib/vite-wrappers/generators/loaderGenerator.js.map +1 -0
  131. package/lib/vite-wrappers/generators/loaderGenerator.test.d.ts +1 -0
  132. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.cjs +40 -0
  133. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.cjs.map +1 -0
  134. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.d.ts +10 -0
  135. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.js +40 -0
  136. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.js.map +1 -0
  137. package/lib/vite-wrappers/generators/serverQueryLoaderGenerator.test.d.ts +1 -0
  138. package/lib/vite-wrappers/generators/utils/pickConfig.cjs +15 -0
  139. package/lib/vite-wrappers/generators/utils/pickConfig.cjs.map +1 -0
  140. package/lib/vite-wrappers/generators/utils/pickConfig.d.ts +10 -0
  141. package/lib/vite-wrappers/generators/utils/pickConfig.js +15 -0
  142. package/lib/vite-wrappers/generators/utils/pickConfig.js.map +1 -0
  143. package/lib/vite-wrappers/generators/utils/resourceParams.cjs +58 -0
  144. package/lib/vite-wrappers/generators/utils/resourceParams.cjs.map +1 -0
  145. package/lib/vite-wrappers/generators/utils/resourceParams.d.ts +12 -0
  146. package/lib/vite-wrappers/generators/utils/resourceParams.js +58 -0
  147. package/lib/vite-wrappers/generators/utils/resourceParams.js.map +1 -0
  148. package/lib/vite-wrappers/generators/utils/resourceParams.test.d.ts +1 -0
  149. package/lib/vite-wrappers/helpers/componentReplacement.cjs +12 -0
  150. package/lib/vite-wrappers/helpers/componentReplacement.cjs.map +1 -0
  151. package/lib/vite-wrappers/helpers/componentReplacement.d.ts +2 -0
  152. package/lib/vite-wrappers/helpers/componentReplacement.js +12 -0
  153. package/lib/vite-wrappers/helpers/componentReplacement.js.map +1 -0
  154. package/lib/vite-wrappers/icon-switch.cjs +20 -6
  155. package/lib/vite-wrappers/icon-switch.cjs.map +1 -1
  156. package/lib/vite-wrappers/icon-switch.d.ts +1 -1
  157. package/lib/vite-wrappers/icon-switch.js +20 -6
  158. package/lib/vite-wrappers/icon-switch.js.map +1 -1
  159. package/lib/vite-wrappers/index.d.ts +3 -0
  160. package/lib/vite-wrappers/json-wrappers.cjs +105 -13
  161. package/lib/vite-wrappers/json-wrappers.cjs.map +1 -1
  162. package/lib/vite-wrappers/json-wrappers.d.ts +33 -0
  163. package/lib/vite-wrappers/json-wrappers.js +105 -13
  164. package/lib/vite-wrappers/json-wrappers.js.map +1 -1
  165. package/lib/vite-wrappers/wrapperComponent.cjs +210 -132
  166. package/lib/vite-wrappers/wrapperComponent.cjs.map +1 -1
  167. package/lib/vite-wrappers/wrapperComponent.d.ts +11 -2
  168. package/lib/vite-wrappers/wrapperComponent.js +209 -131
  169. package/lib/vite-wrappers/wrapperComponent.js.map +1 -1
  170. package/package.json +7 -5
  171. package/lib/interfaces/types.d.ts +0 -59
  172. package/lib/vite-wrappers/loaderGenerator.cjs +0 -245
  173. package/lib/vite-wrappers/loaderGenerator.cjs.map +0 -1
  174. package/lib/vite-wrappers/loaderGenerator.d.ts +0 -18
  175. package/lib/vite-wrappers/loaderGenerator.js +0 -245
  176. package/lib/vite-wrappers/loaderGenerator.js.map +0 -1
  177. /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,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,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"}