@postxl/generator 0.74.2 → 1.0.1

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 (189) hide show
  1. package/LICENSE +50 -0
  2. package/README.md +79 -1
  3. package/dist/generator-manager.class.d.ts +59 -0
  4. package/dist/generator-manager.class.js +221 -0
  5. package/dist/generator.class.d.ts +90 -0
  6. package/dist/generator.class.js +32 -0
  7. package/dist/generator.context.d.ts +174 -0
  8. package/dist/generator.context.js +125 -0
  9. package/dist/helpers/branded.types.d.ts +149 -0
  10. package/dist/helpers/branded.types.js +111 -0
  11. package/dist/helpers/config-builder.class.d.ts +27 -0
  12. package/dist/helpers/config-builder.class.js +54 -0
  13. package/dist/helpers/import-generator.class.d.ts +70 -0
  14. package/dist/helpers/import-generator.class.js +166 -0
  15. package/dist/helpers/importable.types.d.ts +52 -0
  16. package/dist/helpers/importable.types.js +15 -0
  17. package/dist/helpers/index-generator.class.d.ts +10 -0
  18. package/dist/helpers/index-generator.class.js +46 -0
  19. package/dist/helpers/index.d.ts +8 -0
  20. package/dist/helpers/index.js +24 -0
  21. package/dist/helpers/package-json.generator.d.ts +56 -0
  22. package/dist/helpers/package-json.generator.js +36 -0
  23. package/dist/helpers/tsconfig.generator.d.ts +1 -0
  24. package/dist/helpers/tsconfig.generator.js +14 -0
  25. package/dist/helpers/verify-context.d.ts +4 -0
  26. package/dist/helpers/verify-context.js +23 -0
  27. package/dist/index.d.ts +5 -0
  28. package/dist/index.js +21 -0
  29. package/dist/utils/checksum.d.ts +10 -0
  30. package/dist/utils/checksum.js +132 -0
  31. package/dist/utils/fs-utils.d.ts +34 -0
  32. package/dist/utils/fs-utils.js +126 -0
  33. package/dist/utils/index.d.ts +10 -0
  34. package/dist/utils/index.js +26 -0
  35. package/dist/utils/jsdoc.d.ts +12 -0
  36. package/dist/utils/jsdoc.js +37 -0
  37. package/dist/utils/lint.d.ts +46 -0
  38. package/dist/utils/lint.js +154 -0
  39. package/dist/utils/lockfile.d.ts +7 -0
  40. package/dist/utils/lockfile.js +80 -0
  41. package/dist/utils/logger.class.d.ts +25 -0
  42. package/dist/utils/logger.class.js +55 -0
  43. package/dist/utils/merge-conflict.d.ts +55 -0
  44. package/dist/utils/merge-conflict.js +264 -0
  45. package/dist/utils/path.d.ts +52 -0
  46. package/dist/utils/path.js +183 -0
  47. package/dist/utils/prettier-config.d.ts +2 -0
  48. package/dist/utils/prettier-config.js +13 -0
  49. package/dist/utils/prettier.d.ts +5 -0
  50. package/dist/utils/prettier.js +67 -0
  51. package/dist/utils/prettier.skiptest.d.ts +1 -0
  52. package/dist/utils/prettier.skiptest.js +22 -0
  53. package/dist/utils/promise.d.ts +2 -0
  54. package/dist/utils/promise.js +10 -0
  55. package/dist/utils/string-functions.d.ts +9 -0
  56. package/dist/utils/string-functions.js +23 -0
  57. package/dist/utils/sync-log-result.d.ts +9 -0
  58. package/dist/utils/sync-log-result.js +90 -0
  59. package/dist/utils/sync.d.ts +143 -0
  60. package/dist/utils/sync.js +325 -0
  61. package/dist/utils/template.d.ts +66 -0
  62. package/dist/utils/template.js +159 -0
  63. package/dist/utils/vfs.class.d.ts +115 -0
  64. package/dist/utils/vfs.class.js +239 -0
  65. package/dist/utils/zip.d.ts +13 -0
  66. package/dist/utils/zip.js +40 -0
  67. package/package.json +57 -34
  68. package/dist/generator.d.ts +0 -13
  69. package/dist/generator.js +0 -455
  70. package/dist/generators/enums/react.generator.d.ts +0 -10
  71. package/dist/generators/enums/react.generator.js +0 -110
  72. package/dist/generators/enums/types.generator.d.ts +0 -10
  73. package/dist/generators/enums/types.generator.js +0 -39
  74. package/dist/generators/indices/data/module.generator.d.ts +0 -9
  75. package/dist/generators/indices/data/module.generator.js +0 -60
  76. package/dist/generators/indices/data/service.generator.d.ts +0 -9
  77. package/dist/generators/indices/data/service.generator.js +0 -249
  78. package/dist/generators/indices/data/types.generator.d.ts +0 -9
  79. package/dist/generators/indices/data/types.generator.js +0 -49
  80. package/dist/generators/indices/dispatcher-service.generator.d.ts +0 -9
  81. package/dist/generators/indices/dispatcher-service.generator.js +0 -107
  82. package/dist/generators/indices/export/class.generator.d.ts +0 -9
  83. package/dist/generators/indices/export/class.generator.js +0 -140
  84. package/dist/generators/indices/export/encoder.generator.d.ts +0 -9
  85. package/dist/generators/indices/export/encoder.generator.js +0 -50
  86. package/dist/generators/indices/import/convert-functions.generator.d.ts +0 -9
  87. package/dist/generators/indices/import/convert-functions.generator.js +0 -509
  88. package/dist/generators/indices/import/decoder.generator.d.ts +0 -9
  89. package/dist/generators/indices/import/decoder.generator.js +0 -40
  90. package/dist/generators/indices/import/service.generator.d.ts +0 -9
  91. package/dist/generators/indices/import/service.generator.js +0 -573
  92. package/dist/generators/indices/import/types.generator.d.ts +0 -9
  93. package/dist/generators/indices/import/types.generator.js +0 -242
  94. package/dist/generators/indices/repositories.generator.d.ts +0 -9
  95. package/dist/generators/indices/repositories.generator.js +0 -25
  96. package/dist/generators/indices/routes.generator.d.ts +0 -9
  97. package/dist/generators/indices/routes.generator.js +0 -29
  98. package/dist/generators/indices/seed-migration.generator.d.ts +0 -9
  99. package/dist/generators/indices/seed-migration.generator.js +0 -36
  100. package/dist/generators/indices/seed-template.generator.d.ts +0 -9
  101. package/dist/generators/indices/seed-template.generator.js +0 -80
  102. package/dist/generators/indices/testids.generator.d.ts +0 -7
  103. package/dist/generators/indices/testids.generator.js +0 -71
  104. package/dist/generators/indices/types.generator.d.ts +0 -10
  105. package/dist/generators/indices/types.generator.js +0 -35
  106. package/dist/generators/indices/update/actiontypes.generator.d.ts +0 -9
  107. package/dist/generators/indices/update/actiontypes.generator.js +0 -49
  108. package/dist/generators/indices/update/module.generator.d.ts +0 -9
  109. package/dist/generators/indices/update/module.generator.js +0 -41
  110. package/dist/generators/indices/update/service.generator.d.ts +0 -9
  111. package/dist/generators/indices/update/service.generator.js +0 -34
  112. package/dist/generators/indices/view/module.generator.d.ts +0 -9
  113. package/dist/generators/indices/view/module.generator.js +0 -39
  114. package/dist/generators/indices/view/service.generator.d.ts +0 -9
  115. package/dist/generators/indices/view/service.generator.js +0 -34
  116. package/dist/generators/models/admin.page.generator.d.ts +0 -7
  117. package/dist/generators/models/admin.page.generator.js +0 -74
  118. package/dist/generators/models/export/encoder.generator.d.ts +0 -9
  119. package/dist/generators/models/export/encoder.generator.js +0 -51
  120. package/dist/generators/models/import/decoder.generator.d.ts +0 -9
  121. package/dist/generators/models/import/decoder.generator.js +0 -148
  122. package/dist/generators/models/react/context.generator.d.ts +0 -9
  123. package/dist/generators/models/react/context.generator.js +0 -71
  124. package/dist/generators/models/react/index.d.ts +0 -10
  125. package/dist/generators/models/react/index.js +0 -31
  126. package/dist/generators/models/react/library.generator.d.ts +0 -10
  127. package/dist/generators/models/react/library.generator.js +0 -94
  128. package/dist/generators/models/react/lookup.generator.d.ts +0 -9
  129. package/dist/generators/models/react/lookup.generator.js +0 -175
  130. package/dist/generators/models/react/modals.generator.d.ts +0 -23
  131. package/dist/generators/models/react/modals.generator.js +0 -710
  132. package/dist/generators/models/repository.generator.d.ts +0 -9
  133. package/dist/generators/models/repository.generator.js +0 -955
  134. package/dist/generators/models/route.generator.d.ts +0 -9
  135. package/dist/generators/models/route.generator.js +0 -92
  136. package/dist/generators/models/seed.generator.d.ts +0 -21
  137. package/dist/generators/models/seed.generator.js +0 -285
  138. package/dist/generators/models/stub.generator.d.ts +0 -9
  139. package/dist/generators/models/stub.generator.js +0 -92
  140. package/dist/generators/models/types.generator.d.ts +0 -9
  141. package/dist/generators/models/types.generator.js +0 -125
  142. package/dist/generators/models/update/service.generator.d.ts +0 -10
  143. package/dist/generators/models/update/service.generator.js +0 -302
  144. package/dist/generators/models/view/service.generator.d.ts +0 -10
  145. package/dist/generators/models/view/service.generator.js +0 -239
  146. package/dist/lib/attributes.d.ts +0 -114
  147. package/dist/lib/attributes.js +0 -2
  148. package/dist/lib/exports.d.ts +0 -45
  149. package/dist/lib/exports.js +0 -90
  150. package/dist/lib/imports.d.ts +0 -65
  151. package/dist/lib/imports.js +0 -114
  152. package/dist/lib/meta.d.ts +0 -1191
  153. package/dist/lib/meta.js +0 -434
  154. package/dist/lib/schema/fields.d.ts +0 -46
  155. package/dist/lib/schema/fields.js +0 -62
  156. package/dist/lib/schema/schema.d.ts +0 -466
  157. package/dist/lib/schema/schema.js +0 -18
  158. package/dist/lib/schema/types.d.ts +0 -201
  159. package/dist/lib/schema/types.js +0 -112
  160. package/dist/lib/serializer.d.ts +0 -15
  161. package/dist/lib/serializer.js +0 -24
  162. package/dist/lib/test-id-collector.d.ts +0 -42
  163. package/dist/lib/test-id-collector.js +0 -53
  164. package/dist/lib/types.d.ts +0 -7
  165. package/dist/lib/types.js +0 -13
  166. package/dist/lib/typescript.d.ts +0 -5
  167. package/dist/lib/typescript.js +0 -22
  168. package/dist/lib/utils/ast.d.ts +0 -29
  169. package/dist/lib/utils/ast.js +0 -23
  170. package/dist/lib/utils/error.d.ts +0 -17
  171. package/dist/lib/utils/error.js +0 -52
  172. package/dist/lib/utils/file.d.ts +0 -10
  173. package/dist/lib/utils/file.js +0 -56
  174. package/dist/lib/utils/jsdoc.d.ts +0 -9
  175. package/dist/lib/utils/jsdoc.js +0 -37
  176. package/dist/lib/utils/logger.d.ts +0 -17
  177. package/dist/lib/utils/logger.js +0 -12
  178. package/dist/lib/utils/string.d.ts +0 -40
  179. package/dist/lib/utils/string.js +0 -187
  180. package/dist/lib/utils/types.d.ts +0 -12
  181. package/dist/lib/utils/types.js +0 -2
  182. package/dist/lib/zod.d.ts +0 -8
  183. package/dist/lib/zod.js +0 -60
  184. package/dist/prisma/attributes.d.ts +0 -21
  185. package/dist/prisma/attributes.js +0 -175
  186. package/dist/prisma/client-path.d.ts +0 -7
  187. package/dist/prisma/client-path.js +0 -29
  188. package/dist/prisma/parse.d.ts +0 -12
  189. package/dist/prisma/parse.js +0 -452
