@deterministic-code/datasources-cli 0.1.6 → 0.1.8
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/dist/generate/migrateUp.js +3 -0
- package/dist/migrateInit.js +10 -1
- package/node_modules/@deterministic-code/csharp-generators/dist/deterministic-type-converter.js +7 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.js +2 -3
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types.js +2 -3
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-types/type.cs.tmpl +1 -1
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-types/type.cs.tmpl +1 -1
- package/node_modules/@deterministic-code/csharp-generators/src/deterministic-type-converter.ts +8 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-types.ts +4 -3
- package/node_modules/@deterministic-code/csharp-generators/src/generate-view-types.ts +3 -3
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-types/type.cs.tmpl +1 -1
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-types/type.cs.tmpl +1 -1
- package/node_modules/@deterministic-code/datasources-code-generators/package.json +1 -1
- package/package.json +2 -2
|
@@ -61,6 +61,9 @@ const applyMigrateUp = async (command, flags, deps, env = process.env) => {
|
|
|
61
61
|
`migrate-up: provider ${provider} is not in backend.datasources (${dialects.join(", ") || "none"})`
|
|
62
62
|
);
|
|
63
63
|
const args = [
|
|
64
|
+
"--yes",
|
|
65
|
+
"--package",
|
|
66
|
+
"@deterministic-code/migraters",
|
|
64
67
|
"migrate-up",
|
|
65
68
|
"--provider",
|
|
66
69
|
provider,
|
package/dist/migrateInit.js
CHANGED
|
@@ -2,7 +2,16 @@ const migrateProviders = ["sqlite", "postgres", "mysql", "sqlserver", "oracle"];
|
|
|
2
2
|
const sqlMigrateProviders = (names) => migrateProviders.filter((name) => names.includes(name));
|
|
3
3
|
const migrateInitCommands = (dialects) => dialects.length === 0 ? [] : [
|
|
4
4
|
{ command: "npm", args: ["install", "@deterministic-code/migraters"] },
|
|
5
|
-
{
|
|
5
|
+
{
|
|
6
|
+
command: "npx",
|
|
7
|
+
args: [
|
|
8
|
+
"--yes",
|
|
9
|
+
"--package",
|
|
10
|
+
"@deterministic-code/migraters",
|
|
11
|
+
"migrate-init",
|
|
12
|
+
...dialects.flatMap((name) => ["--dialect", name])
|
|
13
|
+
]
|
|
14
|
+
}
|
|
6
15
|
];
|
|
7
16
|
export {
|
|
8
17
|
migrateInitCommands,
|
package/node_modules/@deterministic-code/csharp-generators/dist/deterministic-type-converter.js
CHANGED
|
@@ -125,6 +125,12 @@ const isCsValueType = (csType) => {
|
|
|
125
125
|
const t = csType.endsWith("?") ? csType.slice(0, -1) : csType;
|
|
126
126
|
return CS_VALUE_TYPES.has(t.slice(t.lastIndexOf(".") + 1));
|
|
127
127
|
};
|
|
128
|
+
const csLanguageDefault = (csType) => {
|
|
129
|
+
if (csType.endsWith("?") || isCsValueType(csType)) return void 0;
|
|
130
|
+
if (csType === "string") return '""';
|
|
131
|
+
if (csType === "byte[]") return "[]";
|
|
132
|
+
return "default!";
|
|
133
|
+
};
|
|
128
134
|
const collectionDefaultExpr = (field) => {
|
|
129
135
|
if (!field.isArray && field.isMap !== true) return void 0;
|
|
130
136
|
if (field.isNullable && field.defaultValue === null) return void 0;
|
|
@@ -146,6 +152,7 @@ const nativeDefaultExpr = (specType, field) => {
|
|
|
146
152
|
export {
|
|
147
153
|
collectionDefaultExpr,
|
|
148
154
|
convertSpecType,
|
|
155
|
+
csLanguageDefault,
|
|
149
156
|
defaultValueConverter,
|
|
150
157
|
isCsValueType,
|
|
151
158
|
nativeDefaultExpr,
|
package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
collectionDefaultExpr,
|
|
19
19
|
convertSpecType,
|
|
20
|
-
|
|
20
|
+
csLanguageDefault,
|
|
21
21
|
nativeDefaultExpr
|
|
22
22
|
} from "./deterministic-type-converter.js";
|
|
23
23
|
import { Emit } from "./emit.js";
|
|
@@ -42,11 +42,10 @@ class Generator extends Emit {
|
|
|
42
42
|
const parent = classParent(table, "datasource", typesByName);
|
|
43
43
|
const fields = declaredFields(table, "datasource", typesByName).map((f) => {
|
|
44
44
|
const csType = csTypeFor(f, typesByName);
|
|
45
|
-
const initializer = collectionDefaultExpr(f) ?? nativeDefaultExpr(fieldTypeOf(f, typesByName), f);
|
|
45
|
+
const initializer = collectionDefaultExpr(f) ?? nativeDefaultExpr(fieldTypeOf(f, typesByName), f) ?? csLanguageDefault(csType);
|
|
46
46
|
return {
|
|
47
47
|
ident: this.casing.convertFields(f.name),
|
|
48
48
|
csType,
|
|
49
|
-
required: !f.isNullable && initializer === void 0 && !isCsValueType(csType),
|
|
50
49
|
hasInitializer: initializer !== void 0,
|
|
51
50
|
initializer: initializer ?? ""
|
|
52
51
|
};
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
collectionDefaultExpr,
|
|
22
22
|
convertSpecType,
|
|
23
|
-
|
|
23
|
+
csLanguageDefault,
|
|
24
24
|
nativeDefaultExpr
|
|
25
25
|
} from "./deterministic-type-converter.js";
|
|
26
26
|
import { Emit } from "./emit.js";
|
|
@@ -62,11 +62,10 @@ class Generator extends Emit {
|
|
|
62
62
|
const parent = classParent(view, "view", typesByName);
|
|
63
63
|
const fields = declaredFields(view, "view", typesByName).map((f) => {
|
|
64
64
|
const csType = this.csTypeFor(f, typesByName);
|
|
65
|
-
const initializer = collectionDefaultExpr(f) ?? (f.kind === "primitive" ? nativeDefaultExpr(fieldTypeOf(f, typesByName), f) : void 0);
|
|
65
|
+
const initializer = collectionDefaultExpr(f) ?? (f.kind === "primitive" ? nativeDefaultExpr(fieldTypeOf(f, typesByName), f) : void 0) ?? csLanguageDefault(csType);
|
|
66
66
|
return {
|
|
67
67
|
ident: this.casing.convertFields(f.name),
|
|
68
68
|
csType,
|
|
69
|
-
required: !f.isNullable && initializer === void 0 && !isCsValueType(csType),
|
|
70
69
|
hasInitializer: initializer !== void 0,
|
|
71
70
|
initializer: initializer ?? ""
|
|
72
71
|
};
|
|
@@ -10,6 +10,6 @@ namespace Backend.Types.Datasource;
|
|
|
10
10
|
{{/descriptionDoc}}public class {{className}}{{#hasExtends}} : {{&extendsType}}{{/hasExtends}}
|
|
11
11
|
{
|
|
12
12
|
{{#fields}}
|
|
13
|
-
public {{
|
|
13
|
+
public {{csType}} {{ident}} { get; set; }{{#hasInitializer}} = {{&initializer}};{{/hasInitializer}}
|
|
14
14
|
{{/fields}}
|
|
15
15
|
}
|
|
@@ -15,6 +15,6 @@ namespace Backend.Types.View;
|
|
|
15
15
|
{{/descriptionDoc}}public class {{className}}{{#hasExtends}} : {{&extendsType}}{{/hasExtends}}
|
|
16
16
|
{
|
|
17
17
|
{{#fields}}
|
|
18
|
-
public {{
|
|
18
|
+
public {{&csType}} {{ident}} { get; set; }{{#hasInitializer}} = {{&initializer}};{{/hasInitializer}}
|
|
19
19
|
{{/fields}}
|
|
20
20
|
}
|
package/node_modules/@deterministic-code/csharp-generators/src/deterministic-type-converter.ts
CHANGED
|
@@ -146,6 +146,14 @@ export const isCsValueType = (csType: string): boolean => {
|
|
|
146
146
|
return CS_VALUE_TYPES.has(t.slice(t.lastIndexOf(".") + 1));
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
+
/** Language zero for a non-nullable reference type. Value types stay uninitialized. */
|
|
150
|
+
export const csLanguageDefault = (csType: string): string | undefined => {
|
|
151
|
+
if (csType.endsWith("?") || isCsValueType(csType)) return undefined;
|
|
152
|
+
if (csType === "string") return '""';
|
|
153
|
+
if (csType === "byte[]") return "[]";
|
|
154
|
+
return "default!";
|
|
155
|
+
};
|
|
156
|
+
|
|
149
157
|
export const collectionDefaultExpr = (field: {
|
|
150
158
|
isArray: boolean;
|
|
151
159
|
isMap?: boolean;
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
collectionDefaultExpr,
|
|
23
23
|
convertSpecType,
|
|
24
|
-
|
|
24
|
+
csLanguageDefault,
|
|
25
25
|
nativeDefaultExpr,
|
|
26
26
|
} from "./deterministic-type-converter.ts";
|
|
27
27
|
import { Emit } from "./emit.ts";
|
|
@@ -53,11 +53,12 @@ class Generator extends Emit {
|
|
|
53
53
|
const fields = declaredFields(table, "datasource", typesByName).map((f) => {
|
|
54
54
|
const csType = csTypeFor(f, typesByName);
|
|
55
55
|
const initializer =
|
|
56
|
-
collectionDefaultExpr(f) ??
|
|
56
|
+
collectionDefaultExpr(f) ??
|
|
57
|
+
nativeDefaultExpr(fieldTypeOf(f, typesByName), f) ??
|
|
58
|
+
csLanguageDefault(csType);
|
|
57
59
|
return {
|
|
58
60
|
ident: this.casing.convertFields(f.name),
|
|
59
61
|
csType,
|
|
60
|
-
required: !f.isNullable && initializer === undefined && !isCsValueType(csType),
|
|
61
62
|
hasInitializer: initializer !== undefined,
|
|
62
63
|
initializer: initializer ?? "",
|
|
63
64
|
};
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
collectionDefaultExpr,
|
|
26
26
|
convertSpecType,
|
|
27
|
-
|
|
27
|
+
csLanguageDefault,
|
|
28
28
|
nativeDefaultExpr,
|
|
29
29
|
} from "./deterministic-type-converter.ts";
|
|
30
30
|
import { Emit } from "./emit.ts";
|
|
@@ -82,11 +82,11 @@ class Generator extends Emit {
|
|
|
82
82
|
collectionDefaultExpr(f) ??
|
|
83
83
|
(f.kind === "primitive"
|
|
84
84
|
? nativeDefaultExpr(fieldTypeOf(f, typesByName), f)
|
|
85
|
-
: undefined)
|
|
85
|
+
: undefined) ??
|
|
86
|
+
csLanguageDefault(csType);
|
|
86
87
|
return {
|
|
87
88
|
ident: this.casing.convertFields(f.name),
|
|
88
89
|
csType,
|
|
89
|
-
required: !f.isNullable && initializer === undefined && !isCsValueType(csType),
|
|
90
90
|
hasInitializer: initializer !== undefined,
|
|
91
91
|
initializer: initializer ?? "",
|
|
92
92
|
};
|
|
@@ -10,6 +10,6 @@ namespace Backend.Types.Datasource;
|
|
|
10
10
|
{{/descriptionDoc}}public class {{className}}{{#hasExtends}} : {{&extendsType}}{{/hasExtends}}
|
|
11
11
|
{
|
|
12
12
|
{{#fields}}
|
|
13
|
-
public {{
|
|
13
|
+
public {{csType}} {{ident}} { get; set; }{{#hasInitializer}} = {{&initializer}};{{/hasInitializer}}
|
|
14
14
|
{{/fields}}
|
|
15
15
|
}
|
|
@@ -15,6 +15,6 @@ namespace Backend.Types.View;
|
|
|
15
15
|
{{/descriptionDoc}}public class {{className}}{{#hasExtends}} : {{&extendsType}}{{/hasExtends}}
|
|
16
16
|
{
|
|
17
17
|
{{#fields}}
|
|
18
|
-
public {{
|
|
18
|
+
public {{&csType}} {{ident}} { get; set; }{{#hasInitializer}} = {{&initializer}};{{/hasInitializer}}
|
|
19
19
|
{{/fields}}
|
|
20
20
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deterministic-code/datasources-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"datasources": "./bin/datasources.mjs"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@deterministic-code/datasources-code-generators": "0.1.
|
|
16
|
+
"@deterministic-code/datasources-code-generators": "0.1.2",
|
|
17
17
|
"@deterministic-code/generators-common": "0.0.1",
|
|
18
18
|
"@deterministic-code/deterministic-generators-common": "0.1.0",
|
|
19
19
|
"@deterministic-code/typescript-generators": "0.0.1",
|