skir-typescript-gen 1.0.1 → 1.0.4
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/README.md +35 -33
- package/dist/expression_maker.js +2 -2
- package/dist/record_info.js +3 -3
- package/dist/record_info.js.map +1 -1
- package/dist/type_speller.js +1 -1
- package/package.json +4 -4
- package/src/expression_maker.ts +2 -2
- package/src/record_info.ts +3 -3
- package/src/type_speller.ts +1 -1
package/README.md
CHANGED
|
@@ -7,20 +7,15 @@ Official plugin for generating TypeScript/JavaScript code from [.skir](https://g
|
|
|
7
7
|
|
|
8
8
|
Generated code can run Node, Deno or in the browser.
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
From your project's root directory, run `npm i --save-dev skir-typescript-gen`.
|
|
10
|
+
## Set up
|
|
13
11
|
|
|
14
12
|
In your `skir.yml` file, add the following snippet under `generators`:
|
|
15
13
|
```yaml
|
|
16
14
|
- mod: skir-typescript-gen
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
importPathExtension: ""
|
|
15
|
+
outDir: ./skirout
|
|
16
|
+
config: {}
|
|
20
17
|
```
|
|
21
18
|
|
|
22
|
-
The `npm run skirc` command will now generate .js and .t.ts files within the `skirout` directory.
|
|
23
|
-
|
|
24
19
|
For more information, see this TypeScript project [example](https://github.com/gepheum/skir-typescript-example).
|
|
25
20
|
|
|
26
21
|
## TypeScript generated code guide
|
|
@@ -30,7 +25,7 @@ The examples below are for the code generated from [this](https://github.com/gep
|
|
|
30
25
|
### Referring to generated symbols
|
|
31
26
|
|
|
32
27
|
```typescript
|
|
33
|
-
import { TARZAN, User, UserHistory, UserRegistry } from "../skirout/user";
|
|
28
|
+
import { TARZAN, SubscriptionStatus, User, UserHistory, UserRegistry } from "../skirout/user";
|
|
34
29
|
```
|
|
35
30
|
|
|
36
31
|
### Struct classes
|
|
@@ -162,14 +157,14 @@ enum SubscriptionStatus {
|
|
|
162
157
|
#### Making enum values
|
|
163
158
|
|
|
164
159
|
```typescript
|
|
165
|
-
const johnStatus =
|
|
166
|
-
const janeStatus =
|
|
167
|
-
const lylaStatus =
|
|
168
|
-
// ^ same as
|
|
169
|
-
const jolyStatus =
|
|
170
|
-
|
|
171
|
-
// Use create({kind: ..., value: ...}) for
|
|
172
|
-
const roniStatus =
|
|
160
|
+
const johnStatus = SubscriptionStatus.FREE;
|
|
161
|
+
const janeStatus = SubscriptionStatus.PREMIUM;
|
|
162
|
+
const lylaStatus = SubscriptionStatus.create("PREMIUM");
|
|
163
|
+
// ^ same as SubscriptionStatus.PREMIUM
|
|
164
|
+
const jolyStatus = SubscriptionStatus.UNKNOWN;
|
|
165
|
+
|
|
166
|
+
// Use create({kind: ..., value: ...}) for wrapper variants.
|
|
167
|
+
const roniStatus = SubscriptionStatus.create({
|
|
173
168
|
kind: "trial",
|
|
174
169
|
value: {
|
|
175
170
|
startTime: Timestamp.fromUnixMillis(1234),
|
|
@@ -180,27 +175,28 @@ const roniStatus = User.SubscriptionStatus.create({
|
|
|
180
175
|
#### Conditions on enums
|
|
181
176
|
|
|
182
177
|
```typescript
|
|
183
|
-
// Use
|
|
184
|
-
assert(johnStatus.kind === "FREE");
|
|
185
|
-
assert(johnStatus.value === undefined);
|
|
178
|
+
// Use 'union.kind' to check which variant the enum value holds.
|
|
179
|
+
assert(johnStatus.union.kind === "FREE");
|
|
186
180
|
|
|
187
|
-
|
|
188
|
-
assert(jolyStatus.kind === "?");
|
|
181
|
+
assert(jolyStatus.union.kind === "UNKNOWN");
|
|
189
182
|
|
|
190
|
-
assert(roniStatus.kind === "trial");
|
|
191
|
-
|
|
183
|
+
assert(roniStatus.union.kind === "trial");
|
|
184
|
+
// If the enum holds a wrapper variant, you can access the wrapped value through
|
|
185
|
+
// 'union.value'.
|
|
186
|
+
assert(roniStatus.union.value.startTime.unixMillis === 1234);
|
|
192
187
|
|
|
193
|
-
function getSubscriptionInfoText(status:
|
|
194
|
-
//
|
|
188
|
+
function getSubscriptionInfoText(status: SubscriptionStatus): string {
|
|
189
|
+
// Pattern matching on enum variants
|
|
195
190
|
switch (status.union.kind) {
|
|
196
|
-
case "
|
|
191
|
+
case "UNKNOWN":
|
|
197
192
|
return "Unknown subscription status";
|
|
198
193
|
case "FREE":
|
|
199
194
|
return "Free user";
|
|
200
195
|
case "PREMIUM":
|
|
201
196
|
return "Premium user";
|
|
202
197
|
case "trial":
|
|
203
|
-
// Here the compiler knows that the type of union.value is
|
|
198
|
+
// Here the compiler knows that the type of union.value is
|
|
199
|
+
// SubscriptionStatus.Trial
|
|
204
200
|
return "On trial since " + status.union.value.startTime;
|
|
205
201
|
}
|
|
206
202
|
}
|
|
@@ -232,7 +228,7 @@ console.log(serializer.toJsonCode(john, "readable"));
|
|
|
232
228
|
// You should pick the readable flavor mostly for debugging purposes.
|
|
233
229
|
|
|
234
230
|
// Serialize 'john' to binary format.
|
|
235
|
-
|
|
231
|
+
const johnBytes = serializer.toBytes(john);
|
|
236
232
|
|
|
237
233
|
// The binary format is not human readable, but it is slightly more compact than
|
|
238
234
|
// JSON, and serialization/deserialization can be a bit faster in languages like
|
|
@@ -289,7 +285,7 @@ assert(jack.pets === jade.pets);
|
|
|
289
285
|
|
|
290
286
|
```typescript
|
|
291
287
|
const userRegistry = UserRegistry.create({
|
|
292
|
-
users: [john, jane, lylaMut],
|
|
288
|
+
users: [john, jane, lylaMut, evilJane],
|
|
293
289
|
});
|
|
294
290
|
|
|
295
291
|
// searchUsers() returns the user with the given key (specified in the .skir
|
|
@@ -298,6 +294,10 @@ const userRegistry = UserRegistry.create({
|
|
|
298
294
|
// time.
|
|
299
295
|
assert(userRegistry.searchUsers(42) === john);
|
|
300
296
|
assert(userRegistry.searchUsers(100) === undefined);
|
|
297
|
+
|
|
298
|
+
// If multiple elements have the same key, the search method returns the last
|
|
299
|
+
// one. Duplicates are allowed but generally discouraged.
|
|
300
|
+
assert(userRegistry.searchUsers(43) === evilJane);
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
### Constants
|
|
@@ -360,9 +360,11 @@ expect(tarzan).toMatch({
|
|
|
360
360
|
},
|
|
361
361
|
],
|
|
362
362
|
subscriptionStatus: {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
363
|
+
union: {
|
|
364
|
+
kind: "trial",
|
|
365
|
+
value: {
|
|
366
|
+
startTime: Timestamp.fromUnixMillis(1234),
|
|
367
|
+
},
|
|
366
368
|
},
|
|
367
369
|
},
|
|
368
370
|
// `userId` is not specified so it can be anything
|
package/dist/expression_maker.js
CHANGED
|
@@ -81,7 +81,7 @@ export function toFrozenExpression(arg) {
|
|
|
81
81
|
primitive === "float64") {
|
|
82
82
|
defaultValue = "0";
|
|
83
83
|
}
|
|
84
|
-
else if (primitive === "int64" || primitive === "
|
|
84
|
+
else if (primitive === "int64" || primitive === "hash64") {
|
|
85
85
|
defaultValue = "BigInt(0)";
|
|
86
86
|
}
|
|
87
87
|
else if (primitive === "timestamp") {
|
|
@@ -112,7 +112,7 @@ function canBeFalsy(type) {
|
|
|
112
112
|
return (primitive === "bool" ||
|
|
113
113
|
primitive === "int32" ||
|
|
114
114
|
primitive === "int64" ||
|
|
115
|
-
primitive === "
|
|
115
|
+
primitive === "hash64" ||
|
|
116
116
|
primitive === "float32" ||
|
|
117
117
|
primitive === "float64" ||
|
|
118
118
|
primitive === "string");
|
package/dist/record_info.js
CHANGED
|
@@ -126,8 +126,8 @@ class RecordInfoCreator {
|
|
|
126
126
|
// Register the special UNKNOWN variant.
|
|
127
127
|
registerConstantVariants({
|
|
128
128
|
isConstant: true,
|
|
129
|
-
name: "
|
|
130
|
-
quotedName: '"
|
|
129
|
+
name: "UNKNOWN",
|
|
130
|
+
quotedName: '"UNKNOWN"',
|
|
131
131
|
property: "UNKNOWN",
|
|
132
132
|
number: 0,
|
|
133
133
|
doc: { text: "", pieces: [] },
|
|
@@ -235,7 +235,7 @@ class RecordInfoCreator {
|
|
|
235
235
|
case "string":
|
|
236
236
|
return "k";
|
|
237
237
|
case "int64":
|
|
238
|
-
case "
|
|
238
|
+
case "hash64":
|
|
239
239
|
// BigInt is not hashable.
|
|
240
240
|
return "k.toString()";
|
|
241
241
|
case "timestamp":
|
package/dist/record_info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAmI1E,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,WAAwB;IAExB,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,iBAAiB;IACrB,YACmB,MAAsB,EACtB,WAAwB;QADxB,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QAEzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAID,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE/B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACjE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAY;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,UAAU,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,gBAAgB,GAAG,SAAS,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,gBAAgB,GACpB,CAAC,KAAK,CAAC,WAAW;YAClB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACxB,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;QAC3B,IAAI,SAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,0BAA0B;YAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,qDAAqD;gBACrD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC3D,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,KAAK,eAAe,EAAE,CAAC;YAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,qBAAqB,GAAG,GAAG,CAAC,IAAI;iBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAChB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CACnE;iBACA,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,IACE,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAC9C,qBAAqB,KAAK,MAAM,EAChC,CAAC;gBACD,qBAAqB,GAAG,GAAG,qBAAqB,GAAG,CAAC;YACtD,CAAC;YACD,SAAS,GAAG;gBACV,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,aAAa;gBAC5B,kBAAkB,EAAE,kBAAkB;gBACtC,eAAe,EAAE,eAAe;gBAChC,qBAAqB,EAAE,qBAAqB;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,gBAAgB,EAAE,gBAAgB;YAClC,iBAAiB,EAAE,iBAAiB;YACpC,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,gBAAgB,GAA0B,EAAE,CAAC;QACnD,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,MAAM,gCAAgC,GAAa,EAAE,CAAC;QACtD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,MAAM,wBAAwB,GAAG,CAAC,CAAsB,EAAQ,EAAE;YAChE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;gBACrB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aACxB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,wCAAwC;QACxC,wBAAwB,CAAC;YACvB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,WAAW;YACvB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC9B,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,sBAAsB;gBACtB,wBAAwB,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;gBACpD,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,uBAAuB,CAAC,IAAI,CAC1B,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gCAAgC,CAAC,IAAI,CACnC,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,MAAM;iBACd,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,aAAa,EAAE,CAAC,eAAe,CAAC,MAAM;YACtC,gBAAgB,EAAE,gBAAgB;YAClC,eAAe,EAAE,eAAe;YAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACtD,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;YACxE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;SAC9C,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,OAAc;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAC,OAAc;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;YAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;SAClC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,cAAqB;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;QACtD,MAAM,OAAO,GAAG,EAAgC,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,IAAuC;QAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,SAAS,CAAC;oBACf,KAAK,QAAQ;wBACX,OAAO,GAAG,CAAC;oBACb,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,0BAA0B;wBAC1B,OAAO,cAAc,CAAC;oBACxB,KAAK,WAAW;wBACd,OAAO,cAAc,CAAC;oBACxB,KAAK,OAAO;wBACV,OAAO,cAAc,CAAC;oBACxB,OAAO,CAAC,CAAC,CAAC;wBACR,MAAM,CAAC,GAAU,IAAI,CAAC,SAAS,CAAC;wBAChC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,kCAAkC,GAAwB,IAAI,GAAG,CAAC;IACtE,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IACpE,SAAS;CACV,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,sBAAsB,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,kCAAkC,CAAC,GAAG,CAAC,WAAW,CAAC;QACnD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,uBAAuB;AACvB,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,gCAAgC,CAAC,GAAG,CAAC,WAAW,CAAC;QACtD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,WAAW;IACX,KAAK;IACL,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,SAAS;IACT,aAAa;IACb,SAAS;IACT,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,IAAI;IACJ,WAAW;IACX,OAAO;IACP,OAAO;CACR,CAAC,CAAC"}
|
package/dist/type_speller.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skir-typescript-gen",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"lint:fix": "eslint src/**/*.ts --fix"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"skir-internal": "^0.0
|
|
35
|
+
"skir-internal": "^0.1.0",
|
|
36
36
|
"zod": "^4.2.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"mocha": "^11.7.5",
|
|
47
47
|
"prettier": "^3.2.4",
|
|
48
48
|
"prettier-plugin-organize-imports": "^4.2.0",
|
|
49
|
-
"skir": "^
|
|
50
|
-
"skir-client": "^
|
|
49
|
+
"skir": "^1.0.11",
|
|
50
|
+
"skir-client": "^1.0.9",
|
|
51
51
|
"ts-node": "^10.9.2",
|
|
52
52
|
"tsx": "^4.21.0",
|
|
53
53
|
"typescript": "^5.2.2",
|
package/src/expression_maker.ts
CHANGED
|
@@ -92,7 +92,7 @@ export function toFrozenExpression(arg: ToFrozenExpressionArg): string {
|
|
|
92
92
|
primitive === "float64"
|
|
93
93
|
) {
|
|
94
94
|
defaultValue = "0";
|
|
95
|
-
} else if (primitive === "int64" || primitive === "
|
|
95
|
+
} else if (primitive === "int64" || primitive === "hash64") {
|
|
96
96
|
defaultValue = "BigInt(0)";
|
|
97
97
|
} else if (primitive === "timestamp") {
|
|
98
98
|
defaultValue = "$.Timestamp.UNIX_EPOCH";
|
|
@@ -121,7 +121,7 @@ function canBeFalsy(type: ResolvedType): boolean {
|
|
|
121
121
|
primitive === "bool" ||
|
|
122
122
|
primitive === "int32" ||
|
|
123
123
|
primitive === "int64" ||
|
|
124
|
-
primitive === "
|
|
124
|
+
primitive === "hash64" ||
|
|
125
125
|
primitive === "float32" ||
|
|
126
126
|
primitive === "float64" ||
|
|
127
127
|
primitive === "string"
|
package/src/record_info.ts
CHANGED
|
@@ -290,8 +290,8 @@ class RecordInfoCreator {
|
|
|
290
290
|
// Register the special UNKNOWN variant.
|
|
291
291
|
registerConstantVariants({
|
|
292
292
|
isConstant: true,
|
|
293
|
-
name: "
|
|
294
|
-
quotedName: '"
|
|
293
|
+
name: "UNKNOWN",
|
|
294
|
+
quotedName: '"UNKNOWN"',
|
|
295
295
|
property: "UNKNOWN",
|
|
296
296
|
number: 0,
|
|
297
297
|
doc: { text: "", pieces: [] },
|
|
@@ -409,7 +409,7 @@ class RecordInfoCreator {
|
|
|
409
409
|
case "string":
|
|
410
410
|
return "k";
|
|
411
411
|
case "int64":
|
|
412
|
-
case "
|
|
412
|
+
case "hash64":
|
|
413
413
|
// BigInt is not hashable.
|
|
414
414
|
return "k.toString()";
|
|
415
415
|
case "timestamp":
|