@balena/abstract-sql-to-typescript 4.0.1 → 4.0.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.
@@ -1,3 +1,23 @@
1
+ - commits:
2
+ - subject: Fix computed fields to correctly be omitted from `Write` typings
3
+ hash: 17f5875cb59e83318b2cdddb7886008f1a48c214
4
+ body: ""
5
+ footer:
6
+ Change-type: patch
7
+ change-type: patch
8
+ author: Pagan Gazzard
9
+ nested: []
10
+ - subject: Fix tables with definitions to correctly have no writable fields
11
+ hash: 55e0d492587f74b711bc119e89d04113d0cb3c88
12
+ body: ""
13
+ footer:
14
+ Change-type: patch
15
+ change-type: patch
16
+ author: Pagan Gazzard
17
+ nested: []
18
+ version: 4.0.2
19
+ title: ""
20
+ date: 2024-09-06T14:50:04.605Z
1
21
  - commits:
2
22
  - subject: Update dependencies
3
23
  hash: 037567bd7927fb26f8096431ac5c23f497bc8f25
@@ -413,7 +433,7 @@
413
433
  date: 2024-08-26T13:17:55.861Z
414
434
  version: 4.0.1
415
435
  title: ""
416
- date: 2024-09-06T14:33:20.580Z
436
+ date: 2024-09-06T14:37:16.617Z
417
437
  - commits:
418
438
  - subject: Allow for sbvr-types v7, v8, and v9
419
439
  hash: 574f9d591d56dfc31ae4f256e1e4708a5dd893cc
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 4.0.2 - 2024-09-06
8
+
9
+ * Fix computed fields to correctly be omitted from `Write` typings [Pagan Gazzard]
10
+ * Fix tables with definitions to correctly have no writable fields [Pagan Gazzard]
11
+
7
12
  ## 4.0.1 - 2024-09-06
8
13
 
9
14
 
package/out/generate.js CHANGED
@@ -36,10 +36,15 @@ const sqlTypeToTypescriptType = (m, f, mode) => {
36
36
  }
37
37
  };
38
38
  const fieldToInterfaceProps = (key, m, f, mode) => {
39
+ if (f.computed != null) {
40
+ return;
41
+ }
39
42
  const nullable = f.required ? '' : ' | null';
40
43
  return `${(0, odata_to_abstract_sql_1.sqlNameToODataName)(key)}: ${sqlTypeToTypescriptType(m, f, mode)}${nullable};`;
41
44
  };
42
- const fieldsToInterfaceProps = (m, fields, mode) => fields.map((f) => fieldToInterfaceProps(f.fieldName, m, f, mode));
45
+ const fieldsToInterfaceProps = (m, fields, mode) => fields
46
+ .map((f) => fieldToInterfaceProps(f.fieldName, m, f, mode))
47
+ .filter((f) => f != null);
43
48
  const getSynonyms = (s, inverseSynonyms) => {
44
49
  const synonyms = [];
45
50
  for (const inverseSynonym of Object.keys(inverseSynonyms)) {
@@ -74,7 +79,10 @@ const recurseRelationships = (m, relationships, inverseSynonyms, mode, currentTa
74
79
  const propDefinitons = [];
75
80
  const addDefinition = (propName) => {
76
81
  if (f.fieldName !== propName) {
77
- propDefinitons.push(fieldToInterfaceProps(propName, m, f, mode));
82
+ const propDefiniton = fieldToInterfaceProps(propName, m, f, mode);
83
+ if (propDefiniton != null) {
84
+ propDefinitons.push(propDefiniton);
85
+ }
78
86
  }
79
87
  };
80
88
  addDefinition(parentKey);
@@ -108,6 +116,12 @@ const relationshipsToInterfaceProps = (m, table, mode) => {
108
116
  });
109
117
  };
110
118
  const tableToInterface = (m, table) => {
119
+ const writeType = table.definition != null
120
+ ?
121
+ 'Record<string, never>'
122
+ : `{
123
+ ${[...fieldsToInterfaceProps(m, table.fields, 'Write')].join('\n\t\t')}
124
+ }`;
111
125
  return trimNL `
112
126
  export interface ${modelNameToCamelCaseName(table.name)} {
113
127
  Read: {
@@ -116,9 +130,7 @@ export interface ${modelNameToCamelCaseName(table.name)} {
116
130
  ...relationshipsToInterfaceProps(m, table, 'Read'),
117
131
  ].join('\n\t\t')}
118
132
  };
119
- Write: {
120
- ${[...fieldsToInterfaceProps(m, table.fields, 'Write')].join('\n\t\t')}
121
- };
133
+ Write: ${writeType};
122
134
  }
123
135
  `;
124
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/abstract-sql-to-typescript",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "A translator for abstract sql into typescript types.",
5
5
  "main": "out/index.js",
6
6
  "types": "out/index.d.ts",
@@ -53,6 +53,6 @@
53
53
  "_": "test/**/*.ts"
54
54
  },
55
55
  "versionist": {
56
- "publishedAt": "2024-09-06T14:33:21.497Z"
56
+ "publishedAt": "2024-09-06T14:50:04.855Z"
57
57
  }
58
58
  }
