@balena/pinejs 23.2.4-build-renovate-postgres-18-x-d54e05a34f38c2b551c30b37f70c95f053bd59d8-1 → 23.2.4-build-odata-response-37ad9263d98e1f823538c52c5d87ab4ed9cde91d-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.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +24 -6
- package/CHANGELOG.md +3 -1
- package/docker-compose.npm-test.yml +1 -1
- package/out/sbvr-api/odata-response.d.ts +2 -6
- package/out/sbvr-api/odata-response.js +10 -10
- package/out/sbvr-api/odata-response.js.map +1 -1
- package/package.json +2 -2
- package/src/sbvr-api/odata-response.ts +26 -29
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
- commits:
|
|
2
|
-
- subject:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
- subject: "odata-response: avoid iterating the field names when there are no
|
|
3
|
+
webresource fields"
|
|
4
|
+
hash: 37ad9263d98e1f823538c52c5d87ab4ed9cde91d
|
|
5
|
+
body: ""
|
|
6
6
|
footer:
|
|
7
7
|
Change-type: patch
|
|
8
8
|
change-type: patch
|
|
9
|
-
author:
|
|
9
|
+
author: Pagan Gazzard
|
|
10
|
+
nested: []
|
|
11
|
+
- subject: "odata-response: use native functions for creating
|
|
12
|
+
`fetchProcessingFields`"
|
|
13
|
+
hash: 1e283f7e4913b9d185d1c4f43437bf682f571521
|
|
14
|
+
body: ""
|
|
15
|
+
footer:
|
|
16
|
+
Change-type: patch
|
|
17
|
+
change-type: patch
|
|
18
|
+
author: Pagan Gazzard
|
|
19
|
+
nested: []
|
|
20
|
+
- subject: "odata-response: use `Set`s for `localFields`/`webresourceFields`
|
|
21
|
+
lookups"
|
|
22
|
+
hash: 24f0a65e6cf629578d245584833c7673ef1e7e15
|
|
23
|
+
body: ""
|
|
24
|
+
footer:
|
|
25
|
+
Change-type: patch
|
|
26
|
+
change-type: patch
|
|
27
|
+
author: Pagan Gazzard
|
|
10
28
|
nested: []
|
|
11
29
|
version: 23.2.4
|
|
12
30
|
title: ""
|
|
13
|
-
date: 2025-10-
|
|
31
|
+
date: 2025-10-29T17:23:20.248Z
|
|
14
32
|
- commits:
|
|
15
33
|
- subject: "Translations: remove dead code when namespacing relationships"
|
|
16
34
|
hash: a00806079ad2bd2edad1d0ffd3cf5b178fa67c6e
|
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
7
7
|
# v23.2.4
|
|
8
8
|
## (2025-10-29)
|
|
9
9
|
|
|
10
|
-
*
|
|
10
|
+
* odata-response: avoid iterating the field names when there are no webresource fields [Pagan Gazzard]
|
|
11
|
+
* odata-response: use native functions for creating `fetchProcessingFields` [Pagan Gazzard]
|
|
12
|
+
* odata-response: use `Set`s for `localFields`/`webresourceFields` lookups [Pagan Gazzard]
|
|
11
13
|
|
|
12
14
|
# v23.2.3
|
|
13
15
|
## (2025-10-29)
|
|
@@ -4,12 +4,8 @@ declare module '@balena/abstract-sql-compiler' {
|
|
|
4
4
|
fetchProcessingFields?: {
|
|
5
5
|
[field: string]: NonNullable<SbvrType['fetchProcessing']>;
|
|
6
6
|
};
|
|
7
|
-
localFields?:
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
webresourceFields?: {
|
|
11
|
-
[odataName: string]: true;
|
|
12
|
-
};
|
|
7
|
+
localFields?: Set<string>;
|
|
8
|
+
webresourceFields?: Set<string>;
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
11
|
import type { Result, Row } from '../database-layer/db.js';
|
|
@@ -44,10 +44,10 @@ export function resourceURI(vocab, resourceName, id) {
|
|
|
44
44
|
}
|
|
45
45
|
const getLocalFields = (table) => {
|
|
46
46
|
if (table.localFields == null) {
|
|
47
|
-
table.localFields =
|
|
47
|
+
table.localFields = new Set();
|
|
48
48
|
for (const { fieldName, dataType } of table.fields) {
|
|
49
49
|
if (!['ForeignKey', 'ConceptType'].includes(dataType)) {
|
|
50
|
-
table.localFields
|
|
50
|
+
table.localFields.add(sqlNameToODataName(fieldName));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -55,17 +55,17 @@ const getLocalFields = (table) => {
|
|
|
55
55
|
};
|
|
56
56
|
const getWebResourceFields = (table) => {
|
|
57
57
|
if (table.webresourceFields == null) {
|
|
58
|
-
table.webresourceFields =
|
|
58
|
+
table.webresourceFields = new Set();
|
|
59
59
|
for (const { fieldName, dataType } of table.fields) {
|
|
60
60
|
if (dataType === 'WebResource') {
|
|
61
|
-
table.webresourceFields
|
|
61
|
+
table.webresourceFields.add(sqlNameToODataName(fieldName));
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
return table.webresourceFields;
|
|
66
66
|
};
|
|
67
67
|
const getFetchProcessingFields = (table) => {
|
|
68
|
-
return (table.fetchProcessingFields ??=
|
|
68
|
+
return (table.fetchProcessingFields ??= Object.fromEntries(table.fields
|
|
69
69
|
.filter(({ dataType }) => sbvrTypes[dataType]
|
|
70
70
|
?.fetchProcessing != null)
|
|
71
71
|
.map(({ fieldName, dataType }) => {
|
|
@@ -74,9 +74,7 @@ const getFetchProcessingFields = (table) => {
|
|
|
74
74
|
sbvrTypes[dataType]
|
|
75
75
|
.fetchProcessing,
|
|
76
76
|
];
|
|
77
|
-
})
|
|
78
|
-
.fromPairs()
|
|
79
|
-
.value());
|
|
77
|
+
})));
|
|
80
78
|
};
|
|
81
79
|
export const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMetadata }) => {
|
|
82
80
|
if (rows.length === 0) {
|
|
@@ -98,9 +96,11 @@ export const process = async (vocab, abstractSqlModel, resourceName, rows, { inc
|
|
|
98
96
|
const fetchProcessingFields = getFetchProcessingFields(table);
|
|
99
97
|
const processedFields = fieldNames.filter((fieldName) => Object.hasOwn(fetchProcessingFields, fieldName));
|
|
100
98
|
const localFields = getLocalFields(table);
|
|
101
|
-
const expandableFields = fieldNames.filter((fieldName) => !
|
|
99
|
+
const expandableFields = fieldNames.filter((fieldName) => !localFields.has(fieldName));
|
|
102
100
|
const webresourceFields = getWebResourceFields(table);
|
|
103
|
-
const requiredSigningFields =
|
|
101
|
+
const requiredSigningFields = webresourceFields.size > 0
|
|
102
|
+
? fieldNames.filter((fieldName) => webresourceFields.has(fieldName))
|
|
103
|
+
: [];
|
|
104
104
|
const odataIdField = sqlNameToODataName(table.idField);
|
|
105
105
|
for (const row of rows) {
|
|
106
106
|
for (const fieldName of processedFields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/pinejs",
|
|
3
|
-
"version": "23.2.4-build-
|
|
3
|
+
"version": "23.2.4-build-odata-response-37ad9263d98e1f823538c52c5d87ab4ed9cde91d-2",
|
|
4
4
|
"main": "out/server-glue/module.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
|
@@ -149,6 +149,6 @@
|
|
|
149
149
|
"recursive": true
|
|
150
150
|
},
|
|
151
151
|
"versionist": {
|
|
152
|
-
"publishedAt": "2025-10-
|
|
152
|
+
"publishedAt": "2025-10-29T17:23:21.317Z"
|
|
153
153
|
}
|
|
154
154
|
}
|
|
@@ -9,12 +9,8 @@ declare module '@balena/abstract-sql-compiler' {
|
|
|
9
9
|
fetchProcessingFields?: {
|
|
10
10
|
[field: string]: NonNullable<SbvrType['fetchProcessing']>;
|
|
11
11
|
};
|
|
12
|
-
localFields?:
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
webresourceFields?: {
|
|
16
|
-
[odataName: string]: true;
|
|
17
|
-
};
|
|
12
|
+
localFields?: Set<string>;
|
|
13
|
+
webresourceFields?: Set<string>;
|
|
18
14
|
}
|
|
19
15
|
}
|
|
20
16
|
|
|
@@ -105,10 +101,10 @@ export function resourceURI(
|
|
|
105
101
|
|
|
106
102
|
const getLocalFields = (table: AbstractSqlTable) => {
|
|
107
103
|
if (table.localFields == null) {
|
|
108
|
-
table.localFields =
|
|
104
|
+
table.localFields = new Set<string>();
|
|
109
105
|
for (const { fieldName, dataType } of table.fields) {
|
|
110
106
|
if (!['ForeignKey', 'ConceptType'].includes(dataType)) {
|
|
111
|
-
table.localFields
|
|
107
|
+
table.localFields.add(sqlNameToODataName(fieldName));
|
|
112
108
|
}
|
|
113
109
|
}
|
|
114
110
|
}
|
|
@@ -117,10 +113,10 @@ const getLocalFields = (table: AbstractSqlTable) => {
|
|
|
117
113
|
|
|
118
114
|
const getWebResourceFields = (table: AbstractSqlTable) => {
|
|
119
115
|
if (table.webresourceFields == null) {
|
|
120
|
-
table.webresourceFields =
|
|
116
|
+
table.webresourceFields = new Set<string>();
|
|
121
117
|
for (const { fieldName, dataType } of table.fields) {
|
|
122
118
|
if (dataType === 'WebResource') {
|
|
123
|
-
table.webresourceFields
|
|
119
|
+
table.webresourceFields.add(sqlNameToODataName(fieldName));
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
122
|
}
|
|
@@ -128,21 +124,21 @@ const getWebResourceFields = (table: AbstractSqlTable) => {
|
|
|
128
124
|
};
|
|
129
125
|
|
|
130
126
|
const getFetchProcessingFields = (table: AbstractSqlTable) => {
|
|
131
|
-
return (table.fetchProcessingFields ??=
|
|
132
|
-
.
|
|
133
|
-
(
|
|
134
|
-
(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
127
|
+
return (table.fetchProcessingFields ??= Object.fromEntries(
|
|
128
|
+
table.fields
|
|
129
|
+
.filter(
|
|
130
|
+
({ dataType }) =>
|
|
131
|
+
(sbvrTypes[dataType as keyof typeof sbvrTypes] as SbvrType)
|
|
132
|
+
?.fetchProcessing != null,
|
|
133
|
+
)
|
|
134
|
+
.map(({ fieldName, dataType }) => {
|
|
135
|
+
return [
|
|
136
|
+
sqlNameToODataName(fieldName),
|
|
137
|
+
(sbvrTypes[dataType as keyof typeof sbvrTypes] as SbvrType)
|
|
138
|
+
.fetchProcessing!,
|
|
139
|
+
] as const;
|
|
140
|
+
}),
|
|
141
|
+
));
|
|
146
142
|
};
|
|
147
143
|
|
|
148
144
|
export const process = async (
|
|
@@ -181,13 +177,14 @@ export const process = async (
|
|
|
181
177
|
// We check that it's not a local field, rather than that it is a foreign key because of the case where the foreign key is on the other resource
|
|
182
178
|
// and hence not known to this resource
|
|
183
179
|
const expandableFields = fieldNames.filter(
|
|
184
|
-
(fieldName) => !
|
|
180
|
+
(fieldName) => !localFields.has(fieldName),
|
|
185
181
|
);
|
|
186
182
|
|
|
187
183
|
const webresourceFields = getWebResourceFields(table);
|
|
188
|
-
const requiredSigningFields =
|
|
189
|
-
|
|
190
|
-
|
|
184
|
+
const requiredSigningFields =
|
|
185
|
+
webresourceFields.size > 0
|
|
186
|
+
? fieldNames.filter((fieldName) => webresourceFields.has(fieldName))
|
|
187
|
+
: [];
|
|
191
188
|
|
|
192
189
|
const odataIdField = sqlNameToODataName(table.idField);
|
|
193
190
|
for (const row of rows) {
|