joist-codegen 0.1.536 → 1.0.0

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 (59) hide show
  1. package/build/EntityDbMetadata.d.ts +71 -23
  2. package/build/EntityDbMetadata.js +229 -63
  3. package/build/EntityDbMetadata.js.map +1 -1
  4. package/build/EntityDbMetadata.test.js +5 -5
  5. package/build/EntityDbMetadata.test.js.map +1 -1
  6. package/build/assignTags.d.ts +1 -1
  7. package/build/assignTags.js +2 -2
  8. package/build/assignTags.js.map +1 -1
  9. package/build/config.d.ts +8 -1
  10. package/build/config.js +25 -13
  11. package/build/config.js.map +1 -1
  12. package/build/config.test.d.ts +1 -0
  13. package/build/config.test.js +37 -0
  14. package/build/config.test.js.map +1 -0
  15. package/build/generateEntitiesFile.d.ts +2 -1
  16. package/build/generateEntitiesFile.js +6 -3
  17. package/build/generateEntitiesFile.js.map +1 -1
  18. package/build/generateEntityCodegenFile.d.ts +2 -4
  19. package/build/generateEntityCodegenFile.js +278 -90
  20. package/build/generateEntityCodegenFile.js.map +1 -1
  21. package/build/generateEnumFile.d.ts +2 -3
  22. package/build/generateEnumFile.js +15 -10
  23. package/build/generateEnumFile.js.map +1 -1
  24. package/build/generateFactoriesFiles.js +4 -4
  25. package/build/generateFactoriesFiles.js.map +1 -1
  26. package/build/generateInitialEntityFile.js +7 -2
  27. package/build/generateInitialEntityFile.js.map +1 -1
  28. package/build/generateMetadataFile.js +96 -69
  29. package/build/generateMetadataFile.js.map +1 -1
  30. package/build/generatePgEnumFile.d.ts +4 -0
  31. package/build/generatePgEnumFile.js +18 -0
  32. package/build/generatePgEnumFile.js.map +1 -0
  33. package/build/index.d.ts +24 -8
  34. package/build/index.js +116 -40
  35. package/build/index.js.map +1 -1
  36. package/build/symbols.d.ts +62 -51
  37. package/build/symbols.js +64 -52
  38. package/build/symbols.js.map +1 -1
  39. package/build/utils.d.ts +4 -2
  40. package/build/utils.js +21 -11
  41. package/build/utils.js.map +1 -1
  42. package/package.json +26 -14
  43. package/jest.config.js +0 -10
  44. package/package.json.bak +0 -28
  45. package/src/EntityDbMetadata.test.ts +0 -42
  46. package/src/EntityDbMetadata.ts +0 -322
  47. package/src/assignTags.ts +0 -45
  48. package/src/config.ts +0 -82
  49. package/src/generateEntitiesFile.ts +0 -26
  50. package/src/generateEntityCodegenFile.ts +0 -414
  51. package/src/generateEnumFile.ts +0 -63
  52. package/src/generateFactoriesFiles.ts +0 -29
  53. package/src/generateInitialEntityFile.ts +0 -12
  54. package/src/generateMetadataFile.ts +0 -175
  55. package/src/index.ts +0 -180
  56. package/src/symbols.ts +0 -53
  57. package/src/utils.ts +0 -87
  58. package/tsconfig.json +0 -21
  59. package/tsconfig.tsbuildinfo +0 -3377
@@ -4,6 +4,7 @@ exports.generateEntityCodegenFile = void 0;
4
4
  const change_case_1 = require("change-case");
5
5
  const ts_poet_1 = require("ts-poet");
6
6
  const symbols_1 = require("./symbols");
7
+ const utils_1 = require("./utils");
7
8
  /** Creates the base class with the boilerplate annotations. */
