@postxl/generator 0.71.1 → 0.71.2

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.
@@ -26,9 +26,11 @@ function generateImportService({ models, meta }) {
26
26
  [meta.actions.execution.interfaceLocation.import]: [meta.actions.execution.interface],
27
27
  [meta.actions.dispatcher.classLocation.import]: [meta.actions.dispatcher.class],
28
28
  [types.location.path]: [
29
+ (0, types_1.toAnnotatedTypeName)(delta),
29
30
  (0, types_1.toAnnotatedTypeName)(delta_Fields),
30
31
  (0, types_1.toAnnotatedTypeName)(delta_Model.type),
31
- (0, types_1.toAnnotatedTypeName)(delta),
32
+ (0, types_1.toAnnotatedTypeName)(delta_Model.errors.invalidReference.type),
33
+ (0, types_1.toAnnotatedTypeName)(delta_Model.errors.isRequiredDependency.type),
32
34
  ],
33
35
  [decoder.location.path]: [(0, types_1.toAnnotatedTypeName)(decoder.decodedPXLModelDataTypeName)],
34
36
  [converterFunctions.location.path]: [converterFunctions.deltaToBulkMutations],
@@ -266,10 +268,10 @@ export class ${meta.import.importService.name} {
266
268
  /**
267
269
  * Internal helper function that removes undefined values from an array.
268
270
  */
269
- private keepErrors<ModelErrors>(errors: (ModelErrors | undefined)[]): ModelErrors[] {
270
- return errors.filter((error) => error !== undefined) as ModelErrors[]
271
+ private keepErrors<O, I extends O | undefined>(errors: I[]): O[] {
272
+ return errors.filter((error) => error !== undefined) as O[]
271
273
  }
272
-
274
+
273
275
  private validateRequiredFields<
274
276
  Model extends ${dto.genericModel}<ID>,
275
277
  ID extends ${dto.idType},
@@ -492,10 +494,6 @@ function generateDetectDeltaFunction({ model, modelMeta, models, schemaMeta, imp
492
494
  }
493
495
  else if (field.kind === 'relation') {
494
496
  const relatedModelMeta = (0, meta_1.getModelMetadata)({ model: field.relationToModel });
495
- imports.addTypeImport({
496
- from: schemaMeta.import.types.location.path,
497
- items: [delta_Model.errors.invalidReference.type],
498
- });
499
497
  sharedValidations.push(`this.validateReferenceField({
500
498
  item,
501
499
  fieldName: '${fieldName}',
@@ -515,10 +513,6 @@ function generateDetectDeltaFunction({ model, modelMeta, models, schemaMeta, imp
515
513
  !relatedField.isRequired) {
516
514
  continue;
517
515
  }
518
- imports.addTypeImport({
519
- from: schemaMeta.import.types.location.path,
520
- items: [delta_Model.errors.isRequiredDependency.type],
521
- });
522
516
  const relatedModelMeta = (0, meta_1.getModelMetadata)({ model: relatedModel });
523
517
  const relatedFieldName = (0, string_1.toPascalCase)(relatedField.name);
524
518
  deleteValidations.push(`
@@ -566,12 +560,13 @@ private async detect${modelMeta.internalSingularNameCapitalized}Delta(
566
560
  existingItem,
567
561
  properties: [${fieldNames.join(',')}],
568
562
  }),
569
- validateCreate: async ({ item }) =>
563
+ validateCreate: async ({ item }): Promise<${modelMeta.import.delta_Model_Errors}[]> =>
570
564
  this.keepErrors([
571
565
  ${requiredFieldsValidation}
572
566
  ...(await sharedValidations(item)),
573
567
  ]),
574
- validateUpdate: async ({ item }) => this.keepErrors(await sharedValidations(item)),
568
+ validateUpdate: async ({ item }): Promise<${modelMeta.import.delta_Model_Errors}[]> =>
569
+ this.keepErrors(await sharedValidations(item)),
575
570
  validateDelete: ${validateDelete},
576
571
  })
577
572
  }`;
@@ -831,7 +831,7 @@ function generateValidationBlocks({ model }) {
831
831
  function generateIndexBlocks({ model, imports }) {
832
832
  const indexes = model.attributes.index ? [getIndexDefinition({ fieldNames: model.attributes.index, model })] : [];
833
833
  if (indexes.length > 0) {
834
- imports.addTypeImport({ from: (0, types_1.toPackageName)('@postxl/runtime'), items: [(0, types_1.toTypeName)('NestedMap')] });
834
+ imports.addImport({ items: [(0, types_1.toClassName)('NestedMap')], from: (0, types_1.toPackageName)('@postxl/runtime') });
835
835
  }
836
836
  const result = {
837
837
  nestedMapDeclarations: [],
@@ -241,6 +241,9 @@ function parseModel({ dmmfModel, enums, models, config, }) {
241
241
  validation = { type: 'float' };
242
242
  }
243
243
  const _field = Object.assign(Object.assign({ kind: 'scalar', validation }, shared), { isUnique: isUniqueField(dmmfField), isGenerated: isAutoIncrementField(dmmfField), tsTypeName: getTsTypeForScalar(dmmfField) });
244
+ if (_field.tsTypeName === 'boolean' && !_field.isRequired) {
245
+ (0, error_1.throwError)(`${(0, logger_1.highlight)(`${dmmfModel.name}.${fieldName}`)}: Boolean fields cannot be nullable!`);
246
+ }
244
247
  return _field;
245
248
  }
246
249
  if (dmmfField.kind === 'enum') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generator",
3
- "version": "0.71.1",
3
+ "version": "0.71.2",
4
4
  "main": "./dist/generator.js",
5
5
  "typings": "./dist/generator.d.ts",
6
6
  "bin": {
@@ -44,7 +44,8 @@
44
44
  "autoDetect": true
45
45
  },
46
46
  "scripts": {
47
- "test:generators": "./scripts/test.sh",
47
+ "test:generators": "./scripts/test-generators.sh",
48
+ "test:setup": "./scripts/test-setup.sh",
48
49
  "test:jest": "jest",
49
50
  "test:watch": "jest --watch",
50
51
  "test:types": "tsc --noEmit"