package/src/generate.ts CHANGED
@@ -73,7 +73,11 @@ const fieldToInterfaceProps = (
73
73
  m: RequiredModelSubset,
74
74
  f: AbstractSqlField,
75
75
  mode: Mode,
76
- ): string => {
76
+ ): string | undefined => {
77
+ if (f.computed != null) {
78
+ // Computed terms cannot be written to
79
+ return;
80
+ }
77
81
  const nullable = f.required ? '' : ' | null';
78
82
  return `${sqlNameToODataName(key)}: ${sqlTypeToTypescriptType(
79
83
  m,
@@ -87,7 +91,9 @@ const fieldsToInterfaceProps = (
87
91
  fields: AbstractSqlField[],
88
92
  mode: Mode,
89
93
  ): string[] =>
90
- fields.map((f) => fieldToInterfaceProps(f.fieldName, m, f, mode));
94
+ fields
95
+ .map((f) => fieldToInterfaceProps(f.fieldName, m, f, mode))
96
+ .filter((f) => f != null);
91
97
 
92
98
  const getSynonyms = (
93
99
  s: string,
@@ -144,7 +150,10 @@ const recurseRelationships = (
144
150
  const addDefinition = (propName: string) => {
145
151
  // Only add the relationship if it doesn't directly match the field name to avoid duplicates
146
152
  if (f.fieldName !== propName) {
147
- propDefinitons.push(fieldToInterfaceProps(propName, m, f, mode));
153
+ const propDefiniton = fieldToInterfaceProps(propName, m, f, mode);
154
+ if (propDefiniton != null) {
155
+ propDefinitons.push(propDefiniton);
156
+ }
148
157
  }
149
158
  };
150
159
  addDefinition(parentKey);
@@ -201,6 +210,13 @@ const relationshipsToInterfaceProps = (
201
210
  };
202
211
 
203
212
  const tableToInterface = (m: RequiredModelSubset, table: AbstractSqlTable) => {
213
+ const writeType =
214
+ table.definition != null
215
+ ? // If there's a table definition then we cannot write anything
216
+ 'Record<string, never>'
217
+ : `{
218
+ ${[...fieldsToInterfaceProps(m, table.fields, 'Write')].join('\n\t\t')}
219
+ }`;
204
220
  return trimNL`
205
221
  export interface ${modelNameToCamelCaseName(table.name)} {
206
222
  Read: {
@@ -209,9 +225,7 @@ export interface ${modelNameToCamelCaseName(table.name)} {
209
225
  ...relationshipsToInterfaceProps(m, table, 'Read'),
210
226
  ].join('\n\t\t')}
211
227
  };
212
- Write: {
213
- ${[...fieldsToInterfaceProps(m, table.fields, 'Write')].join('\n\t\t')}
214
- };
228
+ Write: ${writeType};
215
229
  }
216
230
  `;
217
231
  };