8
9
  function generateEntityCodegenFile(config, meta) {
9
10
  const { entity } = meta;
@@ -14,7 +15,7 @@ function generateEntityCodegenFile(config, meta) {
14
15
  const maybeOptional = notNull ? "" : " | undefined";
15
16
  let getter;
16
17
  if (p.derived === "async") {
17
- getter = ts_poet_1.code `
18
+ getter = (0, ts_poet_1.code) `
18
19
  get ${fieldName}(): ${fieldType}${maybeOptional} {
19
20
  if (!("${fieldName}" in this.__orm.data)) {
20
21
  throw new Error("${fieldName} has not been derived yet");
@@ -24,12 +25,12 @@ function generateEntityCodegenFile(config, meta) {
24
25
  `;
25
26
  }
26
27
  else if (p.derived === "sync") {
27
- getter = ts_poet_1.code `
28
+ getter = (0, ts_poet_1.code) `
28
29
  abstract get ${fieldName}(): ${fieldType}${maybeOptional};
29
30
  `;
30
31
  }
31
32
  else {
32
- getter = ts_poet_1.code `
33
+ getter = (0, ts_poet_1.code) `
33
34
  get ${fieldName}(): ${fieldType}${maybeOptional} {
34
35
  return this.__orm.data["${fieldName}"];
35
36
  }
@@ -42,8 +43,8 @@ function generateEntityCodegenFile(config, meta) {
42
43
  //
43
44
  // We have to use a method of `set${fieldName}` because TS enforces getters/setters to have
44
45
  // same access level and currently we're leaving the getter as public.
45
- setter = ts_poet_1.code `
46
- protected set${change_case_1.pascalCase(fieldName)}(${fieldName}: ${fieldType}${maybeOptional}) {
46
+ setter = (0, ts_poet_1.code) `
47
+ protected set${(0, change_case_1.pascalCase)(fieldName)}(${fieldName}: ${fieldType}${maybeOptional}) {
47
48
  ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
48
49
  }
49
50
  `;
@@ -51,39 +52,120 @@ function generateEntityCodegenFile(config, meta) {
51
52
  else if (p.derived) {
52
53
  setter = "";
53
54
  }
55
+ else if (p.superstruct) {
56
+ setter = (0, ts_poet_1.code) `
57
+ set ${fieldName}(_${fieldName}: ${fieldType}${maybeOptional}) {
58
+ if (_${fieldName}) {
59
+ ${symbols_1.SSAssert}(_${fieldName}, ${p.superstruct});
60
+ }
61
+ ${symbols_1.setField}(this, "${fieldName}", _${fieldName});
62
+ }
63
+ `;
64
+ }
54
65
  else {
55
- setter = ts_poet_1.code `
66
+ setter = (0, ts_poet_1.code) `
56
67
  set ${fieldName}(${fieldName}: ${fieldType}${maybeOptional}) {
57
68
  ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
58
69
  }
59
70
  `;
60
71
  }
61
- return ts_poet_1.code `${getter} ${setter}`;
72
+ return (0, ts_poet_1.code) `${getter} ${setter}`;
62
73
  });
63
74
  // Add ManyToOne enums
64
- meta.enums.forEach((e) => {
65
- const { fieldName, enumType, notNull } = e;
75
+ meta.enums
76
+ .filter((e) => !e.isArray)
77
+ .forEach((e) => {
78
+ const { fieldName, enumType, enumDetailType, enumDetailsType, notNull, enumRows } = e;
66
79
  const maybeOptional = notNull ? "" : " | undefined";
67
- const getter = ts_poet_1.code `
68
- get ${fieldName}(): ${enumType}${maybeOptional} {
69
- return this.__orm.data["${fieldName}"];
70
- }
71
- `;
72
- const setter = ts_poet_1.code `
73
- set ${fieldName}(${fieldName}: ${enumType}${maybeOptional}) {
74
- ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
75
- }
76
- `;
80
+ const getByCode = (0, ts_poet_1.code) `${enumDetailType}.getByCode(this.${fieldName})`;
81
+ const getter = (0, ts_poet_1.code) `
82
+ get ${fieldName}(): ${enumType}${maybeOptional} {
83
+ return this.__orm.data["${fieldName}"];
84
+ }
85
+
86
+ get ${fieldName}Details(): ${enumDetailsType}${maybeOptional} {
87
+ return ${notNull ? getByCode : (0, ts_poet_1.code) `this.${fieldName} ? ${getByCode} : undefined`};
88
+ }
89
+ `;
90
+ const setter = (0, ts_poet_1.code) `
91
+ set ${fieldName}(${fieldName}: ${enumType}${maybeOptional}) {
92
+ ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
93
+ }
94
+ `;
95
+ const codes = new Set(enumRows.map((r) => r.code));
96
+ const shouldPrefixAccessors = meta.enums
97
+ .filter((other) => other !== e)
98
+ .some((other) => other.enumRows.some((r) => codes.has(r.code)));
99
+ const accessors = enumRows.map((row) => (0, ts_poet_1.code) `
100
+ get is${shouldPrefixAccessors ? (0, change_case_1.pascalCase)(fieldName) : ""}${(0, change_case_1.pascalCase)(row.code)}(): boolean {
101
+ return this.__orm.data["${fieldName}"] === ${enumType}.${(0, change_case_1.pascalCase)(row.code)};
102
+ }
103
+ `);
104
+ // Group enums as primitives
105
+ primitives.push(getter, setter, ...accessors);
106
+ });
107
+ // Add integer[] enums
108
+ meta.enums
109
+ .filter((e) => e.isArray)
110
+ .forEach((e) => {
111
+ const { fieldName, enumType, enumDetailType, enumDetailsType, enumRows } = e;
112
+ const getter = (0, ts_poet_1.code) `
113
+ get ${fieldName}(): ${enumType}[] {
114
+ return this.__orm.data["${fieldName}"] || [];
115
+ }
116
+
117
+ get ${fieldName}Details(): ${enumDetailsType}[] {
118
+ return this.${fieldName}.map(code => ${enumDetailType}.getByCode(code));
119
+ }
120
+ `;
121
+ const setter = (0, ts_poet_1.code) `
122
+ set ${fieldName}(${fieldName}: ${enumType}[]) {
123
+ ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
124
+ }
125
+ `;
126
+ const codes = new Set(enumRows.map((r) => r.code));
127
+ const shouldPrefixAccessors = meta.enums
128
+ .filter((other) => other !== e)
129
+ .some((other) => other.enumRows.some((r) => codes.has(r.code)));
130
+ const accessors = enumRows.map((row) => (0, ts_poet_1.code) `
131
+ get is${shouldPrefixAccessors ? (0, change_case_1.pascalCase)(fieldName) : ""}${(0, change_case_1.pascalCase)(row.code)}(): boolean {
132
+ return this.${fieldName}.includes(${enumType}.${(0, change_case_1.pascalCase)(row.code)});
133
+ }
134
+ `);
135
+ // Group enums as primitives
136
+ primitives.push(getter, setter, ...accessors);
137
+ });
138
+ meta.pgEnums.forEach((e) => {
139
+ const { fieldName, enumType, enumValues, notNull } = e;
140
+ const maybeOptional = notNull ? "" : " | undefined";
141
+ const getter = (0, ts_poet_1.code) `
142
+ get ${fieldName}(): ${enumType}${maybeOptional} {
143
+ return this.__orm.data["${fieldName}"];
144
+ }
145
+ `;
146
+ const setter = (0, ts_poet_1.code) `
147
+ set ${fieldName}(${fieldName}: ${enumType}${maybeOptional}) {
148
+ ${symbols_1.setField}(this, "${fieldName}", ${fieldName});
149
+ }
150
+ `;
151
+ const codes = new Set(enumValues);
152
+ const shouldPrefixAccessors = meta.pgEnums
153
+ .filter((other) => other !== e)
154
+ .some((other) => other.enumValues.some((r) => codes.has(r)));
155
+ const accessors = enumValues.map((row) => (0, ts_poet_1.code) `
156
+ get is${shouldPrefixAccessors ? (0, change_case_1.pascalCase)(fieldName) : ""}${(0, change_case_1.pascalCase)(row)}(): boolean {
157
+ return this.${fieldName} === ${enumType}.${(0, change_case_1.pascalCase)(row)};
158
+ }
159
+ `);
77
160
  // Group enums as primitives
78
- primitives.push(getter);
79
- primitives.push(setter);
161
+ primitives.push(getter, setter, ...accessors);
80
162
  });
81
163
  // Add ManyToOne entities
82
164
  const m2o = meta.manyToOnes.map((m2o) => {
83
165
  const { fieldName, otherEntity, otherFieldName, notNull } = m2o;
84
166
  const maybeOptional = notNull ? "never" : "undefined";
85
- return ts_poet_1.code `
86
- readonly ${fieldName}: ${symbols_1.Reference}<${entity.type}, ${otherEntity.type}, ${maybeOptional}> =
167
+ return (0, ts_poet_1.code) `
168
+ readonly ${fieldName}: ${symbols_1.ManyToOneReference}<${entity.type}, ${otherEntity.type}, ${maybeOptional}> =
87
169
  ${symbols_1.hasOne}(
88
170
  ${otherEntity.metaType},
89
171
  "${fieldName}",
@@ -94,7 +176,7 @@ function generateEntityCodegenFile(config, meta) {
94
176
  // Add OneToMany
95
177
  const o2m = meta.oneToManys.map((o2m) => {
96
178
  const { fieldName, otherFieldName, otherColumnName, otherEntity } = o2m;
97
- return ts_poet_1.code `
179
+ return (0, ts_poet_1.code) `
98
180
  readonly ${fieldName}: ${symbols_1.Collection}<${entity.type}, ${otherEntity.type}> = ${symbols_1.hasMany}(
99
181
  ${otherEntity.metaType},
100
182
  "${fieldName}",
@@ -103,22 +185,35 @@ function generateEntityCodegenFile(config, meta) {
103
185
  );
104
186
  `;
105
187
  });
188
+ // Add large OneToMany
189
+ const lo2m = meta.largeOneToManys.map((o2m) => {
190
+ const { fieldName, otherFieldName, otherColumnName, otherEntity } = o2m;
191
+ return (0, ts_poet_1.code) `
192
+ readonly ${fieldName}: ${symbols_1.LargeCollection}<${entity.type}, ${otherEntity.type}> = ${symbols_1.hasLargeMany}(
193
+ ${otherEntity.metaType},
194
+ "${fieldName}",
195
+ "${otherFieldName}",
196
+ "${otherColumnName}"
197
+ );
198
+ `;
199
+ });
106
200
  // Add OneToOne
107
201
  const o2o = meta.oneToOnes.map((o2o) => {
108
- const { fieldName, otherEntity, otherFieldName } = o2o;
109
- return ts_poet_1.code `
110
- readonly ${fieldName}: ${symbols_1.Reference}<${entity.type}, ${otherEntity.type}, undefined> =
202
+ const { fieldName, otherEntity, otherFieldName, otherColumnName } = o2o;
203
+ return (0, ts_poet_1.code) `
204
+ readonly ${fieldName}: ${symbols_1.OneToOneReference}<${entity.type}, ${otherEntity.type}> =
111
205
  ${symbols_1.hasOneToOne}(
112
206
  ${otherEntity.metaType},
113
207
  "${fieldName}",
114
208
  "${otherFieldName}",
209
+ "${otherColumnName}",
115
210
  );
116
211
  `;
117
212
  });
118
213
  // Add ManyToMany
119
214
  const m2m = meta.manyToManys.map((m2m) => {
120
215
  const { joinTableName, fieldName, columnName, otherEntity, otherFieldName, otherColumnName } = m2m;
121
- return ts_poet_1.code `
216
+ return (0, ts_poet_1.code) `
122
217
  readonly ${fieldName}: ${symbols_1.Collection}<${entity.type}, ${otherEntity.type}> = ${symbols_1.hasManyToMany}(
123
218
  "${joinTableName}",
124
219
  "${fieldName}",
@@ -129,20 +224,44 @@ function generateEntityCodegenFile(config, meta) {
129
224
  );
130
225
  `;
131
226
  });
132
- const configName = `${change_case_1.camelCase(entityName)}Config`;
133
- const metadata = ts_poet_1.imp(`${change_case_1.camelCase(entityName)}Meta@./entities`);
227
+ // Add large ManyToMany
228
+ const lm2m = meta.largeManyToManys.map((m2m) => {
229
+ const { joinTableName, fieldName, columnName, otherEntity, otherFieldName, otherColumnName } = m2m;
230
+ return (0, ts_poet_1.code) `
231
+ readonly ${fieldName}: ${symbols_1.LargeCollection}<${entity.type}, ${otherEntity.type}> = ${symbols_1.hasLargeManyToMany}(
232
+ "${joinTableName}",
233
+ "${fieldName}",
234
+ "${columnName}",
235
+ ${otherEntity.metaType},
236
+ "${otherFieldName}",
237
+ "${otherColumnName}",
238
+ );
239
+ `;
240
+ });
241
+ // Add Polymorphic
242
+ const polymorphic = meta.polymorphics.map((p) => {
243
+ const { fieldName, notNull, fieldType } = p;
244
+ const maybeOptional = notNull ? "never" : "undefined";
245
+ return (0, ts_poet_1.code) `
246
+ readonly ${fieldName}: ${symbols_1.PolymorphicReference}<${entity.type}, ${fieldType}, ${maybeOptional}> = ${symbols_1.hasOnePolymorphic}(
247
+ "${fieldName}",
248
+ );
249
+ `;
250
+ });
251
+ const configName = `${(0, change_case_1.camelCase)(entityName)}Config`;
252
+ const metadata = (0, ts_poet_1.imp)(`${(0, change_case_1.camelCase)(entityName)}Meta@./entities`);
134
253
  const defaultValues = generateDefaultValues(config, meta);
135
- const hasDefaultValues = defaultValues.length > 0;
136
- const defaultValuesName = `${change_case_1.camelCase(entityName)}DefaultValues`;
137
- const contextType = config.contextType ? ts_poet_1.imp(config.contextType) : "{}";
138
- const factoryMethod = ts_poet_1.imp(`new${entity.name}@./entities`);
139
- return ts_poet_1.code `
254
+ const contextType = config.contextType ? (0, ts_poet_1.imp)(config.contextType) : "{}";
255
+ const factoryMethod = (0, ts_poet_1.imp)(`new${entity.name}@./entities`);
256
+ return (0, ts_poet_1.code) `
140
257
  export type ${entityName}Id = ${symbols_1.Flavor}<string, "${entityName}">;
141
258
 
259
+ ${generatePolymorphicTypes(meta)}
260
+
142
261
  export interface ${entityName}Opts {
143
262
  ${generateOptsFields(config, meta)}
144
263
  }
145
-
264
+
146
265
  export interface ${entityName}IdsOpts {
147
266
  ${generateOptIdsFields(config, meta)}
148
267
  }
@@ -161,26 +280,28 @@ function generateEntityCodegenFile(config, meta) {
161
280
  id?: ${symbols_1.OrderBy};
162
281
  ${generateOrderFields(meta)}
163
282
  }
164
-
165
- ${hasDefaultValues ? ts_poet_1.code `export const ${defaultValuesName} = { ${defaultValues} };` : ""}
166
283
 
167
284
  export const ${configName} = new ${symbols_1.ConfigApi}<${entity.type}, ${contextType}>();
168
285
 
169
286
  ${generateDefaultValidationRules(meta, configName)}
170
-
171
- export abstract class ${entityName}Codegen extends ${symbols_1.BaseEntity} {
172
- readonly __types: {
287
+
288
+ export abstract class ${entityName}Codegen extends ${symbols_1.BaseEntity}<${symbols_1.EntityManager}> {
289
+ private static defaultValues = {
290
+ ${defaultValues}
291
+ };
292
+
293
+ readonly __orm!: ${symbols_1.EntityOrmField} & {
173
294
  filterType: ${entityName}Filter;
174
295
  gqlFilterType: ${entityName}GraphQLFilter;
175
296
  orderType: ${entityName}Order;
176
297
  optsType: ${entityName}Opts;
177
298
  optIdsType: ${entityName}IdsOpts;
178
299
  factoryOptsType: Parameters<typeof ${factoryMethod}>[1];
179
- } = null!;
180
- ${[o2m, m2o, o2o, m2m]}
300
+ };
301
+ ${[o2m, lo2m, m2o, o2o, m2m, lm2m, polymorphic]}
181
302
 
182
303
  constructor(em: ${symbols_1.EntityManager}, opts: ${entityName}Opts) {
183
- super(em, ${metadata}, ${hasDefaultValues ? `${defaultValuesName}` : "{}"}, opts);
304
+ super(em, ${metadata}, ${entityName}Codegen.defaultValues, opts);
184
305
  ${symbols_1.setOpts}(this as any as ${entityName}, opts, { calledFromConstructor: true });
185
306
  }
186
307
 
@@ -207,14 +328,14 @@ function generateEntityCodegenFile(config, meta) {
207
328
  }
208
329
 
209
330
  async populate<H extends ${symbols_1.LoadHint}<${entityName}>>(hint: H): Promise<${symbols_1.Loaded}<${entityName}, H>> {
210
- return ${symbols_1.getEm}(this).populate(this as any as ${entityName}, hint);
331
+ return this.em.populate(this as any as ${entityName}, hint);
211
332
  }
212
333
  }
213
334
  `;
214
335
  }
215
336
  exports.generateEntityCodegenFile = generateEntityCodegenFile;
216
- function fieldHasDefaultValue(config, meta, field) {
217
- let { fieldName, columnDefault, columnType } = field;
337
+ function fieldHasDefaultValue(field) {
338
+ let { columnDefault } = field;
218
339
  // if there's no default at all, return false
219
340
  if (columnDefault === null) {
220
341
  return false;
@@ -223,27 +344,52 @@ function fieldHasDefaultValue(config, meta, field) {
223
344
  // only ever returns a string | null so we make sure of that here
224
345
  columnDefault = columnDefault.toString();
225
346
  // if this value should be set elsewhere, return false
226
- if (field.derived !== false) {
347
+ if (field.kind === "primitive" && field.derived !== false) {
227
348
  return false;
228
349
  }
350
+ const fieldType = field.kind === "primitive" ? field.fieldType : "number";
229
351
  // try to validate that we actually got a primitive value and not arbitrary SQL
230
- return ((["smallint", "int", "bigint"].includes(columnType) && !isNaN(parseInt(columnDefault))) ||
231
- (["varchar", "text"].includes(columnType) && /^'.*'$/.test(columnDefault)) ||
232
- ("bool" === columnType && ["true", "false"].includes(columnDefault)));
352
+ return ((fieldType === "number" && !isNaN(parseInt(columnDefault))) ||
353
+ (fieldType === "string" && /^'.*'$/.test(columnDefault)) ||
354
+ (fieldType === "boolean" && ["true", "false"].includes(columnDefault)));
355
+ }
356
+ function generatePolymorphicTypes(meta) {
357
+ return meta.polymorphics.flatMap((pf) => [
358
+ (0, ts_poet_1.code) `export type ${pf.fieldType} = ${pf.components.map((c) => (0, ts_poet_1.code) `| ${c.otherEntity.type}`)};`,
359
+ (0, ts_poet_1.code) `export function get${pf.fieldType}Constructors(): ${symbols_1.EntityConstructor}<${pf.fieldType}>[] {
360
+ return [${pf.components.map((c) => (0, ts_poet_1.code) `${c.otherEntity.type},`)}];
361
+ }`,
362
+ (0, ts_poet_1.code) `export function is${pf.fieldType}(maybeEntity: ${symbols_1.Entity} | undefined | null): maybeEntity is ${pf.fieldType} {
363
+ return maybeEntity !== undefined && maybeEntity !== null && get${pf.fieldType}Constructors().some((type) => maybeEntity instanceof type);
364
+ }`,
365
+ ]);
233
366
  }
234
367
  function generateDefaultValues(config, meta) {
235
- return meta.primitives
236
- .filter((field) => fieldHasDefaultValue(config, meta, field))
368
+ const primitives = meta.primitives
369
+ .filter((field) => fieldHasDefaultValue(field))
370
+ .map(({ fieldName, columnDefault }) => {
371
+ return (0, ts_poet_1.code) `${fieldName}: ${columnDefault},`;
372
+ });
373
+ const pgEnums = meta.pgEnums
374
+ .filter((field) => !!field.columnDefault)
237
375
  .map(({ fieldName, columnDefault }) => {
238
- return ts_poet_1.code `${fieldName}: ${columnDefault},`;
376
+ return (0, ts_poet_1.code) `${fieldName}: ${columnDefault},`;
239
377
  });
378
+ const enums = meta.enums
379
+ .filter((field) => !!field.columnDefault && !field.isArray)
380
+ .map(({ fieldName, columnDefault, enumRows, enumType, columnName }) => {
381
+ const defaultRow = enumRows.find((r) => r.id === Number(columnDefault)) ||
382
+ (0, utils_1.fail)(`Invalid default value ${columnDefault} for ${meta.tableName}.${columnName}`);
383
+ return (0, ts_poet_1.code) `${fieldName}: ${enumType}.${(0, change_case_1.pascalCase)(defaultRow.code)},`;
384
+ });
385
+ return [...primitives, ...enums, ...pgEnums];
240
386
  }
241
387
  function generateDefaultValidationRules(meta, configName) {
242
- const fields = [...meta.primitives, ...meta.enums, ...meta.manyToOnes];
388
+ const fields = [...meta.primitives, ...meta.enums, ...meta.manyToOnes, ...meta.polymorphics];
243
389
  return fields
244
390
  .filter((p) => p.notNull)
245
391
  .map(({ fieldName }) => {
246
- return ts_poet_1.code `${configName}.addRule(${symbols_1.newRequiredRule}("${fieldName}"));`;
392
+ return (0, ts_poet_1.code) `${configName}.addRule(${symbols_1.newRequiredRule}("${fieldName}"));`;
247
393
  });
248
394
  }
249
395
  // Make our opts type
@@ -251,95 +397,137 @@ function generateOptsFields(config, meta) {
251
397
  const primitives = meta.primitives.map((field) => {
252
398
  const { fieldName, fieldType, notNull, derived } = field;
253
399
  if (derived) {
254
- return ts_poet_1.code ``;
400
+ return (0, ts_poet_1.code) ``;
401
+ }
402
+ return (0, ts_poet_1.code) `${fieldName}${maybeOptionalOrDefault(field)}: ${fieldType}${maybeUnionNull(notNull)};`;
403
+ });
404
+ const enums = meta.enums.map((field) => {
405
+ const { fieldName, enumType, notNull, isArray } = field;
406
+ if (isArray) {
407
+ // Arrays are always optional and we'll default to `[]`
408
+ return (0, ts_poet_1.code) `${fieldName}?: ${enumType}[];`;
409
+ }
410
+ else {
411
+ return (0, ts_poet_1.code) `${fieldName}${maybeOptionalOrDefault(field)}: ${enumType}${maybeUnionNull(notNull)};`;
255
412
  }
256
- return ts_poet_1.code `${fieldName}${maybeOptional(notNull && !fieldHasDefaultValue(config, meta, field))}: ${fieldType}${maybeUnionNull(notNull)};`;
257
413
  });
258
- const enums = meta.enums.map(({ fieldName, enumType, notNull }) => {
259
- return ts_poet_1.code `${fieldName}${maybeOptional(notNull)}: ${enumType}${maybeUnionNull(notNull)};`;
414
+ const pgEnums = meta.pgEnums.map(({ fieldName, enumType, notNull }) => {
415
+ return (0, ts_poet_1.code) `${fieldName}${maybeOptional(notNull)}: ${enumType}${maybeUnionNull(notNull)};`;
260
416
  });
261
417
  const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {
262
- return ts_poet_1.code `${fieldName}${maybeOptional(notNull)}: ${otherEntity.type}${maybeUnionNull(notNull)};`;
418
+ return (0, ts_poet_1.code) `${fieldName}${maybeOptional(notNull)}: ${otherEntity.type}${maybeUnionNull(notNull)};`;
263
419
  });
264
420
  const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {
265
- return ts_poet_1.code `${fieldName}?: ${otherEntity.type} | null;`;
421
+ return (0, ts_poet_1.code) `${fieldName}?: ${otherEntity.type} | null;`;
266
422
  });
267
423
  const o2m = meta.oneToManys.map(({ fieldName, otherEntity }) => {
268
- return ts_poet_1.code `${fieldName}?: ${otherEntity.type}[];`;
424
+ return (0, ts_poet_1.code) `${fieldName}?: ${otherEntity.type}[];`;
269
425
  });
270
426
  const m2m = meta.manyToManys.map(({ fieldName, otherEntity }) => {
271
- return ts_poet_1.code `${fieldName}?: ${otherEntity.type}[];`;
427
+ return (0, ts_poet_1.code) `${fieldName}?: ${otherEntity.type}[];`;
428
+ });
429
+ const polys = meta.polymorphics.map(({ fieldName, notNull, fieldType }) => {
430
+ return (0, ts_poet_1.code) `${fieldName}${maybeOptional(notNull)}: ${fieldType};`;
272
431
  });
273
- return [...primitives, ...enums, ...m2o, ...o2o, ...o2m, ...m2m];
432
+ return [...primitives, ...enums, ...pgEnums, ...m2o, ...polys, ...o2o, ...o2m, ...m2m];
274
433
  }
275
434
  // We know the OptIds types are only used in partials, so we make everything optional.
276
435
  // This especially needs to be the case b/c both `book: ...` and `bookId: ...` will be
277
436
  // in the partial type and of course the caller will only be setting one.
278
437
  function generateOptIdsFields(config, meta) {
279
- const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {
280
- return ts_poet_1.code `${fieldName}Id?: ${otherEntity.idType} | null;`;
438
+ const m2o = meta.manyToOnes.map(({ fieldName, otherEntity }) => {
439
+ return (0, ts_poet_1.code) `${fieldName}Id?: ${otherEntity.idType} | null;`;
281
440
  });
282
441
  const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {
283
- return ts_poet_1.code `${fieldName}Id?: ${otherEntity.idType} | null;`;
442
+ return (0, ts_poet_1.code) `${fieldName}Id?: ${otherEntity.idType} | null;`;
284
443
  });
285
444
  const o2m = meta.oneToManys.map(({ singularName, otherEntity }) => {
286
- return ts_poet_1.code `${singularName}Ids?: ${otherEntity.idType}[] | null;`;
445
+ return (0, ts_poet_1.code) `${singularName}Ids?: ${otherEntity.idType}[] | null;`;
287
446
  });
288
447
  const m2m = meta.manyToManys.map(({ singularName, otherEntity }) => {
289
- return ts_poet_1.code `${singularName}Ids?: ${otherEntity.idType}[] | null;`;
448
+ return (0, ts_poet_1.code) `${singularName}Ids?: ${otherEntity.idType}[] | null;`;
449
+ });
450
+ const polys = meta.polymorphics.map(({ fieldName, fieldType }) => {
451
+ return (0, ts_poet_1.code) `${fieldName}Id?: ${symbols_1.IdOf}<${fieldType}> | null;`;
290
452
  });
291
- return [...m2o, ...o2o, ...o2m, ...m2m];
453
+ return [...m2o, ...polys, ...o2o, ...o2m, ...m2m];
292
454
  }
293
455
  function generateFilterFields(meta) {
294
456
  const primitives = meta.primitives.map(({ fieldName, fieldType, notNull }) => {
295
457
  if (fieldType === "boolean") {
296
- return ts_poet_1.code `${fieldName}?: ${symbols_1.BooleanFilter}<${nullOrNever(notNull)}>;`;
458
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.BooleanFilter}<${nullOrNever(notNull)}>;`;
297
459
  }
298
460
  else {
299
- return ts_poet_1.code `${fieldName}?: ${symbols_1.ValueFilter}<${fieldType}, ${nullOrNever(notNull)}>;`;
461
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.ValueFilter}<${fieldType}, ${nullOrNever(notNull)}>;`;
300
462
  }
301
463
  });
302
- const enums = meta.enums.map(({ fieldName, enumType, notNull }) => {
303
- return ts_poet_1.code `${fieldName}?: ${symbols_1.ValueFilter}<${enumType}, ${nullOrNever(notNull)}>;`;
464
+ const enums = meta.enums.map(({ fieldName, enumType, notNull, isArray }) => {
465
+ const maybeArray = isArray ? "[]" : "";
466
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.ValueFilter}<${enumType}${maybeArray}, ${nullOrNever(notNull)}>;`;
467
+ });
468
+ const pgEnums = meta.pgEnums.map(({ fieldName, enumType, notNull }) => {
469
+ const maybeArray = "";
470
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.ValueFilter}<${enumType}${maybeArray}, ${nullOrNever(notNull)}>;`;
304
471
  });
305
472
  const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {
306
- return ts_poet_1.code `${fieldName}?: ${symbols_1.EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.FilterOf}<${otherEntity.type}>, ${nullOrNever(notNull)}>;`;
473
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.FilterOf}<${otherEntity.type}>, ${nullOrNever(notNull)}>;`;
474
+ });
475
+ const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {
476
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.FilterOf}<${otherEntity.type}>, null | undefined>;`;
307
477
  });
308
- return [...primitives, ...enums, ...m2o];
478
+ const polys = meta.polymorphics.map(({ fieldName, fieldType }) => {
479
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityFilter}<${fieldType}, ${symbols_1.IdOf}<${fieldType}>, never, null | undefined>;`;
480
+ });
481
+ return [...primitives, ...enums, ...pgEnums, ...m2o, ...o2o, ...polys];
309
482
  }
310
483
  function generateGraphQLFilterFields(meta) {
311
- const primitives = meta.primitives.map(({ fieldName, fieldType, notNull }) => {
484
+ const primitives = meta.primitives.map(({ fieldName, fieldType }) => {
312
485
  if (fieldType === "boolean") {
313
- return ts_poet_1.code `${fieldName}?: ${symbols_1.BooleanGraphQLFilter};`;
486
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.BooleanGraphQLFilter};`;
314
487
  }
315
488
  else {
316
- return ts_poet_1.code `${fieldName}?: ${symbols_1.ValueGraphQLFilter}<${fieldType}>;`;
489
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.ValueGraphQLFilter}<${fieldType}>;`;
317
490
  }
318
491
  });
319
- const enums = meta.enums.map(({ fieldName, enumType, notNull }) => {
320
- return ts_poet_1.code `${fieldName}?: ${symbols_1.EnumGraphQLFilter}<${enumType}>;`;
492
+ const enums = meta.enums.map(({ fieldName, enumType }) => {
493
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EnumGraphQLFilter}<${enumType}>;`;
321
494
  });
322
- const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {
323
- return ts_poet_1.code `${fieldName}?: ${symbols_1.EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.GraphQLFilterOf}<${otherEntity.type}>>;`;
495
+ const pgEnums = meta.pgEnums.map(({ fieldName, enumType }) => {
496
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EnumGraphQLFilter}<${enumType}>;`;
497
+ });
498
+ const m2o = meta.manyToOnes.map(({ fieldName, otherEntity }) => {
499
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.GraphQLFilterOf}<${otherEntity.type}>>;`;
500
+ });
501
+ const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {
502
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${symbols_1.GraphQLFilterOf}<${otherEntity.type}>>;`;
503
+ });
504
+ const polys = meta.polymorphics.map(({ fieldName, fieldType }) => {
505
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.EntityGraphQLFilter}<${fieldType}, ${symbols_1.IdOf}<${fieldType}>, never>;`;
324
506
  });
325
- return [...primitives, ...enums, ...m2o];
507
+ return [...primitives, ...enums, ...pgEnums, ...m2o, ...o2o, ...polys];
326
508
  }
327
509
  function generateOrderFields(meta) {
328
510
  // Make our opts type
329
511
  const primitives = meta.primitives.map(({ fieldName }) => {
330
- return ts_poet_1.code `${fieldName}?: ${symbols_1.OrderBy};`;
512
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.OrderBy};`;
331
513
  });
332
514
  const enums = meta.enums.map(({ fieldName }) => {
333
- return ts_poet_1.code `${fieldName}?: ${symbols_1.OrderBy};`;
515
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.OrderBy};`;
334
516
  });
335
- const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull }) => {
336
- return ts_poet_1.code `${fieldName}?: ${otherEntity.orderType};`;
517
+ const pgEnums = meta.pgEnums.map(({ fieldName }) => {
518
+ return (0, ts_poet_1.code) `${fieldName}?: ${symbols_1.OrderBy};`;
337
519
  });
338
- return [...primitives, ...enums, ...m2o];
520
+ const m2o = meta.manyToOnes.map(({ fieldName, otherEntity }) => {
521
+ return (0, ts_poet_1.code) `${fieldName}?: ${otherEntity.orderType};`;
522
+ });
523
+ return [...primitives, ...enums, ...pgEnums, ...m2o];
339
524
  }
340
525
  function maybeOptional(notNull) {
341
526
  return notNull ? "" : "?";
342
527
  }
528
+ function maybeOptionalOrDefault(field) {
529
+ return field.notNull && !fieldHasDefaultValue(field) ? "" : "?";
530
+ }
343
531
  function maybeUnionNull(notNull) {
344
532
  return notNull ? "" : " | null";
345
533
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateEntityCodegenFile.js","sourceRoot":"","sources":["../src/generateEntityCodegenFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateEntityCodegenFile.js","sourceRoot":"","sources":["../src/generateEntityCodegenFile.ts"],"names":[],"mappings":"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"}