@balena/pinejs 17.2.0-build-select-model-04b8e99a84456e8bdb6102de7527f3edad7cf0f5-1 → 17.2.0-build-select-model-98a9614ef7e5b70c9d4260521f3a6fce6dac0df1-1

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,7 +1,7 @@
1
1
  - commits:
2
2
  - subject: "odata/abstract-sql-compiler: Add support for specifying the model name
3
3
  for config files"
4
- hash: 04b8e99a84456e8bdb6102de7527f3edad7cf0f5
4
+ hash: 98a9614ef7e5b70c9d4260521f3a6fce6dac0df1
5
5
  body: |
6
6
  This allows choosing which model to use when the config file contains
7
7
  multiple models
@@ -12,7 +12,7 @@
12
12
  nested: []
13
13
  version: 17.2.0
14
14
  title: ""
15
- date: 2024-06-26T12:11:20.226Z
15
+ date: 2024-06-26T13:49:08.649Z
16
16
  - commits:
17
17
  - subject: Migrate sbvr-server to typescript
18
18
  hash: ed2267c4b4cbe448b6062263b90a97492176663c
@@ -4,4 +4,4 @@ import '../server-glue/sbvr-loader';
4
4
  export declare const version: any;
5
5
  export declare const writeAll: (output: string, outputFile?: string) => void;
6
6
  export declare const writeSqlModel: (sqlModel: SqlModel, outputFile?: string) => void;
7
- export declare const getAbstractSqlModelFromFile: (modelFile: string, modelName?: string) => AbstractSqlModel;
7
+ export declare const getAbstractSqlModelFromFile: (modelFile: string, modelName: string | undefined) => AbstractSqlModel;
package/out/bin/utils.js CHANGED
@@ -60,6 +60,21 @@ ${rule.sql}`)
60
60
  (0, exports.writeAll)(output, outputFile);
61
61
  };
62
62
  exports.writeSqlModel = writeSqlModel;
63
+ const getConfigModel = (fileContents, modelName) => {
64
+ if ('models' in fileContents) {
65
+ if (fileContents.models.length === 0) {
66
+ throw new Error('No models found in config file');
67
+ }
68
+ if (modelName != null) {
69
+ const model = fileContents.models.find((m) => m.modelName === modelName);
70
+ if (model == null) {
71
+ throw new Error(`Could not find model with name '${modelName}', found: ${fileContents.models.map((m) => m.modelName).join(', ')}`);
72
+ }
73
+ }
74
+ return fileContents.models[0];
75
+ }
76
+ return fileContents;
77
+ };
63
78
  const getAbstractSqlModelFromFile = (modelFile, modelName) => {
64
79
  let fileContents;
65
80
  try {
@@ -79,11 +94,7 @@ const getAbstractSqlModelFromFile = (modelFile, modelName) => {
79
94
  if ('tables' in fileContents) {
80
95
  return fileContents;
81
96
  }
82
- const configModel = 'models' in fileContents
83
- ? modelName
84
- ? fileContents.models.find((m) => m.modelName === modelName)
85
- : fileContents.models[0]
86
- : fileContents;
97
+ const configModel = getConfigModel(fileContents, modelName);
87
98
  if ('abstractSql' in configModel && configModel.abstractSql != null) {
88
99
  return configModel.abstractSql;
89
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "17.2.0-build-select-model-04b8e99a84456e8bdb6102de7527f3edad7cf0f5-1",
3
+ "version": "17.2.0-build-select-model-98a9614ef7e5b70c9d4260521f3a6fce6dac0df1-1",
4
4
  "main": "out/server-glue/module",
5
5
  "type": "commonjs",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -146,6 +146,6 @@
146
146
  "recursive": true
147
147
  },
148
148
  "versionist": {
149
- "publishedAt": "2024-06-26T12:11:20.999Z"
149
+ "publishedAt": "2024-06-26T13:49:09.402Z"
150
150
  }
151
151
  }
package/src/bin/utils.ts CHANGED
@@ -48,9 +48,30 @@ ${rule.sql}`,
48
48
  writeAll(output, outputFile);
49
49
  };
50
50
 
51
+ const getConfigModel = (
52
+ fileContents: Model | AbstractSqlModel | Config,
53
+ modelName?: string,
54
+ ): Model | AbstractSqlModel => {
55
+ if ('models' in fileContents) {
56
+ if (fileContents.models.length === 0) {
57
+ throw new Error('No models found in config file');
58
+ }
59
+ if (modelName != null) {
60
+ const model = fileContents.models.find((m) => m.modelName === modelName);
61
+ if (model == null) {
62
+ throw new Error(
63
+ `Could not find model with name '${modelName}', found: ${fileContents.models.map((m) => m.modelName).join(', ')}`,
64
+ );
65
+ }
66
+ }
67
+ return fileContents.models[0];
68
+ }
69
+ return fileContents;
70
+ };
71
+
51
72
  export const getAbstractSqlModelFromFile = (
52
73
  modelFile: string,
53
- modelName?: string,
74
+ modelName: string | undefined,
54
75
  ): AbstractSqlModel => {
55
76
  let fileContents: string | Model | AbstractSqlModel | Config;
56
77
  try {
@@ -68,12 +89,7 @@ export const getAbstractSqlModelFromFile = (
68
89
  if ('tables' in fileContents) {
69
90
  return fileContents;
70
91
  }
71
- const configModel =
72
- 'models' in fileContents
73
- ? modelName
74
- ? fileContents.models.find((m) => m.modelName === modelName)!
75
- : fileContents.models[0]
76
- : fileContents;
92
+ const configModel = getConfigModel(fileContents, modelName);
77
93
  if ('abstractSql' in configModel && configModel.abstractSql != null) {
78
94
  return configModel.abstractSql as AbstractSqlModel;
79
95
  } else if ('modelText' in configModel && configModel.modelText != null) {