@postxl/generator 0.48.0 → 0.49.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.
@@ -56,7 +56,7 @@ export class ${meta.actions.dispatcherService.class} {
56
56
  try {
57
57
  const result = await (this.execute({ action, execution }) as Promise<ResultOfAction<A>>)
58
58
 
59
- await execution.success()
59
+ await execution.success(result)
60
60
 
61
61
  return result
62
62
  } catch (e) {
@@ -54,7 +54,7 @@ const blank${singularCapitalized}ExcelRowImportDecoderInput = z
54
54
  * The decoder for an Excel table that contains ${userFriendly} entries
55
55
  */
56
56
  export const ${tableImportDecoder} = z
57
- .array(${singular}ExcelRowImportDecoder.or(blank${singularCapitalized}ExcelRowImportDecoderInput))
57
+ .array(blank${singularCapitalized}ExcelRowImportDecoderInput.or(${singular}ExcelRowImportDecoder))
58
58
  .transform((items) => items.filter(Boolean) as ${model.typeName}[])
59
59
 
60
60
  /**
@@ -74,7 +74,8 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
74
74
  const blankFieldDecoders = [];
75
75
  for (const field of model.fields) {
76
76
  const fieldMeta = (0, meta_1.getFieldMetadata)({ field });
77
- blankFieldDecoders.push(`${fieldMeta.excelColumnName}: nullOrBlankDecoder`);
77
+ const optionalModifier = field.attributes.isUpdatedAt || field.attributes.isCreatedAt ? '.optional()' : '';
78
+ blankFieldDecoders.push(`${fieldMeta.excelColumnName}: nullOrBlankDecoder${optionalModifier}`);
78
79
  switch (field.kind) {
79
80
  case 'id': {
80
81
  imports.addImport({ items: [meta.types.toBrandedIdTypeFnName], from: meta.types.importPath });
@@ -94,7 +95,7 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
94
95
  nullable: !field.isRequired,
95
96
  imports,
96
97
  schemaMeta,
97
- })}`);
98
+ })}${optionalModifier}`);
98
99
  break;
99
100
  }
100
101
  case 'relation': {
@@ -117,7 +118,7 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
117
118
  case 'enum': {
118
119
  fieldDecoders.push(`${fieldMeta.excelColumnName}: z.enum([
119
120
  ${field.enumerator.values.map((v) => `'${v}'`).join(', ')}
120
- ])${field.isRequired ? '' : '.nullable()'}`);
121
+ ])${field.isRequired ? '' : '.nullable()'}${optionalModifier}`);
121
122
  break;
122
123
  }
123
124
  default: {
@@ -127,7 +128,10 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
127
128
  }
128
129
  return { fieldDecoders, blankFieldDecoders };
129
130
  }
130
- function toExcelDecoder({ tsTypeName, dbTypeName: typeName, nullable, imports, schemaMeta, }) {
131
+ function toExcelDecoder({ tsTypeName,
132
+ // We will use the DB type later when extending the number decoder
133
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
134
+ dbTypeName, nullable, imports, schemaMeta, }) {
131
135
  switch (tsTypeName) {
132
136
  case 'string': {
133
137
  const decoder = schemaMeta.backendModules.common.functions[nullable ? 'excelStringNullableDecoder' : 'excelStringDecoder'];
@@ -143,14 +147,28 @@ function toExcelDecoder({ tsTypeName, dbTypeName: typeName, nullable, imports, s
143
147
  from: schemaMeta.backendModules.common.importPath,
144
148
  });
145
149
  return 'excelBooleanDecoder';
146
- case 'number':
147
- switch (typeName) {
150
+ case 'number': {
151
+ let decoder;
152
+ switch (dbTypeName) {
148
153
  case 'Int':
154
+ decoder =
155
+ schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
156
+ break;
149
157
  case 'BigInt':
150
- return `z.number().int()${nullable ? '.nullable()' : ''}`;
158
+ decoder =
159
+ schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
160
+ break;
151
161
  default:
152
- return `z.number()${nullable ? '.nullable()' : ''}`;
162
+ decoder =
163
+ schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
164
+ break;
153
165
  }
166
+ imports.addImport({
167
+ items: [decoder],
168
+ from: schemaMeta.backendModules.common.importPath,
169
+ });
170
+ return decoder;
171
+ }
154
172
  case 'Date': {
155
173
  const decoder = schemaMeta.backendModules.common.functions[nullable ? 'excelDateNullableDecoder' : 'excelDateDecoder'];
156
174
  imports.addImport({
@@ -24,6 +24,12 @@ export type SchemaMetaData = {
24
24
  nullOrBlankDecoder: Types.FunctionName;
25
25
  excelStringNullableDecoder: Types.FunctionName;
26
26
  excelStringDecoder: Types.FunctionName;
27
+ excelNumberNullableDecoder: Types.FunctionName;
28
+ excelNumberDecoder: Types.FunctionName;
29
+ excelIntDecoder: Types.FunctionName;
30
+ excelIntNullableDecoder: Types.FunctionName;
31
+ excelBigIntDecoder: Types.FunctionName;
32
+ excelBigIntNullableDecoder: Types.FunctionName;
27
33
  excelDateNullableDecoder: Types.FunctionName;
28
34
  excelDateDecoder: Types.FunctionName;
29
35
  excelBooleanDecoder: Types.FunctionName;
package/dist/lib/meta.js CHANGED
@@ -42,6 +42,12 @@ function getSchemaMetadata({ config }) {
42
42
  nullOrBlankDecoder: Types.toFunctionName(`nullOrBlankDecoder`),
43
43
  excelStringNullableDecoder: Types.toFunctionName(`excelStringNullableDecoder`),
44
44
  excelStringDecoder: Types.toFunctionName(`excelStringDecoder`),
45
+ excelNumberNullableDecoder: Types.toFunctionName(`excelNumberNullableDecoder`),
46
+ excelNumberDecoder: Types.toFunctionName(`excelNumberDecoder`),
47
+ excelIntDecoder: Types.toFunctionName(`excelIntDecoder`),
48
+ excelIntNullableDecoder: Types.toFunctionName(`excelIntNullableDecoder`),
49
+ excelBigIntDecoder: Types.toFunctionName(`excelBigIntDecoder`),
50
+ excelBigIntNullableDecoder: Types.toFunctionName(`excelBigIntNullableDecoder`),
45
51
  excelDateNullableDecoder: Types.toFunctionName(`excelDateNullableDecoder`),
46
52
  excelDateDecoder: Types.toFunctionName(`excelDateDecoder`),
47
53
  excelBooleanDecoder: Types.toFunctionName(`excelBooleanDecoder`),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generator",
3
- "version": "0.48.0",
3
+ "version": "0.49.0",
4
4
  "main": "./dist/generator.js",
5
5
  "typings": "./dist/generator.d.ts",
6
6
  "bin": {
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@faker-js/faker": "7.6.0",
18
- "@prisma/generator-helper": "^5.6.0",
19
- "@prisma/internals": "^5.6.0",
18
+ "@prisma/generator-helper": "^5.8.0",
19
+ "@prisma/internals": "^5.8.0",
20
20
  "@typescript-eslint/eslint-plugin": "^6.10.0",
21
21
  "@typescript-eslint/parser": "^6.10.0",
22
22
  "@typescript-eslint/utils": "^6.10.0",
@@ -30,12 +30,12 @@
30
30
  "@postxl/lock": "1.1.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@prisma/client": "^5.6.0",
33
+ "@prisma/client": "^5.8.0",
34
34
  "@types/eslint": "^8.44.7",
35
35
  "@types/jest": "^29.5.0",
36
36
  "@types/node": "18.15.10",
37
37
  "jest": "29.7.0",
38
- "prisma": "5.6.0",
38
+ "prisma": "5.8.0",
39
39
  "ts-jest": "29.0.5",
40
40
  "ts-node": "10.9.1",
41
41
  "ts-toolbelt": "^9.6.0",
@@ -43,7 +43,7 @@
43
43
  "typescript": "5.2.2"
44
44
  },
45
45
  "peerDependencies": {
46
- "prisma": "5.6.0"
46
+ "prisma": "5.8.0"
47
47
  },
48
48
  "wallaby": {
49
49
  "autoDetect": true