typespec-typescript-emitter 1.3.0 → 2.1.0
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/.github/workflows/publish-npm.yml +6 -5
- package/CHANGELOG.md +14 -21
- package/README.md +32 -0
- package/dist/src/emit_types.js +2 -0
- package/dist/src/emit_types.js.map +1 -1
- package/dist/src/lib.d.ts +2 -0
- package/dist/src/lib.js +13 -1
- package/dist/src/lib.js.map +1 -1
- package/dist/src/resolve/Resolvable.d.ts +6 -1
- package/dist/src/resolve/Resolvable.js +34 -4
- package/dist/src/resolve/Resolvable.js.map +1 -1
- package/dist/src/resolve/Resolvable_helpers.d.ts +3 -0
- package/dist/src/resolve/Resolvable_helpers.js.map +1 -1
- package/dist/src/resolve/operationTypemap.js +4 -0
- package/dist/src/resolve/operationTypemap.js.map +1 -1
- package/dist/src/resolve/types/Model.Indexed.js +2 -2
- package/dist/src/resolve/types/Model.Indexed.js.map +1 -1
- package/dist/src/resolve/types/Model.Shaped.js +10 -4
- package/dist/src/resolve/types/Model.Shaped.js.map +1 -1
- package/dist/src/resolve/types/Scalar.js +4 -2
- package/dist/src/resolve/types/Scalar.js.map +1 -1
- package/dist/src/resolve/types/Tuple.js +2 -2
- package/dist/src/resolve/types/Tuple.js.map +1 -1
- package/dist/src/resolve/types/Union.js +2 -2
- package/dist/src/resolve/types/Union.js.map +1 -1
- package/package.json +2 -1
- package/src/emit_types.ts +2 -0
- package/src/lib.ts +16 -1
- package/src/resolve/Resolvable.ts +51 -5
- package/src/resolve/Resolvable_helpers.ts +3 -0
- package/src/resolve/operationTypemap.ts +4 -0
- package/src/resolve/types/Model.Indexed.ts +2 -0
- package/src/resolve/types/Model.Shaped.ts +10 -2
- package/src/resolve/types/Scalar.ts +4 -2
- package/src/resolve/types/Tuple.ts +2 -2
- package/src/resolve/types/Union.ts +13 -2
- package/test/helpers/wrapper.ts +10 -3
- package/test/routes/routes.test.ts +1 -1
- package/test/typemap/typemap.test.ts +4 -8
|
@@ -2,6 +2,11 @@ name: Publish to NPM
|
|
|
2
2
|
on:
|
|
3
3
|
release:
|
|
4
4
|
types: [created]
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
id-token: write
|
|
9
|
+
contents: read
|
|
5
10
|
|
|
6
11
|
jobs:
|
|
7
12
|
build-publish:
|
|
@@ -9,12 +14,10 @@ jobs:
|
|
|
9
14
|
steps:
|
|
10
15
|
- name: Checkout
|
|
11
16
|
uses: actions/checkout@v4
|
|
12
|
-
with:
|
|
13
|
-
token: ${{ secrets.GH_TOKEN }}
|
|
14
17
|
- name: Setup Node
|
|
15
18
|
uses: actions/setup-node@v4
|
|
16
19
|
with:
|
|
17
|
-
node-version: "
|
|
20
|
+
node-version: "24"
|
|
18
21
|
registry-url: "https://registry.npmjs.org"
|
|
19
22
|
- name: Install dependencies
|
|
20
23
|
run: npm ci
|
|
@@ -22,5 +25,3 @@ jobs:
|
|
|
22
25
|
run: npm run build
|
|
23
26
|
- name: Publish package to NPM
|
|
24
27
|
run: npm publish
|
|
25
|
-
env:
|
|
26
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
# [1.
|
|
1
|
+
# [2.1.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.0.1...v2.1.0) (2025-12-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* overridable types + typeguards, closes [#15](https://github.com/crowbait/typespec-typescript-emitter/issues/15) ([71a6fef](https://github.com/crowbait/typespec-typescript-emitter/commit/71a6fef82569a4d378e1ba3c4e9dd94a2e6ccc80))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [2.0.1](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.3.0...v2.0.1) (2025-11-30)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.3.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.0.0...v1.3.0) (2025-11-30)
|
|
2
15
|
|
|
3
16
|
|
|
4
17
|
### Bug Fixes
|
|
@@ -32,23 +45,3 @@
|
|
|
32
45
|
|
|
33
46
|
|
|
34
47
|
|
|
35
|
-
## [1.1.2](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.1.1...v1.1.2) (2025-11-17)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## [1.1.1](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.1.0...v1.1.1) (2025-09-26)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### Bug Fixes
|
|
43
|
-
|
|
44
|
-
* routed typemap respects visibility modifiers ([13c0a45](https://github.com/crowbait/typespec-typescript-emitter/commit/13c0a45f38b949a36ad2e8b6c40a1829ff3b54da))
|
|
45
|
-
* routed-typemap handling of multiple verbs on same path ([f33e6d9](https://github.com/crowbait/typespec-typescript-emitter/commit/f33e6d94d78523206813ab4191feee29cb6c3b2e))
|
|
46
|
-
* routes / routed typemap emitters now resolve ops inside interfaces ([21504bc](https://github.com/crowbait/typespec-typescript-emitter/commit/21504bc74cc4f77aeac1f1bcb4e52a42917d9146))
|
|
47
|
-
* thorough resolution of nested types in typemap ([95af299](https://github.com/crowbait/typespec-typescript-emitter/commit/95af299b662dbcba0d21b56aa8ebe2f91c6e6e92))
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
# [1.1.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.0.0...v1.1.0) (2025-05-23)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@ It can the following things:
|
|
|
22
22
|
- [In Types](#in-types)
|
|
23
23
|
- [In Typeguards](#in-typeguards)
|
|
24
24
|
- [Nominal Enums](#nominal-enums)
|
|
25
|
+
- [Overriding Types \& Typeguards](#overriding-types--typeguards)
|
|
25
26
|
- [Emitter: Routes](#emitter-routes)
|
|
26
27
|
- [Emitter: Routed Typemap](#emitter-routed-typemap)
|
|
27
28
|
- [Contributing](#contributing)
|
|
@@ -65,6 +66,8 @@ The following options are available:
|
|
|
65
66
|
- `enable-routed-typemap` (default: false, **requires** `enable-types`): enables output of an [indexable type](#emitter-routed-typemap), mapping paths and HTTP verbs to request and response bodies.
|
|
66
67
|
- `string-nominal-enums` (default: false): outputs member names as strings instead of index values for enum members declared without explicit values.
|
|
67
68
|
- `serializable-date-types` (default: false): outputs serializable types for typespec's dates types that match OpenApi spec. Types like `offsetDateTime`, `plainDate` and `utcDateTime` will be emitted as `string` and `unixTimestamp32` as `number`. If disabled, all these types resolve to `Date`.
|
|
69
|
+
- `type-mappings` (default: undefined): see [Overriding Types \& Typeguards](#overriding-types--typeguards)
|
|
70
|
+
- `typeguard-mappings` (default: undefined): see [Overriding Types \& Typeguards](#overriding-types--typeguards)
|
|
68
71
|
|
|
69
72
|
## Emitter: Types
|
|
70
73
|
|
|
@@ -289,6 +292,35 @@ export enum Status {
|
|
|
289
292
|
}
|
|
290
293
|
```
|
|
291
294
|
|
|
295
|
+
### Overriding Types & Typeguards
|
|
296
|
+
|
|
297
|
+
Using the configuration options `type-mappings` and `typeguard-mappings`, you can override the type(guard) resolution for specific types.
|
|
298
|
+
You specify a "path" of any length, ending in the **type** or **model property** to be overridden. This "path" can consist of namespaces, models and model properties:
|
|
299
|
+
|
|
300
|
+
```yml
|
|
301
|
+
type-mappings:
|
|
302
|
+
"myModel/overriddenProperty": "number"
|
|
303
|
+
"myNamespace/myModel/overriddenProperty": "string"
|
|
304
|
+
"Overridden": "'stringLiteral'"
|
|
305
|
+
"myNamespace/OverriddenModel": "{a: string}"
|
|
306
|
+
typeguard-mappings:
|
|
307
|
+
"Overridden": "typeof t === 'string'"
|
|
308
|
+
"myNamespace/OverriddenModel": "t['a'] !== undefined && typeof t['a'] === 'string'"
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
This example config does the following:
|
|
312
|
+
|
|
313
|
+
- any property `overriddenProperty` on any model `myModel` will resolve to `number`
|
|
314
|
+
- any property `overriddenProperty` on any model `myModel` that is an immediate child of `myNamespace` will resolve to `string`
|
|
315
|
+
- any type named `Overridden` will resolve to `'stringLiteral'`
|
|
316
|
+
- its typeguard resolves to `typeof t === 'string'`
|
|
317
|
+
- any type named `OverriddenModel` that is an immediate child of `myNamespace` will resolve to `{a: string}`
|
|
318
|
+
- its typeguard resolves to `t['a'] !== undefined && typeof t['a'] === 'string'`
|
|
319
|
+
|
|
320
|
+
You can use `t` in typeguards to access the variable currently being tested. Overridden types without overridden typeguards will default to `true` (which does not break `!== undefined` for non-optional model properties).
|
|
321
|
+
|
|
322
|
+
You *can* specified the name of a known type as the resolution target, because your specified value is emitted verbatim instead of the default resolution. *However*, there is no import resolution being performed, so if you specify the name of another type, that other type *has* to be in the same namespace so that it ends up in the same typescript file.
|
|
323
|
+
|
|
292
324
|
## Emitter: Routes
|
|
293
325
|
|
|
294
326
|
When enabled, this emitter will traverse your program to find all operations (`op`).
|
package/dist/src/emit_types.js
CHANGED
|
@@ -33,6 +33,7 @@ export const emitTypes = async (program, options, typemap) => {
|
|
|
33
33
|
nestlevel: 0,
|
|
34
34
|
rootType: t,
|
|
35
35
|
typemap: typemap,
|
|
36
|
+
ancestryPath: [...t.namespaces, t.type.name],
|
|
36
37
|
});
|
|
37
38
|
imports[filename].namespaces.push(...resolved.imports);
|
|
38
39
|
let declaration = "export ";
|
|
@@ -82,6 +83,7 @@ export const emitTypes = async (program, options, typemap) => {
|
|
|
82
83
|
rootType: t,
|
|
83
84
|
typemap: typemap,
|
|
84
85
|
accessor: "t",
|
|
86
|
+
ancestryPath: [...t.namespaces, t.type.name],
|
|
85
87
|
});
|
|
86
88
|
if (typeguard.resolved.value) {
|
|
87
89
|
if (typeguard.hasVisibility) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit_types.js","sourceRoot":"","sources":["../../src/emit_types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,WAAW,EAAQ,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,OAAgB,EAChB,OAAuB,EACvB,OAAiB,EACF,EAAE;IACjB,mCAAmC;IACnC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,8CAA8C;IAC9C,MAAM,OAAO,GAMT,EAAE,CAAC;IAEP,iBAAiB;IACjB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG;YAC9C,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;IAEF,oBAAoB;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC/D,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"emit_types.js","sourceRoot":"","sources":["../../src/emit_types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface EmitterOptions {
|
|
|
8
8
|
"enable-routed-typemap": boolean;
|
|
9
9
|
"string-nominal-enums": boolean;
|
|
10
10
|
"serializable-date-types": boolean;
|
|
11
|
+
"type-mappings": Record<string, string>;
|
|
12
|
+
"typeguard-mappings": Record<string, string>;
|
|
11
13
|
}
|
|
12
14
|
/** Maps option to its default value and options that must be set to `true` for this one to work */
|
|
13
15
|
export declare const optionDependencies: (context: EmitContext) => { [K in keyof EmitterOptions]: [EmitterOptions[K], (keyof EmitterOptions)[]]; };
|
package/dist/src/lib.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createTypeSpecLibrary, } from "@typespec/compiler";
|
|
2
2
|
const EmitterOptionsSchema = {
|
|
3
3
|
type: "object",
|
|
4
|
-
additionalProperties: false,
|
|
5
4
|
properties: {
|
|
6
5
|
"root-namespaces": { type: "array", items: { type: "string" } },
|
|
7
6
|
"out-dir": { type: "string", format: "absolute-path" },
|
|
@@ -11,8 +10,19 @@ const EmitterOptionsSchema = {
|
|
|
11
10
|
"enable-routed-typemap": { type: "boolean" },
|
|
12
11
|
"string-nominal-enums": { type: "boolean" },
|
|
13
12
|
"serializable-date-types": { type: "boolean" },
|
|
13
|
+
"type-mappings": {
|
|
14
|
+
type: "object",
|
|
15
|
+
required: [],
|
|
16
|
+
additionalProperties: { type: "string" },
|
|
17
|
+
},
|
|
18
|
+
"typeguard-mappings": {
|
|
19
|
+
type: "object",
|
|
20
|
+
required: [],
|
|
21
|
+
additionalProperties: { type: "string" },
|
|
22
|
+
},
|
|
14
23
|
},
|
|
15
24
|
required: ["root-namespaces"],
|
|
25
|
+
additionalProperties: false,
|
|
16
26
|
};
|
|
17
27
|
/** Maps option to its default value and options that must be set to `true` for this one to work */
|
|
18
28
|
export const optionDependencies = (context) => ({
|
|
@@ -24,6 +34,8 @@ export const optionDependencies = (context) => ({
|
|
|
24
34
|
["serializable-date-types"]: [false, []],
|
|
25
35
|
["enable-typeguards"]: [false, ["enable-types"]],
|
|
26
36
|
["enable-routed-typemap"]: [false, ["enable-types"]],
|
|
37
|
+
["type-mappings"]: [{}, []],
|
|
38
|
+
["typeguard-mappings"]: [{}, []],
|
|
27
39
|
});
|
|
28
40
|
export const $lib = createTypeSpecLibrary({
|
|
29
41
|
name: "typespec-typescript-emitter",
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAe5B,MAAM,oBAAoB,GAAmC;IAC3D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE;QACtD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5C,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3C,yBAAyB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9C,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzC;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzC;KACF;IACD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAC7B,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAoB,EAGpB,EAAE,CAAC,CAAC;IACJ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7B,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAC3C,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;IAC7B,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9B,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;IACrC,CAAC,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;IAExC,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpD,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACP,OAAO,EAAE,oBAAoB;KAC9B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -8,7 +8,11 @@ export declare abstract class Resolvable<T extends Type> {
|
|
|
8
8
|
* Resolves another type for the current type, handling required changes to the resolution options.
|
|
9
9
|
* The passed `out` object is not signifiantly changed, only the `hasVisibility` flag is managed.
|
|
10
10
|
*/
|
|
11
|
-
protected resolveNested<R extends typeof this._r>(t: Type, opts: ResolverOptions<R>, out: ResolverResult<R>,
|
|
11
|
+
protected resolveNested<R extends typeof this._r>(t: Type, opts: ResolverOptions<R>, out: ResolverResult<R>,
|
|
12
|
+
/** The name that should be added to the ancestry path. */
|
|
13
|
+
ancestryName: string | string[] | undefined,
|
|
14
|
+
/** Increases nestlevel, used for indentation formatting */
|
|
15
|
+
nest?: boolean): Promise<ResolverResult<R>>;
|
|
12
16
|
/** Creates the appropriate Resolvable instance for a given type. */
|
|
13
17
|
static for<T extends Type>(r: Resolver, t: T): Promise<Resolvable<T>>;
|
|
14
18
|
constructor(t: T, r: Resolver);
|
|
@@ -21,6 +25,7 @@ export declare abstract class Resolvable<T extends Type> {
|
|
|
21
25
|
protected abstract typeguard(opts: ResolverOptions<Resolver.Typeguard>, out: ResolverResult<Resolver.Typeguard>): Promise<void>;
|
|
22
26
|
/** Resolves the type, modifying an output object in place. */
|
|
23
27
|
resolve(opts: ResolverOptions<Resolver>, out: ResolverResult<Resolver>): Promise<void>;
|
|
28
|
+
/** Adds visibility maps to known types, if needed (only applies to shaped model). */
|
|
24
29
|
protected transformKnownType(opts: ResolverOptions<Resolver>, out: ResolverResult<Resolver>): void;
|
|
25
30
|
/** Returns true if this type or anything it contains or references has visibility modifiers. */
|
|
26
31
|
hasVisibility(opts: ResolverOptions<Resolver>, out: ResolverResult<Resolver>): Promise<boolean>;
|
|
@@ -20,18 +20,24 @@ export class Resolvable {
|
|
|
20
20
|
* Resolves another type for the current type, handling required changes to the resolution options.
|
|
21
21
|
* The passed `out` object is not signifiantly changed, only the `hasVisibility` flag is managed.
|
|
22
22
|
*/
|
|
23
|
-
async resolveNested(t, opts, out,
|
|
23
|
+
async resolveNested(t, opts, out,
|
|
24
|
+
/** The name that should be added to the ancestry path. */
|
|
25
|
+
ancestryName,
|
|
26
|
+
/** Increases nestlevel, used for indentation formatting */
|
|
27
|
+
nest = true) {
|
|
24
28
|
// prepare nested resolution
|
|
25
29
|
if (nest)
|
|
26
30
|
opts.nestlevel++;
|
|
27
31
|
if (!opts.parents)
|
|
28
32
|
opts.parents = [];
|
|
29
33
|
opts.parents.push(this._t);
|
|
34
|
+
opts.ancestryPath.push(...(Array.isArray(ancestryName) ? ancestryName : [ancestryName]));
|
|
30
35
|
const ret = await Resolvable.resolve(this._r, t, opts);
|
|
31
36
|
// revert to current level
|
|
32
37
|
if (nest)
|
|
33
38
|
opts.nestlevel--;
|
|
34
39
|
opts.parents.pop();
|
|
40
|
+
opts.ancestryPath.splice(-(Array.isArray(ancestryName) ? ancestryName.length : 1));
|
|
35
41
|
return ret;
|
|
36
42
|
}
|
|
37
43
|
/** Creates the appropriate Resolvable instance for a given type. */
|
|
@@ -100,7 +106,6 @@ export class Resolvable {
|
|
|
100
106
|
const currentNamespaces = namespaceListFromNamespace(this._t.namespace);
|
|
101
107
|
// find known resolved type
|
|
102
108
|
const foundKnownResolved = (() => {
|
|
103
|
-
const currentNamespaces = namespaceListFromNamespace(this._t.namespace);
|
|
104
109
|
if (currentNamespaces && currentNamespaces.length > 0) {
|
|
105
110
|
const found = opts.typemap.find((mt) => mt.type.kind === this._t.kind &&
|
|
106
111
|
mt.type.name === this._t.name &&
|
|
@@ -130,13 +135,37 @@ export class Resolvable {
|
|
|
130
135
|
out.imports.push(foundKnownResolved.namespaces);
|
|
131
136
|
}
|
|
132
137
|
// optionally allow found type to modify output
|
|
133
|
-
|
|
134
|
-
this.transformKnownType(opts, out);
|
|
138
|
+
this.transformKnownType(opts, out);
|
|
135
139
|
return;
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
// this prevents the root type from triggering known resolution
|
|
139
143
|
opts.rootTypeReady = true;
|
|
144
|
+
// check if type is overridden by user in config
|
|
145
|
+
if (opts.options["type-mappings"] || opts.options["typeguard-mappings"]) {
|
|
146
|
+
const overridesTypes = Object.entries(opts.options["type-mappings"] ?? {});
|
|
147
|
+
const overridesTypeguards = Object.entries(opts.options["typeguard-mappings"] ?? {});
|
|
148
|
+
/** Maps [path, value] -> [pathSegmentsReversed[], value] */
|
|
149
|
+
const mapOverrides = (str) => [str[0].split("/").reverse(), str[1]];
|
|
150
|
+
const overridesTypes_mapped = overridesTypes.map(mapOverrides);
|
|
151
|
+
const overridesTypeguards_mapped = overridesTypeguards.map(mapOverrides);
|
|
152
|
+
const ancestry = [...opts.ancestryPath].reverse();
|
|
153
|
+
const findOverride = (o) => o[0].every((seg, i) => ancestry[i] === seg);
|
|
154
|
+
const typeOverride = overridesTypes_mapped.find(findOverride);
|
|
155
|
+
const typeguardOverride = overridesTypeguards_mapped.find(findOverride);
|
|
156
|
+
if (this._r === Resolver.Type && typeOverride !== undefined)
|
|
157
|
+
out.resolved.append(typeOverride[1]);
|
|
158
|
+
if (this._r === Resolver.Typeguard && typeguardOverride !== undefined)
|
|
159
|
+
out.resolved.append(typeguardOverride[1]);
|
|
160
|
+
if (this._r === Resolver.Typeguard &&
|
|
161
|
+
typeOverride !== undefined &&
|
|
162
|
+
typeguardOverride === undefined) {
|
|
163
|
+
this.diagnostic("missing-typeguard-override", `Type at path ${opts.ancestryPath.join(".")} has type override, but no typeguard override. Defaulting to "true".`, "warning");
|
|
164
|
+
out.resolved.append("true");
|
|
165
|
+
}
|
|
166
|
+
if (typeOverride !== undefined || typeguardOverride !== undefined)
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
140
169
|
switch (this._r) {
|
|
141
170
|
case Resolver.Type:
|
|
142
171
|
return await this.type(opts, out);
|
|
@@ -144,6 +173,7 @@ export class Resolvable {
|
|
|
144
173
|
return await this.typeguard(opts, out);
|
|
145
174
|
}
|
|
146
175
|
}
|
|
176
|
+
/** Adds visibility maps to known types, if needed (only applies to shaped model). */
|
|
147
177
|
transformKnownType(
|
|
148
178
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
149
179
|
opts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolvable.js","sourceRoot":"","sources":["../../../src/resolve/Resolvable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,QAAQ,GAGT,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAgB,UAAU;IAC9B,mCAAmC;IACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,CAAI,EACJ,CAAO,EACP,IAAwB;QAExB,MAAM,GAAG,GAAsB;YAC7B,QAAQ,EAAE,IAAI,gBAAgB,EAAE;YAChC,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,aAAa,CAC3B,CAAO,EACP,IAAwB,EACxB,GAAsB,
|
|
1
|
+
{"version":3,"file":"Resolvable.js","sourceRoot":"","sources":["../../../src/resolve/Resolvable.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export type ResolverOptions<R extends Resolver> = {
|
|
|
10
10
|
program: Program;
|
|
11
11
|
options: EmitterOptions;
|
|
12
12
|
typemap: TTypeMap;
|
|
13
|
+
/** Used for indentation formatting */
|
|
13
14
|
nestlevel: number;
|
|
14
15
|
/** The type the entire resolution chain started with. */
|
|
15
16
|
rootType: TTypeMap[number] | null;
|
|
@@ -20,6 +21,8 @@ export type ResolverOptions<R extends Resolver> = {
|
|
|
20
21
|
rootTypeReady?: boolean;
|
|
21
22
|
/** The types "up the chain" - "parent" types on nested resolution. */
|
|
22
23
|
parents?: Type[];
|
|
24
|
+
/** The entire "name chain", from the root namespace to here - "things" without a name are `undefined`. */
|
|
25
|
+
ancestryPath: (string | undefined)[];
|
|
23
26
|
} & (R extends Resolver.Type ? {
|
|
24
27
|
emitDocs: boolean;
|
|
25
28
|
} : {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolvable_helpers.js","sourceRoot":"","sources":["../../../src/resolve/Resolvable_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGtE,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uCAAI,CAAA;IACJ,iDAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;
|
|
1
|
+
{"version":3,"file":"Resolvable_helpers.js","sourceRoot":"","sources":["../../../src/resolve/Resolvable_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGtE,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uCAAI,CAAA;IACJ,iDAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAgCD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAiB,EACjB,CAAM,EACmB,EAAE;IAC3B,MAAM,iBAAiB,GAAG,0BAA0B,CAAE,CAAS,CAAC,SAAS,CAAC,CAAC;IAC3E,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CACxB,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YACvB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAM,CAAS,CAAC,IAAI;YAChC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAClD,CAAC;QACF,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -20,6 +20,7 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
20
20
|
rootType: null,
|
|
21
21
|
typemap,
|
|
22
22
|
rootTypeReady: true,
|
|
23
|
+
ancestryPath: [],
|
|
23
24
|
});
|
|
24
25
|
ret.imports.push(...resolved.imports);
|
|
25
26
|
ret.types.request.content = replaceLifecycle(resolved.resolved.value, httpOp.verb.toUpperCase(), resolved.hasVisibility);
|
|
@@ -57,6 +58,7 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
57
58
|
rootType: null,
|
|
58
59
|
typemap,
|
|
59
60
|
rootTypeReady: true,
|
|
61
|
+
ancestryPath: [],
|
|
60
62
|
});
|
|
61
63
|
if (resolved.hasVisibility)
|
|
62
64
|
modelret.hasVisibility = true;
|
|
@@ -75,6 +77,7 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
75
77
|
rootType: null,
|
|
76
78
|
typemap,
|
|
77
79
|
rootTypeReady: true,
|
|
80
|
+
ancestryPath: [],
|
|
78
81
|
});
|
|
79
82
|
if (resolved.hasVisibility)
|
|
80
83
|
modelret.hasVisibility = true;
|
|
@@ -102,6 +105,7 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
102
105
|
rootType: null,
|
|
103
106
|
typemap,
|
|
104
107
|
rootTypeReady: true,
|
|
108
|
+
ancestryPath: [],
|
|
105
109
|
});
|
|
106
110
|
ret.imports.push(...resolved.imports);
|
|
107
111
|
responseRet.content.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operationTypemap.js","sourceRoot":"","sources":["../../../src/resolve/operationTypemap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAenD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,OAAgB,EAChB,OAAuB,EACvB,OAAiB,EACjB,EAAa,EAIZ,EAAE;IACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAwD;QAC/D,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE;YAClD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;SAC1B;QACD,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,UAAU;IACV,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CACvC,QAAQ,CAAC,IAAI,EACb,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC3B;YACE,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"operationTypemap.js","sourceRoot":"","sources":["../../../src/resolve/operationTypemap.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export class IndexedModel extends Resolvable {
|
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
28
28
|
async type(opts, out) {
|
|
29
|
-
const resolved = await this.resolveNested(this._t.indexer.value, opts, out, false);
|
|
29
|
+
const resolved = await this.resolveNested(this._t.indexer.value, opts, out, this._t.name, false);
|
|
30
30
|
switch (this._indexedModelKind) {
|
|
31
31
|
case Type.Array:
|
|
32
32
|
out.resolved.append(`(${resolved.resolved})[]`);
|
|
@@ -40,7 +40,7 @@ export class IndexedModel extends Resolvable {
|
|
|
40
40
|
async typeguard(opts, out) {
|
|
41
41
|
const oldAccessor = opts.accessor;
|
|
42
42
|
opts.accessor = this._indexedModelKind === Type.Array ? "v" : "v[1]";
|
|
43
|
-
const resolved = await this.resolveNested(this._t.indexer.value, opts, out);
|
|
43
|
+
const resolved = await this.resolveNested(this._t.indexer.value, opts, out, this._t.name);
|
|
44
44
|
opts.accessor = oldAccessor;
|
|
45
45
|
if (resolved.resolved.value.endsWith("\n"))
|
|
46
46
|
resolved.resolved.dropLast();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.Indexed.js","sourceRoot":"","sources":["../../../../src/resolve/types/Model.Indexed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,IAAK,IAGJ;AAHD,WAAK,IAAI;IACP,iCAAK,CAAA;IACL,mCAAM,CAAA;AACR,CAAC,EAHI,IAAI,KAAJ,IAAI,QAGR;AAED,MAAM,OAAO,YAAa,SAAQ,UAAiB;IACjD,YAAY,CAAQ,EAAE,CAAW;QAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACZ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;;YACC,MAAM,IAAI,SAAS,CACjB,8CAA8C,CAAC,CAAC,IAAI,EAAE,CACvD,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAO;IACtB,gBAAgB,GAAW,OAAO,CAAC;IAE7B,KAAK,CAAC,aAAa,CACjC,IAA+B,EAC/B,GAA6B;QAE7B,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,IACE,MAAM,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YAE1E,OAAO,IAAI,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,IAAI,CAAC,EAAE,CAAC,OAAQ,CAAC,KAAK,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,CACN,CAAC;QACF,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK;gBACb,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,IAAI,CAAC,MAAM;gBACd,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC3D,MAAM;QACV,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,IAAyC,EACzC,GAAuC;QAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,IAAI,CAAC,EAAE,CAAC,OAAQ,CAAC,KAAK,EACtB,IAAI,EACJ,GAAG,
|
|
1
|
+
{"version":3,"file":"Model.Indexed.js","sourceRoot":"","sources":["../../../../src/resolve/types/Model.Indexed.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ export class ShapedModel extends Resolvable {
|
|
|
71
71
|
const resolution = new AppendableString();
|
|
72
72
|
// check for base model (extended)
|
|
73
73
|
if (this._t.baseModel) {
|
|
74
|
-
const resolvedBase = await this.resolveNested(this._t.baseModel, opts, out);
|
|
74
|
+
const resolvedBase = await this.resolveNested(this._t.baseModel, opts, out, undefined);
|
|
75
75
|
out.imports.push(...resolvedBase.imports);
|
|
76
76
|
resolution.append(`${resolvedBase.resolved} & `);
|
|
77
77
|
}
|
|
@@ -91,7 +91,10 @@ export class ShapedModel extends Resolvable {
|
|
|
91
91
|
resolution.addLine(`/** ${doc} */`, opts.nestlevel + 1);
|
|
92
92
|
}
|
|
93
93
|
// resolve prop
|
|
94
|
-
const resolved = await this.resolveNested(prop.type, opts, out
|
|
94
|
+
const resolved = await this.resolveNested(prop.type, opts, out, [
|
|
95
|
+
this._t.name,
|
|
96
|
+
prop.name,
|
|
97
|
+
]);
|
|
95
98
|
resolution.addLine(`${prop.name}${prop.optional ? "?" : ""}: ${resolved.resolved}${i + 1 < this._t.properties.size ? "," : ""}`, opts.nestlevel + 1);
|
|
96
99
|
out.imports.push(...resolved.imports);
|
|
97
100
|
// if prop has visibility, save to vismap
|
|
@@ -146,7 +149,7 @@ export class ShapedModel extends Resolvable {
|
|
|
146
149
|
async typeguard(opts, out) {
|
|
147
150
|
out.resolved.append("\n");
|
|
148
151
|
if (this._t.baseModel) {
|
|
149
|
-
const resolvedBase = await this.resolveNested(this._t.baseModel, opts, out);
|
|
152
|
+
const resolvedBase = await this.resolveNested(this._t.baseModel, opts, out, undefined);
|
|
150
153
|
out.resolved.append(`${" ".repeat(opts.nestlevel)}${resolvedBase.resolved} &&`);
|
|
151
154
|
out.imports.push(...resolvedBase.imports);
|
|
152
155
|
// derived type does not have extended properties; fix by casting
|
|
@@ -157,7 +160,10 @@ export class ShapedModel extends Resolvable {
|
|
|
157
160
|
for (const prop of props) {
|
|
158
161
|
const oldAccessor = opts.accessor;
|
|
159
162
|
opts.accessor = `${opts.accessor}['${prop.name}']`;
|
|
160
|
-
const resolved = await this.resolveNested(prop.type, opts, out
|
|
163
|
+
const resolved = await this.resolveNested(prop.type, opts, out, [
|
|
164
|
+
this._t.name,
|
|
165
|
+
prop.name,
|
|
166
|
+
]);
|
|
161
167
|
opts.accessor = oldAccessor;
|
|
162
168
|
out.imports.push(...resolved.imports);
|
|
163
169
|
const visibility = this.getPropVisibilityType(opts.program, prop);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.Shaped.js","sourceRoot":"","sources":["../../../../src/resolve/types/Model.Shaped.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Model.Shaped.js","sourceRoot":"","sources":["../../../../src/resolve/types/Model.Shaped.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,8 @@ export class ResolvableScalar extends Resolvable {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
else if (this._t.baseScalar) {
|
|
24
|
-
out.resolved.append((await this.resolveNested(this._t.baseScalar, opts, out))
|
|
24
|
+
out.resolved.append((await this.resolveNested(this._t.baseScalar, opts, out, this._t.name))
|
|
25
|
+
.resolved);
|
|
25
26
|
}
|
|
26
27
|
else {
|
|
27
28
|
switch (this._t.name) {
|
|
@@ -71,7 +72,8 @@ export class ResolvableScalar extends Resolvable {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
else if (this._t.baseScalar) {
|
|
74
|
-
out.resolved.append((await this.resolveNested(this._t.baseScalar, opts, out))
|
|
75
|
+
out.resolved.append((await this.resolveNested(this._t.baseScalar, opts, out, this._t.name))
|
|
76
|
+
.resolved);
|
|
75
77
|
}
|
|
76
78
|
else if (this._t.name === "bytes") {
|
|
77
79
|
out.resolved.append(`${opts.accessor} instanceof Uint8Array`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../../../../src/resolve/types/Scalar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,MAAM,OAAO,gBAAiB,SAAQ,UAAkB;IAC5C,gBAAgB,GAAG,QAAQ,CAAC;IAC9B,SAAS,GAAG;QAClB,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC;IAEQ,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,gBAAgB,CAAC;gBACtB,KAAK,WAAW,CAAC;gBACjB,KAAK,aAAa;oBAChB,GAAG,CAAC,QAAQ,CAAC,MAAM,CACjB,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAC5D,CAAC;oBACF,MAAM;gBACR,KAAK,iBAAiB;oBACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CACjB,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAC5D,CAAC;oBACF,MAAM;YACV,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC,MAAM,CACjB,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../../../../src/resolve/types/Scalar.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export class ResolvableTuple extends Resolvable {
|
|
|
13
13
|
async type(opts, out) {
|
|
14
14
|
const results = [];
|
|
15
15
|
for (const v of this._t.values) {
|
|
16
|
-
const resolved = await this.resolveNested(v, opts, out);
|
|
16
|
+
const resolved = await this.resolveNested(v, opts, out, undefined);
|
|
17
17
|
out.imports.push(...resolved.imports);
|
|
18
18
|
results.push(resolved.resolved.value);
|
|
19
19
|
}
|
|
@@ -25,7 +25,7 @@ export class ResolvableTuple extends Resolvable {
|
|
|
25
25
|
let i = 0;
|
|
26
26
|
for (const v of this._t.values) {
|
|
27
27
|
opts.accessor = `${opts.accessor}[${i}]`;
|
|
28
|
-
const resolved = await this.resolveNested(v, opts, out);
|
|
28
|
+
const resolved = await this.resolveNested(v, opts, out, undefined);
|
|
29
29
|
opts.accessor = oldAccessor;
|
|
30
30
|
out.imports.push(...resolved.imports);
|
|
31
31
|
results.push(resolved.resolved.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tuple.js","sourceRoot":"","sources":["../../../../src/resolve/types/Tuple.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,MAAM,OAAO,eAAgB,SAAQ,UAAiB;IAC1C,gBAAgB,GAAG,OAAO,CAAC;IAErB,KAAK,CAAC,aAAa,CACjC,IAA+B,EAC/B,GAA6B;QAE7B,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Tuple.js","sourceRoot":"","sources":["../../../../src/resolve/types/Tuple.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,MAAM,OAAO,eAAgB,SAAQ,UAAiB;IAC1C,gBAAgB,GAAG,OAAO,CAAC;IAErB,KAAK,CAAC,aAAa,CACjC,IAA+B,EAC/B,GAA6B;QAE7B,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACnE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,IAAyC,EACzC,GAAuC;QAEvC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,MAAM,CACjB,iBAAiB,IAAI,CAAC,QAAQ,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAClF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -17,7 +17,7 @@ export class ResolvableUnion extends Resolvable {
|
|
|
17
17
|
}
|
|
18
18
|
const results = [];
|
|
19
19
|
for (const v of Array.from(this._t.variants)) {
|
|
20
|
-
const resolved = await this.resolveNested(v[1].type, opts, out, false);
|
|
20
|
+
const resolved = await this.resolveNested(v[1].type, opts, out, this._t.name, false);
|
|
21
21
|
out.imports.push(...resolved.imports);
|
|
22
22
|
results.push(resolved.resolved.value);
|
|
23
23
|
}
|
|
@@ -26,7 +26,7 @@ export class ResolvableUnion extends Resolvable {
|
|
|
26
26
|
async typeguard(opts, out) {
|
|
27
27
|
const results = [];
|
|
28
28
|
for (const v of Array.from(this._t.variants)) {
|
|
29
|
-
const resolved = await this.resolveNested(v[1].type, opts, out);
|
|
29
|
+
const resolved = await this.resolveNested(v[1].type, opts, out, this._t.name);
|
|
30
30
|
out.imports.push(...resolved.imports);
|
|
31
31
|
results.push(`(${resolved.resolved.value})`);
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Union.js","sourceRoot":"","sources":["../../../../src/resolve/types/Union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,MAAM,OAAO,eAAgB,SAAQ,UAAiB;IAC1C,gBAAgB,GAAG,OAAO,CAAC;IAErB,KAAK,CAAC,aAAa,CACjC,IAA+B,EAC/B,GAA6B;QAE7B,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"Union.js","sourceRoot":"","sources":["../../../../src/resolve/types/Union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,MAAM,OAAO,eAAgB,SAAQ,UAAiB;IAC1C,gBAAgB,GAAG,OAAO,CAAC;IAErB,KAAK,CAAC,aAAa,CACjC,IAA+B,EAC/B,GAA6B;QAE7B,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,IAAoC,EACpC,GAAkC;QAElC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACT,IAAI,EACJ,GAAG,EACH,IAAI,CAAC,EAAE,CAAC,IAAI,EACZ,KAAK,CACN,CAAC;YACF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,IAAyC,EACzC,GAAuC;QAEvC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACT,IAAI,EACJ,GAAG,EACH,IAAI,CAAC,EAAE,CAAC,IAAI,CACb,CAAC;YACF,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typespec-typescript-emitter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "A TypeSpec library providing an emitter that generates TypeScript types and a structured routes object for robust importing",
|
|
5
5
|
"homepage": "https://github.com/crowbait/typespec-typescript-emitter#readme",
|
|
6
|
+
"repository": "https://github.com/crowbait/typespec-typescript-emitter",
|
|
6
7
|
"bugs": "https://github.com/crowbait/typespec-typescript-emitter/issues",
|
|
7
8
|
"license": "MIT",
|
|
8
9
|
"author": {
|
package/src/emit_types.ts
CHANGED
|
@@ -51,6 +51,7 @@ export const emitTypes = async (
|
|
|
51
51
|
nestlevel: 0,
|
|
52
52
|
rootType: t,
|
|
53
53
|
typemap: typemap,
|
|
54
|
+
ancestryPath: [...t.namespaces, t.type.name],
|
|
54
55
|
});
|
|
55
56
|
|
|
56
57
|
imports[filename].namespaces.push(...resolved.imports);
|
|
@@ -103,6 +104,7 @@ export const emitTypes = async (
|
|
|
103
104
|
rootType: t,
|
|
104
105
|
typemap: typemap,
|
|
105
106
|
accessor: "t",
|
|
107
|
+
ancestryPath: [...t.namespaces, t.type.name],
|
|
106
108
|
});
|
|
107
109
|
if (typeguard.resolved.value) {
|
|
108
110
|
if (typeguard.hasVisibility) {
|
package/src/lib.ts
CHANGED
|
@@ -13,11 +13,12 @@ export interface EmitterOptions {
|
|
|
13
13
|
"enable-routed-typemap": boolean;
|
|
14
14
|
"string-nominal-enums": boolean;
|
|
15
15
|
"serializable-date-types": boolean;
|
|
16
|
+
"type-mappings": Record<string, string>;
|
|
17
|
+
"typeguard-mappings": Record<string, string>;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
const EmitterOptionsSchema: JSONSchemaType<EmitterOptions> = {
|
|
19
21
|
type: "object",
|
|
20
|
-
additionalProperties: false,
|
|
21
22
|
properties: {
|
|
22
23
|
"root-namespaces": { type: "array", items: { type: "string" } },
|
|
23
24
|
"out-dir": { type: "string", format: "absolute-path" },
|
|
@@ -27,8 +28,19 @@ const EmitterOptionsSchema: JSONSchemaType<EmitterOptions> = {
|
|
|
27
28
|
"enable-routed-typemap": { type: "boolean" },
|
|
28
29
|
"string-nominal-enums": { type: "boolean" },
|
|
29
30
|
"serializable-date-types": { type: "boolean" },
|
|
31
|
+
"type-mappings": {
|
|
32
|
+
type: "object",
|
|
33
|
+
required: [],
|
|
34
|
+
additionalProperties: { type: "string" },
|
|
35
|
+
},
|
|
36
|
+
"typeguard-mappings": {
|
|
37
|
+
type: "object",
|
|
38
|
+
required: [],
|
|
39
|
+
additionalProperties: { type: "string" },
|
|
40
|
+
},
|
|
30
41
|
},
|
|
31
42
|
required: ["root-namespaces"],
|
|
43
|
+
additionalProperties: false,
|
|
32
44
|
};
|
|
33
45
|
|
|
34
46
|
/** Maps option to its default value and options that must be set to `true` for this one to work */
|
|
@@ -46,6 +58,9 @@ export const optionDependencies = (
|
|
|
46
58
|
|
|
47
59
|
["enable-typeguards"]: [false, ["enable-types"]],
|
|
48
60
|
["enable-routed-typemap"]: [false, ["enable-types"]],
|
|
61
|
+
|
|
62
|
+
["type-mappings"]: [{}, []],
|
|
63
|
+
["typeguard-mappings"]: [{}, []],
|
|
49
64
|
});
|
|
50
65
|
|
|
51
66
|
export const $lib = createTypeSpecLibrary({
|
|
@@ -36,18 +36,27 @@ export abstract class Resolvable<T extends Type> {
|
|
|
36
36
|
t: Type,
|
|
37
37
|
opts: ResolverOptions<R>,
|
|
38
38
|
out: ResolverResult<R>,
|
|
39
|
+
/** The name that should be added to the ancestry path. */
|
|
40
|
+
ancestryName: string | string[] | undefined,
|
|
41
|
+
/** Increases nestlevel, used for indentation formatting */
|
|
39
42
|
nest: boolean = true,
|
|
40
43
|
): Promise<ResolverResult<R>> {
|
|
41
44
|
// prepare nested resolution
|
|
42
45
|
if (nest) opts.nestlevel++;
|
|
43
46
|
if (!opts.parents) opts.parents = [];
|
|
44
47
|
opts.parents.push(this._t);
|
|
48
|
+
opts.ancestryPath.push(
|
|
49
|
+
...(Array.isArray(ancestryName) ? ancestryName : [ancestryName]),
|
|
50
|
+
);
|
|
45
51
|
|
|
46
52
|
const ret = await Resolvable.resolve(this._r, t, opts);
|
|
47
53
|
|
|
48
54
|
// revert to current level
|
|
49
55
|
if (nest) opts.nestlevel--;
|
|
50
56
|
opts.parents.pop();
|
|
57
|
+
opts.ancestryPath.splice(
|
|
58
|
+
-(Array.isArray(ancestryName) ? ancestryName.length : 1),
|
|
59
|
+
);
|
|
51
60
|
|
|
52
61
|
return ret;
|
|
53
62
|
}
|
|
@@ -142,9 +151,6 @@ export abstract class Resolvable<T extends Type> {
|
|
|
142
151
|
);
|
|
143
152
|
// find known resolved type
|
|
144
153
|
const foundKnownResolved = ((): TTypeMap[number] | null => {
|
|
145
|
-
const currentNamespaces = namespaceListFromNamespace(
|
|
146
|
-
(this._t as any).namespace,
|
|
147
|
-
);
|
|
148
154
|
if (currentNamespaces && currentNamespaces.length > 0) {
|
|
149
155
|
const found = opts.typemap.find(
|
|
150
156
|
(mt) =>
|
|
@@ -186,8 +192,7 @@ export abstract class Resolvable<T extends Type> {
|
|
|
186
192
|
}
|
|
187
193
|
|
|
188
194
|
// optionally allow found type to modify output
|
|
189
|
-
|
|
190
|
-
this.transformKnownType(opts, out);
|
|
195
|
+
this.transformKnownType(opts, out);
|
|
191
196
|
return;
|
|
192
197
|
}
|
|
193
198
|
}
|
|
@@ -195,6 +200,46 @@ export abstract class Resolvable<T extends Type> {
|
|
|
195
200
|
// this prevents the root type from triggering known resolution
|
|
196
201
|
opts.rootTypeReady = true;
|
|
197
202
|
|
|
203
|
+
// check if type is overridden by user in config
|
|
204
|
+
if (opts.options["type-mappings"] || opts.options["typeguard-mappings"]) {
|
|
205
|
+
const overridesTypes = Object.entries(
|
|
206
|
+
opts.options["type-mappings"] ?? {},
|
|
207
|
+
);
|
|
208
|
+
const overridesTypeguards = Object.entries(
|
|
209
|
+
opts.options["typeguard-mappings"] ?? {},
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
/** Maps [path, value] -> [pathSegmentsReversed[], value] */
|
|
213
|
+
const mapOverrides = (str: [string, string]): [string[], string] =>
|
|
214
|
+
[str[0].split("/").reverse(), str[1]] as [string[], string];
|
|
215
|
+
const overridesTypes_mapped = overridesTypes.map(mapOverrides);
|
|
216
|
+
const overridesTypeguards_mapped = overridesTypeguards.map(mapOverrides);
|
|
217
|
+
const ancestry = [...opts.ancestryPath].reverse();
|
|
218
|
+
|
|
219
|
+
const findOverride = (o: [string[], string]) =>
|
|
220
|
+
o[0].every((seg, i) => ancestry[i] === seg);
|
|
221
|
+
const typeOverride = overridesTypes_mapped.find(findOverride);
|
|
222
|
+
const typeguardOverride = overridesTypeguards_mapped.find(findOverride);
|
|
223
|
+
|
|
224
|
+
if (this._r === Resolver.Type && typeOverride !== undefined)
|
|
225
|
+
out.resolved.append(typeOverride[1]);
|
|
226
|
+
if (this._r === Resolver.Typeguard && typeguardOverride !== undefined)
|
|
227
|
+
out.resolved.append(typeguardOverride[1]);
|
|
228
|
+
if (
|
|
229
|
+
this._r === Resolver.Typeguard &&
|
|
230
|
+
typeOverride !== undefined &&
|
|
231
|
+
typeguardOverride === undefined
|
|
232
|
+
) {
|
|
233
|
+
this.diagnostic(
|
|
234
|
+
"missing-typeguard-override",
|
|
235
|
+
`Type at path ${opts.ancestryPath.join(".")} has type override, but no typeguard override. Defaulting to "true".`,
|
|
236
|
+
"warning",
|
|
237
|
+
);
|
|
238
|
+
out.resolved.append("true");
|
|
239
|
+
}
|
|
240
|
+
if (typeOverride !== undefined || typeguardOverride !== undefined) return;
|
|
241
|
+
}
|
|
242
|
+
|
|
198
243
|
switch (this._r) {
|
|
199
244
|
case Resolver.Type:
|
|
200
245
|
return await this.type(
|
|
@@ -209,6 +254,7 @@ export abstract class Resolvable<T extends Type> {
|
|
|
209
254
|
}
|
|
210
255
|
}
|
|
211
256
|
|
|
257
|
+
/** Adds visibility maps to known types, if needed (only applies to shaped model). */
|
|
212
258
|
protected transformKnownType(
|
|
213
259
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
214
260
|
opts: ResolverOptions<Resolver>,
|
|
@@ -14,6 +14,7 @@ export type ResolverOptions<R extends Resolver> = {
|
|
|
14
14
|
program: Program;
|
|
15
15
|
options: EmitterOptions;
|
|
16
16
|
typemap: TTypeMap;
|
|
17
|
+
/** Used for indentation formatting */
|
|
17
18
|
nestlevel: number;
|
|
18
19
|
/** The type the entire resolution chain started with. */
|
|
19
20
|
rootType: TTypeMap[number] | null;
|
|
@@ -24,6 +25,8 @@ export type ResolverOptions<R extends Resolver> = {
|
|
|
24
25
|
rootTypeReady?: boolean;
|
|
25
26
|
/** The types "up the chain" - "parent" types on nested resolution. */
|
|
26
27
|
parents?: Type[];
|
|
28
|
+
/** The entire "name chain", from the root namespace to here - "things" without a name are `undefined`. */
|
|
29
|
+
ancestryPath: (string | undefined)[];
|
|
27
30
|
} & (R extends Resolver.Type
|
|
28
31
|
? {
|
|
29
32
|
emitDocs: boolean;
|
|
@@ -49,6 +49,7 @@ export const resolveOperationTypemap = async (
|
|
|
49
49
|
rootType: null,
|
|
50
50
|
typemap,
|
|
51
51
|
rootTypeReady: true,
|
|
52
|
+
ancestryPath: [],
|
|
52
53
|
},
|
|
53
54
|
);
|
|
54
55
|
ret.imports.push(...resolved.imports);
|
|
@@ -106,6 +107,7 @@ export const resolveOperationTypemap = async (
|
|
|
106
107
|
rootType: null,
|
|
107
108
|
typemap,
|
|
108
109
|
rootTypeReady: true,
|
|
110
|
+
ancestryPath: [],
|
|
109
111
|
},
|
|
110
112
|
);
|
|
111
113
|
if (resolved.hasVisibility) modelret.hasVisibility = true;
|
|
@@ -129,6 +131,7 @@ export const resolveOperationTypemap = async (
|
|
|
129
131
|
rootType: null,
|
|
130
132
|
typemap,
|
|
131
133
|
rootTypeReady: true,
|
|
134
|
+
ancestryPath: [],
|
|
132
135
|
});
|
|
133
136
|
if (resolved.hasVisibility) modelret.hasVisibility = true;
|
|
134
137
|
ret.imports.push(...resolved.imports);
|
|
@@ -163,6 +166,7 @@ export const resolveOperationTypemap = async (
|
|
|
163
166
|
rootType: null,
|
|
164
167
|
typemap,
|
|
165
168
|
rootTypeReady: true,
|
|
169
|
+
ancestryPath: [],
|
|
166
170
|
});
|
|
167
171
|
ret.imports.push(...resolved.imports);
|
|
168
172
|
responseRet.content.push({
|
|
@@ -47,6 +47,7 @@ export class IndexedModel extends Resolvable<Model> {
|
|
|
47
47
|
this._t.indexer!.value,
|
|
48
48
|
opts,
|
|
49
49
|
out,
|
|
50
|
+
this._t.name,
|
|
50
51
|
false,
|
|
51
52
|
);
|
|
52
53
|
switch (this._indexedModelKind) {
|
|
@@ -70,6 +71,7 @@ export class IndexedModel extends Resolvable<Model> {
|
|
|
70
71
|
this._t.indexer!.value,
|
|
71
72
|
opts,
|
|
72
73
|
out,
|
|
74
|
+
this._t.name,
|
|
73
75
|
);
|
|
74
76
|
opts.accessor = oldAccessor;
|
|
75
77
|
if (resolved.resolved.value.endsWith("\n")) resolved.resolved.dropLast();
|
|
@@ -109,6 +109,7 @@ export class ShapedModel extends Resolvable<Model> {
|
|
|
109
109
|
this._t.baseModel,
|
|
110
110
|
opts,
|
|
111
111
|
out,
|
|
112
|
+
undefined,
|
|
112
113
|
);
|
|
113
114
|
out.imports.push(...resolvedBase.imports);
|
|
114
115
|
resolution.append(`${resolvedBase.resolved} & `);
|
|
@@ -133,7 +134,10 @@ export class ShapedModel extends Resolvable<Model> {
|
|
|
133
134
|
if (doc) resolution.addLine(`/** ${doc} */`, opts.nestlevel + 1);
|
|
134
135
|
}
|
|
135
136
|
// resolve prop
|
|
136
|
-
const resolved = await this.resolveNested(prop.type, opts, out
|
|
137
|
+
const resolved = await this.resolveNested(prop.type, opts, out, [
|
|
138
|
+
this._t.name,
|
|
139
|
+
prop.name,
|
|
140
|
+
]);
|
|
137
141
|
resolution.addLine(
|
|
138
142
|
`${prop.name}${prop.optional ? "?" : ""}: ${resolved.resolved}${i + 1 < this._t.properties.size ? "," : ""}`,
|
|
139
143
|
opts.nestlevel + 1,
|
|
@@ -216,6 +220,7 @@ export class ShapedModel extends Resolvable<Model> {
|
|
|
216
220
|
this._t.baseModel,
|
|
217
221
|
opts,
|
|
218
222
|
out,
|
|
223
|
+
undefined,
|
|
219
224
|
);
|
|
220
225
|
out.resolved.append(
|
|
221
226
|
`${" ".repeat(opts.nestlevel)}${resolvedBase.resolved} &&`,
|
|
@@ -230,7 +235,10 @@ export class ShapedModel extends Resolvable<Model> {
|
|
|
230
235
|
for (const prop of props) {
|
|
231
236
|
const oldAccessor = opts.accessor;
|
|
232
237
|
opts.accessor = `${opts.accessor}['${prop.name}']`;
|
|
233
|
-
const resolved = await this.resolveNested(prop.type, opts, out
|
|
238
|
+
const resolved = await this.resolveNested(prop.type, opts, out, [
|
|
239
|
+
this._t.name,
|
|
240
|
+
prop.name,
|
|
241
|
+
]);
|
|
234
242
|
opts.accessor = oldAccessor;
|
|
235
243
|
out.imports.push(...resolved.imports);
|
|
236
244
|
|
|
@@ -36,7 +36,8 @@ export class ResolvableScalar extends Resolvable<Scalar> {
|
|
|
36
36
|
}
|
|
37
37
|
} else if (this._t.baseScalar) {
|
|
38
38
|
out.resolved.append(
|
|
39
|
-
(await this.resolveNested(this._t.baseScalar, opts, out))
|
|
39
|
+
(await this.resolveNested(this._t.baseScalar, opts, out, this._t.name))
|
|
40
|
+
.resolved,
|
|
40
41
|
);
|
|
41
42
|
} else {
|
|
42
43
|
switch (this._t.name) {
|
|
@@ -99,7 +100,8 @@ export class ResolvableScalar extends Resolvable<Scalar> {
|
|
|
99
100
|
}
|
|
100
101
|
} else if (this._t.baseScalar) {
|
|
101
102
|
out.resolved.append(
|
|
102
|
-
(await this.resolveNested(this._t.baseScalar, opts, out))
|
|
103
|
+
(await this.resolveNested(this._t.baseScalar, opts, out, this._t.name))
|
|
104
|
+
.resolved,
|
|
103
105
|
);
|
|
104
106
|
} else if (this._t.name === "bytes") {
|
|
105
107
|
out.resolved.append(`${opts.accessor} instanceof Uint8Array`);
|
|
@@ -26,7 +26,7 @@ export class ResolvableTuple extends Resolvable<Tuple> {
|
|
|
26
26
|
): Promise<void> {
|
|
27
27
|
const results: string[] = [];
|
|
28
28
|
for (const v of this._t.values) {
|
|
29
|
-
const resolved = await this.resolveNested(v, opts, out);
|
|
29
|
+
const resolved = await this.resolveNested(v, opts, out, undefined);
|
|
30
30
|
out.imports.push(...resolved.imports);
|
|
31
31
|
results.push(resolved.resolved.value);
|
|
32
32
|
}
|
|
@@ -42,7 +42,7 @@ export class ResolvableTuple extends Resolvable<Tuple> {
|
|
|
42
42
|
let i = 0;
|
|
43
43
|
for (const v of this._t.values) {
|
|
44
44
|
opts.accessor = `${opts.accessor}[${i}]`;
|
|
45
|
-
const resolved = await this.resolveNested(v, opts, out);
|
|
45
|
+
const resolved = await this.resolveNested(v, opts, out, undefined);
|
|
46
46
|
opts.accessor = oldAccessor;
|
|
47
47
|
out.imports.push(...resolved.imports);
|
|
48
48
|
results.push(resolved.resolved.value);
|
|
@@ -30,7 +30,13 @@ export class ResolvableUnion extends Resolvable<Union> {
|
|
|
30
30
|
}
|
|
31
31
|
const results: string[] = [];
|
|
32
32
|
for (const v of Array.from(this._t.variants)) {
|
|
33
|
-
const resolved = await this.resolveNested(
|
|
33
|
+
const resolved = await this.resolveNested(
|
|
34
|
+
v[1].type,
|
|
35
|
+
opts,
|
|
36
|
+
out,
|
|
37
|
+
this._t.name,
|
|
38
|
+
false,
|
|
39
|
+
);
|
|
34
40
|
out.imports.push(...resolved.imports);
|
|
35
41
|
results.push(resolved.resolved.value);
|
|
36
42
|
}
|
|
@@ -43,7 +49,12 @@ export class ResolvableUnion extends Resolvable<Union> {
|
|
|
43
49
|
): Promise<void> {
|
|
44
50
|
const results: string[] = [];
|
|
45
51
|
for (const v of Array.from(this._t.variants)) {
|
|
46
|
-
const resolved = await this.resolveNested(
|
|
52
|
+
const resolved = await this.resolveNested(
|
|
53
|
+
v[1].type,
|
|
54
|
+
opts,
|
|
55
|
+
out,
|
|
56
|
+
this._t.name,
|
|
57
|
+
);
|
|
47
58
|
out.imports.push(...resolved.imports);
|
|
48
59
|
results.push(`(${resolved.resolved.value})`);
|
|
49
60
|
}
|
package/test/helpers/wrapper.ts
CHANGED
|
@@ -15,6 +15,8 @@ export const defaultConfig: Omit<EmitterOptions, "out-dir"> = {
|
|
|
15
15
|
"enable-routed-typemap": false,
|
|
16
16
|
"string-nominal-enums": true,
|
|
17
17
|
"serializable-date-types": true,
|
|
18
|
+
"type-mappings": {},
|
|
19
|
+
"typeguard-mappings": {},
|
|
18
20
|
};
|
|
19
21
|
|
|
20
22
|
type Filename = string;
|
|
@@ -44,14 +46,18 @@ export const expectEmit = <T extends string | Record<Filename, string>>(
|
|
|
44
46
|
console.error(
|
|
45
47
|
`${outFilename!} not found in ${Object.keys(result[0].outputs)}`,
|
|
46
48
|
);
|
|
47
|
-
expect(result[0].outputs[outFilename!].trim()).toBe(
|
|
49
|
+
expect(result[0].outputs[outFilename!].replaceAll("\r", "").trim()).toBe(
|
|
50
|
+
target.replaceAll("\r", "").trim(),
|
|
51
|
+
);
|
|
48
52
|
} else {
|
|
49
53
|
for (const t of Object.entries(target)) {
|
|
50
54
|
expect(
|
|
51
55
|
(
|
|
52
|
-
await result[0].program.host.readFile(
|
|
56
|
+
await result[0].program.host.readFile(
|
|
57
|
+
resolveVirtualPath(t[0]).replaceAll("\r", "").trim(),
|
|
58
|
+
)
|
|
53
59
|
).text.trim(),
|
|
54
|
-
).toBe(t[1].trim());
|
|
60
|
+
).toBe(t[1].replaceAll("\r", "").trim());
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
});
|
|
@@ -121,6 +127,7 @@ export const expectResolution = (
|
|
|
121
127
|
rootType: null,
|
|
122
128
|
typemap: [],
|
|
123
129
|
emitDocs: false,
|
|
130
|
+
ancestryPath: [],
|
|
124
131
|
});
|
|
125
132
|
// check if valid typescript
|
|
126
133
|
if (args.typescriptTransformer !== null) {
|
|
@@ -4,14 +4,10 @@ import { expectEmit } from "../helpers/wrapper";
|
|
|
4
4
|
|
|
5
5
|
const prepareContents = (s: string): string => {
|
|
6
6
|
let ret = s;
|
|
7
|
-
ret = ret
|
|
8
|
-
"// WARN this file may be broken by auto formatting.",
|
|
9
|
-
"",
|
|
10
|
-
|
|
11
|
-
ret = ret.replaceAll(
|
|
12
|
-
"// WARN by default in vscode, save: Ctrl+K , Ctrl+Shift+S",
|
|
13
|
-
"",
|
|
14
|
-
);
|
|
7
|
+
ret = ret
|
|
8
|
+
.replaceAll("// WARN this file may be broken by auto formatting.", "")
|
|
9
|
+
.replaceAll("// WARN by default in vscode, save: Ctrl+K , Ctrl+Shift+S", "")
|
|
10
|
+
.replaceAll("\r\n", "\n");
|
|
15
11
|
return `/* eslint-disable */${ret}`;
|
|
16
12
|
};
|
|
17
13
|
|