package/dist/lib/meta.js DELETED
@@ -1,434 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getEnumMetadata = exports.getFieldMetadata = exports.getModelMetadata = exports.getSchemaMetadata = void 0;
27
- const Types = __importStar(require("./schema/types"));
28
- const string_1 = require("./utils/string");
29
- /**
30
- * Returns a collection of metadata relevant in the global schema context.
31
- */
32
- function getSchemaMetadata({ config }) {
33
- return {
34
- backendModules: {
35
- auth: {
36
- importPath: Types.toBackendModulePath(`@backend/auth`),
37
- },
38
- db: {
39
- moduleName: Types.toClassName(`DatabaseModule`),
40
- moduleLocation: Types.toModuleLocation(`db`, `${config.paths.dbLibPath}database.module`),
41
- typesImportPath: Types.toBackendModulePath(`@backend/db`),
42
- databaseService: {
43
- name: Types.toClassName(`DatabaseService`),
44
- location: Types.toModuleLocation('db', `${config.paths.dbLibPath}database.service`),
45
- },
46
- },
47
- http: {
48
- moduleImportPath: Types.toBackendModulePath(`@backend/http/http.module`),
49
- },
50
- i18n: {
51
- moduleImportPath: Types.toBackendModulePath(`@backend/i18n/i18n.module`),
52
- },
53
- s3: {
54
- moduleImportPath: Types.toBackendModulePath(`@backend/s3/s3.module`),
55
- },
56
- upload: {
57
- moduleImportPath: Types.toBackendModulePath(`@backend/upload/upload.module`),
58
- },
59
- xlport: {
60
- moduleImportPart: Types.toBackendModulePath(`@backend/xlport/xlport.module`),
61
- },
62
- },
63
- actions: {
64
- moduleName: Types.toClassName(`ActionModule`),
65
- moduleLocation: Types.toModuleLocation(`actions`, `${config.paths.actionsPath}actions.module`),
66
- execution: {
67
- class: Types.toClassName(`ActionExecution`),
68
- classLocation: Types.toModuleLocation(`actions`, `${config.paths.actionsPath}execution/action`),
69
- interface: Types.toClassName(`IActionExecution`),
70
- interfaceLocation: Types.toModuleLocation(`actions`, `${config.paths.actionsPath}execution/types`),
71
- mock: Types.toClassName(`MockActionExecution`),
72
- mockLocation: Types.toModuleLocation(`actions`, `${config.paths.actionsPath}execution/mock`),
73
- },
74
- dispatcher: {
75
- classLocation: Types.toModuleLocation('actions', `${config.paths.actionsPath}dispatcher.service`),
76
- class: Types.toClassName(`DispatcherService`),
77
- definitionLocation: Types.toModuleLocation('actions', `${config.paths.actionsPath}dispatcher.interface`),
78
- definition: Types.toTypeName('IDispatcherDefinition'),
79
- },
80
- definition: {
81
- importPath: Types.toBackendModulePath('@backend/actions/utils'),
82
- schema: Types.toTypeName('ActionDef'),
83
- payload: Types.toTypeName('ActionDefPayload'),
84
- result: Types.toTypeName('ActionDefResult'),
85
- resultDict: Types.toTypeName('ActionDefResultDict'),
86
- },
87
- },
88
- view: {
89
- moduleName: Types.toClassName(`ViewModule`),
90
- moduleLocation: Types.toModuleLocation(`view`, `${config.paths.businessViewLogicPath}view.module`),
91
- serviceClassName: Types.toClassName(`ViewService`),
92
- serviceLocation: Types.toModuleLocation(`view`, `${config.paths.businessViewLogicPath}view.service`),
93
- },
94
- update: {
95
- moduleName: Types.toClassName(`UpdateModule`),
96
- moduleLocation: Types.toModuleLocation(`update`, `${config.paths.businessUpdateLogicPath}update.module`),
97
- serviceClassName: Types.toClassName(`UpdateService`),
98
- serviceLocation: Types.toModuleLocation(`update`, `${config.paths.businessUpdateLogicPath}update.service`),
99
- actionTypesFilePath: Types.toPath(`${config.paths.businessUpdateLogicPath}actions`),
100
- },
101
- data: {
102
- moduleName: Types.toClassName(`DataModule`),
103
- moduleLocation: Types.toModuleLocation(`data`, `${config.paths.dataLibPath}data.module`),
104
- repository: {
105
- typeFilePath: Types.toPath(`${config.paths.dataLibPath}repository.type`),
106
- typeName: Types.toTypeName(`Repository`),
107
- constFilePath: Types.toPath(`${config.paths.dataLibPath}repositories/repositories`),
108
- indexFilePath: Types.toPath(`${config.paths.dataLibPath}repositories/index`),
109
- },
110
- types: {
111
- location: Types.toModuleLocation(`data`, `${config.paths.dataLibPath}types`),
112
- bulkMutation: Types.toTypeName(`BulkMutation`),
113
- bulkMutationForModel: Types.toTypeName(`BulkMutationForModel`),
114
- },
115
- dataService: {
116
- location: Types.toModuleLocation(`data`, `${config.paths.dataLibPath}data.service`),
117
- class: Types.toClassName(`DataService`),
118
- executeBulkMutations: Types.toFunctionName(`executeBulkMutations`),
119
- executeBulkMutation: Types.toFunctionName(`executeBulkMutation`),
120
- },
121
- stubIndexFilePath: Types.toPath(`${config.paths.dataLibPath}stubs/index`),
122
- testDataServiceFilePath: Types.toPath(`${config.paths.e2eLibPath}test-data.service`),
123
- },
124
- e2e: {
125
- testIdsFilePath: Types.toPath(`${config.paths.playwrightPath}support/model-test-ids`),
126
- },
127
- import: {
128
- moduleLocation: Types.toModuleLocation(`import`, `${config.paths.importPath}import.module`),
129
- decoder: {
130
- location: Types.toModuleLocation(`import`, `${config.paths.importPath}decoders/data.decoder`),
131
- fullDecoderName: Types.toFunctionName(`excelDataDecoder`),
132
- decodedPXLModelDataTypeName: Types.toTypeName(`DecodedPXLModelData`),
133
- },
134
- importService: {
135
- location: Types.toModuleLocation(`import`, `${config.paths.importPath}import.service`),
136
- name: Types.toClassName(`ImportService`),
137
- sharedName: Types.toVariableName(`importService`),
138
- },
139
- converterFunctions: {
140
- location: Types.toModuleLocation(`import`, `${config.paths.importPath}convert-import.functions`),
141
- importedDataToBulkMutations: Types.toFunctionName(`importToBulkMutations`),
142
- deltaToBulkMutations: Types.toFunctionName(`deltaToBulkMutations`),
143
- },
144
- types: {
145
- location: Types.toModuleLocation(`import`, `${config.paths.importPath}types`),
146
- delta_Model: {
147
- type: Types.toTypeName(`Delta_Model`),
148
- create: {
149
- type: Types.toTypeName(`Delta_Model_Create`),
150
- discriminant: Types.toDiscriminantName(`create`),
151
- typeGuard: Types.toFunctionName(`isDelta_Model_Create`),
152
- },
153
- update: {
154
- type: Types.toTypeName(`Delta_Model_Update`),
155
- discriminant: Types.toDiscriminantName(`update`),
156
- typeGuard: Types.toFunctionName(`isDelta_Model_Update`),
157
- },
158
- delete: {
159
- type: Types.toTypeName(`Delta_Model_Delete`),
160
- discriminant: Types.toDiscriminantName(`delete`),
161
- typeGuard: Types.toFunctionName(`isDelta_Model_Delete`),
162
- },
163
- unchanged: {
164
- type: Types.toTypeName(`Delta_Model_Unchanged`),
165
- discriminant: Types.toDiscriminantName(`unchanged`),
166
- typeGuard: Types.toFunctionName(`isDelta_Model_Unchanged`),
167
- },
168
- errors: {
169
- type: Types.toTypeName(`Delta_Model_Errors`),
170
- discriminant: Types.toDiscriminantName(`errors`),
171
- typeGuard: Types.toFunctionName(`isDelta_Model_Errors`),
172
- missingField: {
173
- type: Types.toTypeName(`Delta_Model_Errors_MissingField`),
174
- discriminant: Types.toDiscriminantName(`required-field-missing`),
175
- },
176
- invalidReference: {
177
- type: Types.toTypeName(`Delta_Model_Errors_InvalidReference`),
178
- discriminant: Types.toDiscriminantName(`invalid-reference`),
179
- },
180
- nonUnique: {
181
- type: Types.toTypeName(`Delta_Model_Errors_NonUnique`),
182
- discriminant: Types.toDiscriminantName(`non-unique`),
183
- },
184
- invalidType: {
185
- type: Types.toTypeName(`Delta_Model_Errors_InvalidType`),
186
- discriminant: Types.toDiscriminantName(`invalid-type`),
187
- },
188
- isRequiredDependency: {
189
- type: Types.toTypeName(`Delta_Model_Errors_IsRequiredDependency`),
190
- discriminant: Types.toDiscriminantName(`is-required-dependency`),
191
- },
192
- },
193
- },
194
- delta: Types.toTypeName(`Delta`),
195
- delta_Fields: Types.toTypeName(`Delta_Fields`),
196
- },
197
- },
198
- export: {
199
- moduleLocation: Types.toModuleLocation(`export`, `${config.paths.exportPath}export.module`),
200
- exporterClass: {
201
- location: Types.toModuleLocation(`export`, `${config.paths.exportPath}exporter.class`),
202
- name: Types.toClassName(`Exporter`),
203
- },
204
- exportService: {
205
- location: Types.toModuleLocation(`export`, `${config.paths.exportPath}export.service`),
206
- name: Types.toClassName(`ExportService`),
207
- },
208
- encoder: {
209
- location: Types.toModuleLocation(`export`, `${config.paths.exportPath}encoders/data.encoder`),
210
- fullEncoderFunctionName: Types.toFunctionName(`encodeExcelData`),
211
- encodedExcelDataTypeName: Types.toTypeName(`EncodedExcelData`),
212
- },
213
- },
214
- seedData: {
215
- initialMigrationLocation: Types.toModuleLocation(`seed-data`, `${config.paths.seedDataPath}001-base-data/001-seed.migration`),
216
- templateExcelFilePath: Types.toPath(`${config.paths.seedDataPath}002-excel-example/template.xlsx`),
217
- },
218
- seed: {
219
- serviceClassName: Types.toClassName(`SeedService`),
220
- serviceLocation: Types.toModuleLocation(`seed`, `${config.paths.seedLibPath}seed.service`),
221
- actionsLocation: Types.toModuleLocation(`seed`, `${config.paths.seedLibPath}actions`),
222
- },
223
- trpc: {
224
- routesFilePath: Types.toPath(`${config.paths.trpcRoutesFolderPath}index`),
225
- },
226
- types: {
227
- indexFilePath: Types.toPath(`${config.paths.modelTypeDefinitionsPath}index`),
228
- importPath: Types.toBackendModulePath(`@backend/types`),
229
- idTypesIndex: Types.toTypeName(`SchemaIds`),
230
- dto: {
231
- path: Types.toPath(`${config.paths.modelTypeDefinitionsPath}dto.types`),
232
- genericModel: Types.toTypeName(`GenericModel`),
233
- idType: Types.toTypeName(`IDType`),
234
- create: Types.toTypeName(`CreateDTO`),
235
- update: Types.toTypeName(`UpdateDTO`),
236
- upsert: Types.toTypeName(`UpsertDTO`),
237
- },
238
- },
239
- prismaMigrationsPath: Types.toPath(`${config.paths.prismaMigrationsFolderPath}`),
240
- config,
241
- };
242
- }
243
- exports.getSchemaMetadata = getSchemaMetadata;
244
- /**
245
- * Returns metadata related to the given model.
246
- */
247
- function getModelMetadata({ model }) {
248
- const { name, schemaConfig: config } = model;
249
- const { PascalCase, camelCase, pluralized, uncapitalizedPlural, uncapitalized, capitalized, capitalizedPlural } = (0, string_1.conjugateNames)(name);
250
- return {
251
- userFriendlyName: PascalCase,
252
- userFriendlyNamePlural: capitalizedPlural,
253
- internalSingularName: Types.toVariableName(camelCase),
254
- internalSingularNameCapitalized: Types.toVariableName(capitalized),
255
- internalPluralName: Types.toVariableName(uncapitalizedPlural),
256
- internalPluralNameCapitalized: Types.toVariableName(capitalizedPlural),
257
- actions: {
258
- actionScopeConstType: Types.toTypeName(`${camelCase}`),
259
- },
260
- data: {
261
- importPath: Types.toBackendModulePath(`@backend/data`),
262
- mockDataPropertyName: Types.toVariableName(`${uncapitalizedPlural}`),
263
- repository: {
264
- location: Types.toModuleLocation(`data`, `${config.paths.dataLibPath}repositories/${camelCase}.repository`),
265
- className: Types.toClassName(`${PascalCase}Repository`),
266
- decoderFnName: Types.toFunctionName(`to${PascalCase}`),
267
- getMethodFnName: Types.toFunctionName(`${camelCase}`),
268
- },
269
- stubLocation: Types.toModuleLocation(`data`, `${config.paths.dataLibPath}stubs/${camelCase}.stub`),
270
- stubGenerationFnName: Types.toFunctionName(`stub${PascalCase}`),
271
- defaultStubConstantName: Types.toVariableName(`${camelCase}DefaultStub`),
272
- dataServiceName: Types.toVariableName(`${uncapitalizedPlural}`),
273
- dataServiceIdName: Types.toVariableName(`${uncapitalized}`),
274
- },
275
- import: {
276
- tableName: `${pluralized}`,
277
- delta_Model_Errors: Types.toTypeName(`Delta_Model_${PascalCase}_Errors`),
278
- decoder: {
279
- location: Types.toModuleLocation(`import`, `${config.paths.importPath}decoders/${camelCase}.decoder`),
280
- tableDecoder: Types.toFunctionName(`${camelCase}TableDecoder`),
281
- decodedModelArrayName: Types.toVariableName(`${uncapitalizedPlural}`),
282
- rowDecoderName: Types.toFunctionName(`${camelCase}RowDecoder`),
283
- },
284
- },
285
- export: {
286
- exportDataPropertyName: Types.toVariableName(`${capitalizedPlural}`),
287
- exportDataFullPropertyName: Types.toVariableName(`${uncapitalizedPlural}`),
288
- exportDataTypeName: Types.toTypeName(`${PascalCase}_Export`),
289
- exportAddFunctionName: Types.toFunctionName(`add${PascalCase}`),
290
- tableName: `${pluralized}`,
291
- encoder: {
292
- location: Types.toModuleLocation(`export`, `${config.paths.exportPath}encoders/${camelCase}.encoder`),
293
- encodedExcelType: Types.toTypeName(`${PascalCase}_EncodedExcelData`),
294
- itemEncoderFunctionName: Types.toFunctionName(`encode${PascalCase}`),
295
- arrayEncoderFunctionName: Types.toFunctionName(`encode${capitalizedPlural}`),
296
- },
297
- },
298
- view: {
299
- scopeName: Types.toVariableName(`${camelCase}`),
300
- serviceClassName: Types.toClassName(`${PascalCase}ViewService`),
301
- serviceVariableName: Types.toVariableName(`${uncapitalizedPlural}`),
302
- serviceLocation: Types.toModuleLocation(`view`, `${config.paths.businessViewLogicPath}${camelCase}.view.service`),
303
- cursorDecoder: Types.toVariableName(`CURSOR_DECODER`),
304
- filterOperatorDecoder: Types.toVariableName(`FILTER_OPERATOR_DECODER`),
305
- },
306
- update: {
307
- scopeName: Types.toVariableName(`${camelCase}`),
308
- moduleLocation: Types.toModuleLocation('update', `${config.paths.businessUpdateLogicPath}${camelCase}.update.module`),
309
- serviceClassName: Types.toClassName(`${PascalCase}UpdateService`),
310
- serviceClassLocation: Types.toModuleLocation('update', `${config.paths.businessUpdateLogicPath}${camelCase}.update.service`),
311
- serviceInterfaceName: Types.toTypeName(`I${PascalCase}UpdateService`),
312
- serviceVariableName: Types.toVariableName(`${uncapitalizedPlural}`),
313
- actionModelDiscriminantName: Types.toVariableName(`${camelCase}`),
314
- createInputDecoder: Types.toVariableName(`${camelCase}CreateInputDecoder`),
315
- updateInputDecoder: Types.toVariableName(`${camelCase}UpdateInputDecoder`),
316
- upsertInputDecoder: Types.toVariableName(`${camelCase}UpsertInputDecoder`),
317
- },
318
- seed: {
319
- location: Types.toModuleLocation('seed-data', `${config.paths.seedDataPath}001-base-data/${uncapitalizedPlural}.seed`),
320
- constantName: Types.toVariableName(`${uncapitalizedPlural}`),
321
- },
322
- react: {
323
- folderName: Types.toFolderName(`${PascalCase}`),
324
- folderPath: Types.toPath(`${config.paths.reactFolderPath}models/${PascalCase}/`),
325
- importPath: Types.toPath(`@components/models/${PascalCase}`),
326
- context: {
327
- hookFnName: Types.toFunctionName(`use${PascalCase}Context`),
328
- instanceGetterHookFnName: Types.toFunctionName(`use${PascalCase}`),
329
- },
330
- components: {
331
- modals: {
332
- createComponentName: Types.toVariableName(`Create${PascalCase}Modal`),
333
- editComponentName: Types.toVariableName(`Edit${PascalCase}Modal`),
334
- deleteComponentName: Types.toVariableName(`Delete${PascalCase}Modal`),
335
- },
336
- forms: {
337
- selectInputName: Types.toVariableName(`${PascalCase}SelectInput`),
338
- selectFieldName: Types.toVariableName(`${PascalCase}SelectField`),
339
- menuSelectInputName: Types.toVariableName(`${PascalCase}MenuSelectInput`),
340
- menuSelectFieldName: Types.toVariableName(`${PascalCase}MenuSelectField`),
341
- searchInputName: Types.toVariableName(`${PascalCase}SearchInput`),
342
- searchFieldName: Types.toVariableName(`${PascalCase}SearchField`),
343
- tableSelectInputName: Types.toVariableName(`${PascalCase}TableSelectInput`),
344
- tableSelectFieldName: Types.toVariableName(`${PascalCase}TableSelectField`),
345
- },
346
- libraryComponentName: Types.toVariableName(`${PascalCase}Library`),
347
- cardComponentName: Types.toVariableName(`${PascalCase}Card`),
348
- },
349
- },
350
- trpc: {
351
- routerFilePath: Types.toPath(`${config.paths.trpcRoutesFolderPath}${camelCase}.router`),
352
- routerName: Types.toVariableName(uncapitalizedPlural),
353
- getMap: {
354
- methodName: Types.toVariableName('getMap'),
355
- reactQueryMethod: Types.toFunctionName(`${uncapitalizedPlural}.getMap`),
356
- },
357
- create: {
358
- methodName: Types.toVariableName('create'),
359
- reactQueryMethod: Types.toFunctionName(`${uncapitalizedPlural}.create`),
360
- },
361
- update: {
362
- methodName: Types.toVariableName('update'),
363
- reactQueryMethod: Types.toFunctionName(`${uncapitalizedPlural}.update`),
364
- },
365
- delete: {
366
- methodName: Types.toVariableName('delete'),
367
- reactQueryMethod: Types.toFunctionName(`${uncapitalizedPlural}.delete`),
368
- },
369
- },
370
- admin: {
371
- filePath: Types.toPath(`${config.paths.adminPagesFolderPath}/${uncapitalized}`),
372
- },
373
- types: {
374
- importPath: Types.toBackendModulePath(`@backend/types`),
375
- filePath: Types.toPath(`${config.paths.modelTypeDefinitionsPath}${camelCase}.type`),
376
- brandedIdType: Types.toTypeName(`${PascalCase}Id`),
377
- toBrandedIdTypeFnName: Types.toFunctionName(`to${PascalCase}Id`),
378
- zodDecoderFnNames: {
379
- id: Types.toFunctionName(`${camelCase}IdDecoder`),
380
- fromDatabase: Types.toFunctionName(`${camelCase}DatabaseDecoder`),
381
- },
382
- dto: {
383
- create: Types.toTypeName(`${PascalCase}CreateDTO`),
384
- update: Types.toTypeName(`${PascalCase}UpdateDTO`),
385
- upsert: Types.toTypeName(`${PascalCase}UpsertDTO`),
386
- clone: Types.toTypeName(`${PascalCase}CloneDTO`),
387
- },
388
- typeName: Types.toTypeName(`${PascalCase}`),
389
- linkedTypeName: Types.toTypeName(`${PascalCase}Linked`),
390
- typeDefFileName: Types.toFileName(`${camelCase}.type`),
391
- sourceType: Types.toTypeName(`${PascalCase}`),
392
- },
393
- };
394
- }
395
- exports.getModelMetadata = getModelMetadata;
396
- /**
397
- * A collection of hardcoded values shared across multiple generators related to the given field in the model.
398
- */
399
- function getFieldMetadata({ field }) {
400
- const PascalCase = (0, string_1.toPascalCase)(field.name);
401
- return {
402
- tsFieldName: Types.toVariableName((0, string_1.toCamelCase)(field.name)),
403
- getByForeignKeyMethodFnName: Types.toFunctionName(`getItemsFor${PascalCase}`),
404
- getByForeignKeyIdsMethodFnName: Types.toFunctionName(`getIdsFor${PascalCase}`),
405
- excelColumnName: field.attributes.label,
406
- };
407
- }
408
- exports.getFieldMetadata = getFieldMetadata;
409
- /**
410
- * Returns string values that may be used across multiple generators related to the given enum.
411
- */
412
- function getEnumMetadata({ enumerator: { name, schemaConfig: config }, }) {
413
- return {
414
- react: {
415
- folderName: Types.toFolderName((0, string_1.toPascalCase)(name)),
416
- folderPath: Types.toPath(`${config.paths.reactFolderPath}/enums/${(0, string_1.toPascalCase)(name)}`),
417
- importPath: Types.toBackendModulePath(`@backend/react/enums/${(0, string_1.toPascalCase)(name)}`),
418
- selectInputName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}SelectInput`),
419
- selectFieldName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}SelectField`),
420
- switcherInputName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}SwitcherInput`),
421
- switcherFieldName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}SwitcherField`),
422
- menuInputName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}MenuInput`),
423
- menuFieldName: Types.toVariableName(`${(0, string_1.toPascalCase)(name)}MenuField`),
424
- },
425
- types: {
426
- membersList: Types.toVariableName(`${(0, string_1.toCamelCase)(name)}Members`),
427
- membersMap: Types.toVariableName(`${(0, string_1.toCamelCase)(name)}`),
428
- filePath: Types.toPath(`${config.paths.modelTypeDefinitionsPath}${(0, string_1.toCamelCase)(name)}.enum`),
429
- importPath: Types.toBackendModulePath(`@backend/types`),
430
- sourceName: name,
431
- },
432
- };
433
- }
434
- exports.getEnumMetadata = getEnumMetadata;
@@ -1,46 +0,0 @@
1
- import { Field, FieldEnum, FieldRelation, FieldScalar } from './schema';
2
- /**
3
- * The default field of the model.
4
- *
5
- * NOTE: A model can only have one or no default field! We enforce this by schema validation.
6
- */
7
- export declare const getDefaultField: ({ fields }: {
8
- fields: Field[];
9
- }) => FieldScalar | undefined;
10
- /**
11
- * List of all scalar fields of the model (excluding foreing keys and the id).
12
- *
13
- * If you provide an optional `tsTypeName` parameter, only scalar fields of that type are returned.
14
- */
15
- export declare const getScalarFields: ({ fields, tsTypeName }: {
16
- fields: Field[];
17
- tsTypeName?: string;
18
- }) => FieldScalar[];
19
- /**
20
- * List of all relation fields of the model.
21
- */
22
- export declare const getRelationFields: ({ fields }: {
23
- fields: Field[];
24
- }) => FieldRelation[];
25
- /**
26
- * List of all enum fields of the model.
27
- */
28
- export declare const getEnumFields: ({ fields }: {
29
- fields: Field[];
30
- }) => FieldEnum[];
31
- /**
32
- * Returns a default value for a TypeScript type.
33
- */
34
- export declare const getDefaultValueForType: (type: string) => string;
35
- /**
36
- * Returns true if the given field is unique and a string field.
37
- */
38
- export declare const isUniqueStringField: (f: Field) => boolean;
39
- /**
40
- * Returns true if the given field has a maxLength attribute.
41
- */
42
- export declare const isMaxLengthStringField: (f: Field) => f is Field & {
43
- attributes: {
44
- maxLength: number;
45
- };
46
- };
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMaxLengthStringField = exports.isUniqueStringField = exports.getDefaultValueForType = exports.getEnumFields = exports.getRelationFields = exports.getScalarFields = exports.getDefaultField = void 0;
4
- /**
5
- * The default field of the model.
6
- *
7
- * NOTE: A model can only have one or no default field! We enforce this by schema validation.
8
- */
9
- const getDefaultField = ({ fields }) => fields.find((f) => f.attributes.isDefaultField);
10
- exports.getDefaultField = getDefaultField;
11
- /**
12
- * List of all scalar fields of the model (excluding foreing keys and the id).
13
- *
14
- * If you provide an optional `tsTypeName` parameter, only scalar fields of that type are returned.
15
- */
16
- const getScalarFields = ({ fields, tsTypeName }) => {
17
- if (tsTypeName) {
18
- return fields.filter((f) => f.kind === 'scalar' && f.tsTypeName === tsTypeName);
19
- }
20
- return fields.filter((f) => f.kind === 'scalar');
21
- };
22
- exports.getScalarFields = getScalarFields;
23
- /**
24
- * List of all relation fields of the model.
25
- */
26
- const getRelationFields = ({ fields }) => fields.filter((f) => f.kind === 'relation');
27
- exports.getRelationFields = getRelationFields;
28
- /**
29
- * List of all enum fields of the model.
30
- */
31
- const getEnumFields = ({ fields }) => fields.filter((f) => f.kind === 'enum');
32
- exports.getEnumFields = getEnumFields;
33
- /**
34
- * Returns a default value for a TypeScript type.
35
- */
36
- const getDefaultValueForType = (type) => {
37
- switch (type) {
38
- case 'number':
39
- return '0';
40
- case 'string':
41
- return "''";
42
- case 'boolean':
43
- return 'true';
44
- case 'Date':
45
- return 'new Date()';
46
- default:
47
- return '{} as any';
48
- }
49
- };
50
- exports.getDefaultValueForType = getDefaultValueForType;
51
- /**
52
- * Returns true if the given field is unique and a string field.
53
- */
54
- const isUniqueStringField = (f) => (f.kind === 'id' && f.isUnique && f.unbrandedTypeName === 'string') ||
55
- (f.kind === 'scalar' && f.isUnique && f.tsTypeName === 'string');
56
- exports.isUniqueStringField = isUniqueStringField;
57
- /**
58
- * Returns true if the given field has a maxLength attribute.
59
- */
60
- const isMaxLengthStringField = (f) => (f.kind === 'id' && !!f.attributes.maxLength && f.unbrandedTypeName === 'string') ||
61
- (f.kind === 'scalar' && !!f.attributes.maxLength && f.tsTypeName === 'string');
62
- exports.isMaxLengthStringField = isMaxLengthStringField;