@ir-kit/asyncapi-typescript 1.0.0 → 2.0.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/README.md +2 -2
- package/dist/ast/raw-text-node.d.ts +3 -16
- package/dist/ast/raw-text-node.d.ts.map +1 -1
- package/dist/ast/raw-text-node.js +4 -33
- package/dist/ast/raw-text-node.js.map +1 -1
- package/dist/ast/ts-node.d.ts +3 -21
- package/dist/ast/ts-node.d.ts.map +1 -1
- package/dist/ast/ts-node.js +4 -37
- package/dist/ast/ts-node.js.map +1 -1
- package/dist/ast/value-node.d.ts +26 -0
- package/dist/ast/value-node.d.ts.map +1 -0
- package/dist/ast/value-node.js +40 -0
- package/dist/ast/value-node.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +4 -3
- package/dist/orchestrator.js.map +1 -1
- package/dist/plugin.d.ts +3 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/event-map/config.d.ts.map +1 -1
- package/dist/plugins/event-map/config.js +1 -3
- package/dist/plugins/event-map/config.js.map +1 -1
- package/dist/plugins/event-map/plugin.d.ts.map +1 -1
- package/dist/plugins/event-map/plugin.js +12 -6
- package/dist/plugins/event-map/plugin.js.map +1 -1
- package/dist/plugins/event-map/types.d.ts +2 -5
- package/dist/plugins/event-map/types.d.ts.map +1 -1
- package/dist/plugins/typescript/index.d.ts +1 -1
- package/dist/plugins/typescript/index.d.ts.map +1 -1
- package/dist/plugins/typescript/plugin.d.ts +12 -9
- package/dist/plugins/typescript/plugin.d.ts.map +1 -1
- package/dist/plugins/typescript/plugin.js +113 -46
- package/dist/plugins/typescript/plugin.js.map +1 -1
- package/dist/plugins/typescript/types.d.ts +5 -1
- package/dist/plugins/typescript/types.d.ts.map +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ pnpm add -D @ir-kit/asyncapi-typescript
|
|
|
13
13
|
Peer deps (most are dev-only at consumer side):
|
|
14
14
|
|
|
15
15
|
- `@asyncapi/parser` `>=3.0.0`
|
|
16
|
-
- `@
|
|
16
|
+
- `@hey-api/openapi-ts` `>=0.99.0`
|
|
17
17
|
- `@hey-api/codegen-core` `>=0.8.0`
|
|
18
18
|
- `@ir-kit/asyncapi-core`, `@ir-kit/asyncapi-core`, `@ir-kit/codegen-core`
|
|
19
19
|
- `typescript` `>=5.0.0`
|
|
@@ -52,7 +52,7 @@ For a full RabbitMQ run (producer + consumer end-to-end), see `examples/asyncapi
|
|
|
52
52
|
|
|
53
53
|
| Plugin | File(s) emitted | Description |
|
|
54
54
|
|---|---|---|
|
|
55
|
-
| `typescript()` | `types.gen.ts` | TS
|
|
55
|
+
| `typescript()` | `types.gen.ts` | TS types from message payload and component schemas (via `@hey-api/openapi-ts`). Names taken from spec message ids and component names. |
|
|
56
56
|
| `events()` | `events.gen.ts` | `Events` const with `{type, routingKey, exchange, exchangeType, contentType}` per channel/operation, plus an `EventName` type alias |
|
|
57
57
|
| `eventMap()` | `event-map.gen.ts` | `EventMap` keyed by event-type literal → message interface, `AnyMessage` union, `isMessageOfType` discriminator |
|
|
58
58
|
| `dispatch()` | `dispatch.gen.ts` + `handlers.gen.ts` | Generic `Registry` runtime (with `.on(...)`, `.dispatch`, `.toCallback(...)`, `.bindings`) + spec-bound `handlers()` factory |
|
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
/** INode wrapper around pre-rendered text. Used for
|
|
3
|
-
export declare class RawTextNode
|
|
4
|
-
readonly "~brand" = "heyapi.node";
|
|
5
|
-
readonly language = "typescript";
|
|
6
|
-
exported?: boolean;
|
|
7
|
-
root: boolean;
|
|
8
|
-
scope?: NodeScope;
|
|
9
|
-
symbol?: CoreSymbol;
|
|
10
|
-
file?: File;
|
|
11
|
-
private _name;
|
|
12
|
-
private readonly _text;
|
|
1
|
+
import { ValueNode } from "./value-node.js";
|
|
2
|
+
/** INode wrapper around pre-rendered text. Used for generated text and bundle copies. */
|
|
3
|
+
export declare class RawTextNode extends ValueNode<string> {
|
|
13
4
|
constructor(text: string, options?: {
|
|
14
5
|
name?: string;
|
|
15
6
|
});
|
|
16
|
-
get name(): ICoreNode["name"];
|
|
17
|
-
analyze(_: AnalysisContext): void;
|
|
18
|
-
clone(): this;
|
|
19
|
-
toAst(): string;
|
|
20
7
|
}
|
|
21
8
|
//# sourceMappingURL=raw-text-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-text-node.d.ts","sourceRoot":"","sources":["../../src/ast/raw-text-node.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"raw-text-node.d.ts","sourceRoot":"","sources":["../../src/ast/raw-text-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,yFAAyF;AACzF,qBAAa,WAAY,SAAQ,SAAS,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO;CAG1D"}
|
|
@@ -1,37 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/** INode wrapper around pre-rendered text. Used for
|
|
3
|
-
export class RawTextNode {
|
|
4
|
-
"~brand" = nodeBrand;
|
|
5
|
-
language = "typescript";
|
|
6
|
-
exported;
|
|
7
|
-
root;
|
|
8
|
-
scope;
|
|
9
|
-
symbol;
|
|
10
|
-
file;
|
|
11
|
-
_name;
|
|
12
|
-
_text;
|
|
1
|
+
import { ValueNode } from "./value-node.js";
|
|
2
|
+
/** INode wrapper around pre-rendered text. Used for generated text and bundle copies. */
|
|
3
|
+
export class RawTextNode extends ValueNode {
|
|
13
4
|
constructor(text, options = {}) {
|
|
14
|
-
|
|
15
|
-
this._name = ref(options.name ?? "raw");
|
|
16
|
-
this.root = true;
|
|
17
|
-
}
|
|
18
|
-
get name() {
|
|
19
|
-
return {
|
|
20
|
-
...this._name,
|
|
21
|
-
set: (value) => {
|
|
22
|
-
this._name = ref(typeof value === "string" ? value : String(value));
|
|
23
|
-
},
|
|
24
|
-
toString: () => this._name["~ref"],
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
analyze(_) { }
|
|
28
|
-
clone() {
|
|
29
|
-
const cloned = Object.create(Object.getPrototypeOf(this));
|
|
30
|
-
Object.assign(cloned, this);
|
|
31
|
-
return cloned;
|
|
32
|
-
}
|
|
33
|
-
toAst() {
|
|
34
|
-
return this._text;
|
|
5
|
+
super(text, { name: options.name ?? "raw" });
|
|
35
6
|
}
|
|
36
7
|
}
|
|
37
8
|
//# sourceMappingURL=raw-text-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-text-node.js","sourceRoot":"","sources":["../../src/ast/raw-text-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"raw-text-node.js","sourceRoot":"","sources":["../../src/ast/raw-text-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,yFAAyF;AACzF,MAAM,OAAO,WAAY,SAAQ,SAAiB;IAChD,YAAY,IAAY,EAAE,UAA6B,EAAE;QACvD,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
package/dist/ast/ts-node.d.ts
CHANGED
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
import type { AnalysisContext, Symbol as CoreSymbol, File, Node as ICoreNode, NodeScope } from "@hey-api/codegen-core";
|
|
2
1
|
import type ts from "typescript";
|
|
2
|
+
import { ValueNode, type ValueNodeOptions } from "./value-node.js";
|
|
3
3
|
/** INode wrapper around a `ts.Statement`. Mirrors hey-api's `TsDsl` base. */
|
|
4
|
-
export declare class TsStatementNode
|
|
5
|
-
|
|
6
|
-
readonly language = "typescript";
|
|
7
|
-
exported?: boolean;
|
|
8
|
-
root: boolean;
|
|
9
|
-
scope?: NodeScope;
|
|
10
|
-
symbol?: CoreSymbol;
|
|
11
|
-
file?: File;
|
|
12
|
-
private _name;
|
|
13
|
-
private readonly _statement;
|
|
14
|
-
constructor(statement: ts.Statement, options?: {
|
|
15
|
-
name: string;
|
|
16
|
-
exported?: boolean;
|
|
17
|
-
root?: boolean;
|
|
18
|
-
scope?: NodeScope;
|
|
19
|
-
});
|
|
20
|
-
get name(): ICoreNode["name"];
|
|
21
|
-
analyze(_: AnalysisContext): void;
|
|
22
|
-
clone(): this;
|
|
23
|
-
toAst(): ts.Statement;
|
|
4
|
+
export declare class TsStatementNode extends ValueNode<ts.Statement> {
|
|
5
|
+
constructor(statement: ts.Statement, options?: ValueNodeOptions);
|
|
24
6
|
}
|
|
25
7
|
//# sourceMappingURL=ts-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-node.d.ts","sourceRoot":"","sources":["../../src/ast/ts-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ts-node.d.ts","sourceRoot":"","sources":["../../src/ast/ts-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,6EAA6E;AAC7E,qBAAa,eAAgB,SAAQ,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;gBAExD,SAAS,EAAE,EAAE,CAAC,SAAS,EACvB,OAAO,GAAE,gBAAmC;CAI/C"}
|
package/dist/ast/ts-node.js
CHANGED
|
@@ -1,41 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueNode } from "./value-node.js";
|
|
2
2
|
/** INode wrapper around a `ts.Statement`. Mirrors hey-api's `TsDsl` base. */
|
|
3
|
-
export class TsStatementNode {
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
exported;
|
|
7
|
-
root;
|
|
8
|
-
scope;
|
|
9
|
-
symbol;
|
|
10
|
-
file;
|
|
11
|
-
_name;
|
|
12
|
-
_statement;
|
|
13
|
-
constructor(statement, options = {
|
|
14
|
-
name: "anon",
|
|
15
|
-
}) {
|
|
16
|
-
this._statement = statement;
|
|
17
|
-
this._name = ref(options.name);
|
|
18
|
-
this.exported = options.exported;
|
|
19
|
-
this.root = options.root ?? true;
|
|
20
|
-
this.scope = options.scope ?? "value";
|
|
21
|
-
}
|
|
22
|
-
get name() {
|
|
23
|
-
return {
|
|
24
|
-
...this._name,
|
|
25
|
-
set: (value) => {
|
|
26
|
-
this._name = ref(typeof value === "string" ? value : String(value));
|
|
27
|
-
},
|
|
28
|
-
toString: () => this._name["~ref"],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
analyze(_) { }
|
|
32
|
-
clone() {
|
|
33
|
-
const cloned = Object.create(Object.getPrototypeOf(this));
|
|
34
|
-
Object.assign(cloned, this);
|
|
35
|
-
return cloned;
|
|
36
|
-
}
|
|
37
|
-
toAst() {
|
|
38
|
-
return this._statement;
|
|
3
|
+
export class TsStatementNode extends ValueNode {
|
|
4
|
+
constructor(statement, options = { name: "anon" }) {
|
|
5
|
+
super(statement, { ...options, scope: options.scope ?? "value" });
|
|
39
6
|
}
|
|
40
7
|
}
|
|
41
8
|
//# sourceMappingURL=ts-node.js.map
|
package/dist/ast/ts-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-node.js","sourceRoot":"","sources":["../../src/ast/ts-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ts-node.js","sourceRoot":"","sources":["../../src/ast/ts-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAEnE,6EAA6E;AAC7E,MAAM,OAAO,eAAgB,SAAQ,SAAuB;IAC1D,YACE,SAAuB,EACvB,UAA4B,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5C,KAAK,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AnalysisContext, Symbol as CoreSymbol, File, Node as ICoreNode, NodeScope } from "@hey-api/codegen-core";
|
|
2
|
+
export interface ValueNodeOptions {
|
|
3
|
+
name: string;
|
|
4
|
+
exported?: boolean;
|
|
5
|
+
root?: boolean;
|
|
6
|
+
scope?: NodeScope;
|
|
7
|
+
}
|
|
8
|
+
/** INode carrying an already-built value that `toAst()` hands back unchanged. */
|
|
9
|
+
export declare class ValueNode<T> implements ICoreNode<T> {
|
|
10
|
+
readonly "~brand" = "heyapi.node";
|
|
11
|
+
readonly language = "typescript";
|
|
12
|
+
meta: unknown;
|
|
13
|
+
exported?: boolean;
|
|
14
|
+
root: boolean;
|
|
15
|
+
scope?: NodeScope;
|
|
16
|
+
symbol?: CoreSymbol;
|
|
17
|
+
file?: File;
|
|
18
|
+
private _name;
|
|
19
|
+
private readonly _value;
|
|
20
|
+
constructor(value: T, options: ValueNodeOptions);
|
|
21
|
+
get name(): ICoreNode["name"];
|
|
22
|
+
analyze(_: AnalysisContext): void;
|
|
23
|
+
clone(): this;
|
|
24
|
+
toAst(): T;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=value-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-node.d.ts","sourceRoot":"","sources":["../../src/ast/value-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,MAAM,IAAI,UAAU,EACpB,IAAI,EACJ,IAAI,IAAI,SAAS,EACjB,SAAS,EAEV,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,iFAAiF;AACjF,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,iBAAa;IAC9B,QAAQ,CAAC,QAAQ,gBAAgB;IACjC,IAAI,EAAE,OAAO,CAAa;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAI;gBAEf,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB;IAQ/C,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAQ5B;IAED,OAAO,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI;IAEjC,KAAK,IAAI,IAAI;IAMb,KAAK,IAAI,CAAC;CAGX"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { nodeBrand, ref } from "@hey-api/codegen-core";
|
|
2
|
+
/** INode carrying an already-built value that `toAst()` hands back unchanged. */
|
|
3
|
+
export class ValueNode {
|
|
4
|
+
"~brand" = nodeBrand;
|
|
5
|
+
language = "typescript";
|
|
6
|
+
meta = undefined;
|
|
7
|
+
exported;
|
|
8
|
+
root;
|
|
9
|
+
scope;
|
|
10
|
+
symbol;
|
|
11
|
+
file;
|
|
12
|
+
_name;
|
|
13
|
+
_value;
|
|
14
|
+
constructor(value, options) {
|
|
15
|
+
this._value = value;
|
|
16
|
+
this._name = ref(options.name);
|
|
17
|
+
this.exported = options.exported;
|
|
18
|
+
this.root = options.root ?? true;
|
|
19
|
+
this.scope = options.scope;
|
|
20
|
+
}
|
|
21
|
+
get name() {
|
|
22
|
+
return {
|
|
23
|
+
...this._name,
|
|
24
|
+
set: (value) => {
|
|
25
|
+
this._name = ref(typeof value === "string" ? value : String(value));
|
|
26
|
+
},
|
|
27
|
+
toString: () => this._name["~ref"],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
analyze(_) { }
|
|
31
|
+
clone() {
|
|
32
|
+
const cloned = Object.create(Object.getPrototypeOf(this));
|
|
33
|
+
Object.assign(cloned, this);
|
|
34
|
+
return cloned;
|
|
35
|
+
}
|
|
36
|
+
toAst() {
|
|
37
|
+
return this._value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=value-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-node.js","sourceRoot":"","sources":["../../src/ast/value-node.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AASvD,iFAAiF;AACjF,MAAM,OAAO,SAAS;IACX,QAAQ,GAAG,SAAS,CAAC;IACrB,QAAQ,GAAG,YAAY,CAAC;IACjC,IAAI,GAAY,SAAS,CAAC;IAC1B,QAAQ,CAAW;IACnB,IAAI,CAAU;IACd,KAAK,CAAa;IAClB,MAAM,CAAc;IACpB,IAAI,CAAQ;IAEJ,KAAK,CAAc;IACV,MAAM,CAAI;IAE3B,YAAY,KAAQ,EAAE,OAAyB;QAC7C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SACd,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,CAAkB,IAAS,CAAC;IAEpC,KAAK;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,6 @@ export type { EventsPluginConfig, EventsResolvedConfig, } from "./plugins/events
|
|
|
10
10
|
export { events } from "./plugins/events/index.js";
|
|
11
11
|
export type { IndexBarrelConfig, IndexBarrelResolvedConfig, } from "./plugins/index-barrel/index.js";
|
|
12
12
|
export { indexBarrel } from "./plugins/index-barrel/index.js";
|
|
13
|
-
export type { TypescriptPluginConfig, TypescriptResolvedConfig, } from "./plugins/typescript/index.js";
|
|
13
|
+
export type { TypescriptApi, TypescriptPluginConfig, TypescriptResolvedConfig, } from "./plugins/typescript/index.js";
|
|
14
14
|
export { typescript } from "./plugins/typescript/index.js";
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,kBAAkB,EAIlB,eAAe,GAKhB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAKrD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAKxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,kBAAkB,EAIlB,eAAe,GAKhB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAKrD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAKxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM9D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAYlE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACrC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAYlE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACrC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA6C7E"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -26,12 +26,13 @@ export async function generate(opts) {
|
|
|
26
26
|
const filesEmitted = [];
|
|
27
27
|
for (const reg of orderPlugins(opts.plugins)) {
|
|
28
28
|
const def = reg.__definition;
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const api = def.createApi ? def.createApi() : def.api;
|
|
30
|
+
if (api !== undefined)
|
|
31
|
+
apiRegistry.set(def.name, api);
|
|
31
32
|
const config = def.resolveConfig
|
|
32
33
|
? def.resolveConfig(reg.__userConfig, { document })
|
|
33
34
|
: { ...def.defaultConfig, ...(reg.__userConfig ?? {}) };
|
|
34
|
-
const instance = createPluginInstance(def.name, config,
|
|
35
|
+
const instance = createPluginInstance(def.name, config, api, {
|
|
35
36
|
document,
|
|
36
37
|
project,
|
|
37
38
|
files: filesEmitted,
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,OAAO,EACP,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAgD,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAapE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE/B,0EAA0E;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,OAAO;QACxB,2BAA2B,EAAE,0BAA0B;QACvD,UAAU,EAAE,iBAAiB;QAC7B,gBAAgB,EAAE,uBAAuB;QACzC,qBAAqB,EAAE,4BAA4B;QACnD,SAAS,EAAE,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAI,eAAe,EAAE,CAAC;KACrE,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC/C,MAAM,YAAY,GAAoB,EAAE,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC;QAC7B,
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -73,7 +73,7 @@ export interface PluginInstance<Config = unknown, Api = unknown> {
|
|
|
73
73
|
readonly document: AsyncAPIDocumentInterface;
|
|
74
74
|
/** Files emitted so far (by this and prior plugins). */
|
|
75
75
|
readonly files: ReadonlyArray<GeneratedFile>;
|
|
76
|
-
/** Add a file to the output as raw text. Use for
|
|
76
|
+
/** Add a file to the output as raw text. Use for generated text and copied bundles. */
|
|
77
77
|
emit(file: GeneratedFile): void;
|
|
78
78
|
/**
|
|
79
79
|
* Add a file to the output as a list of `ts.Statement` AST nodes; the
|
|
@@ -117,6 +117,8 @@ export interface PluginDefinition<Name extends string = string, UserConfig = unk
|
|
|
117
117
|
}) => ResolvedConfig;
|
|
118
118
|
/** API surface other plugins can fetch via `plugin.getApi(name)`. */
|
|
119
119
|
api?: Api;
|
|
120
|
+
/** Like `api`, but built fresh for each `generate()` run so the plugin can hold per-run state. */
|
|
121
|
+
createApi?: () => Api;
|
|
120
122
|
hooks?: PluginHooks<ResolvedConfig, Api>;
|
|
121
123
|
/** Names of plugins this one depends on. The orchestrator topologically sorts. */
|
|
122
124
|
dependsOn?: ReadonlyArray<string>;
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzD,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO;IAC7D,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA0JH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAMhC,GAA4D;IAI5D,OAAO,CAAC,MAA4B,EAAE,EAAE,CAAC,CAAC;QACxC,YAAY,EAAE,GAAG;QACjB,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC;AACL,CAAC;AAED,mEAAmE;AACnE,MAAM,SAAS,CAAC,CAAC,eAAe,CAC9B,QAAmC,EACnC,KAAiC;IAEjC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,aAAa,EAAE,sBAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/event-map/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAA2B
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugins/event-map/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAA2B,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAO/E,eAAO,MAAM,QAAQ,wKA0DnB,CAAC"}
|
|
@@ -11,12 +11,14 @@ export const eventMap = definePluginConfig({
|
|
|
11
11
|
handler(plugin) {
|
|
12
12
|
const eventMapMembers = [];
|
|
13
13
|
const importNames = new Set();
|
|
14
|
+
const types = plugin.getApi("typescript");
|
|
14
15
|
for (const ev of plugin.forEach("message")) {
|
|
15
16
|
if (ev.type !== "message")
|
|
16
17
|
continue;
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const typeName = types?.messageTypeName(ev.message.id());
|
|
19
|
+
if (typeName)
|
|
20
|
+
importNames.add(typeName);
|
|
21
|
+
eventMapMembers.push(tn.property(inferEventType(ev.message), typeName ? tn.ref(typeName) : tn.unknown()));
|
|
20
22
|
}
|
|
21
23
|
const anyMessageAlias = f.createTypeAliasDeclaration([f.createModifier(ts.SyntaxKind.ExportKeyword)], "AnyMessage", undefined, f.createIndexedAccessTypeNode(tn.ref("EventMap"), tn.keyOf(tn.ref("EventMap"))));
|
|
22
24
|
plugin.emitTs("event-map.gen.ts", [
|
|
@@ -45,9 +47,13 @@ function buildIsMessageOfType() {
|
|
|
45
47
|
f.createParameterDeclaration(undefined, undefined, "msg", undefined, tn.ref("AnyMessage")),
|
|
46
48
|
f.createParameterDeclaration(undefined, undefined, "type", undefined, tn.ref("K")),
|
|
47
49
|
], f.createTypePredicateNode(undefined, "msg", f.createIndexedAccessTypeNode(tn.ref("EventMap"), tn.ref("K"))), f.createBlock([
|
|
48
|
-
f.createReturnStatement(f.createBinaryExpression(f.
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
f.createReturnStatement(f.createBinaryExpression(f.createPropertyAccessChain(f.createParenthesizedExpression(f.createAsExpression(f.createIdentifier("msg"), f.createUnionTypeNode([
|
|
51
|
+
f.createTypeLiteralNode([
|
|
52
|
+
tn.property("type", tn.string(), true),
|
|
53
|
+
]),
|
|
54
|
+
f.createLiteralTypeNode(f.createNull()),
|
|
55
|
+
f.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),
|
|
56
|
+
]))), f.createToken(ts.SyntaxKind.QuestionDotToken), "type"), f.createToken(ts.SyntaxKind.EqualsEqualsEqualsToken), f.createIdentifier("type"))),
|
|
51
57
|
], true));
|
|
52
58
|
}
|
|
53
59
|
function inferEventType(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/event-map/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/event-map/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export interface EventMapPluginConfig {
|
|
2
|
-
|
|
3
|
-
messageSuffix?: string;
|
|
4
|
-
}
|
|
5
|
-
export interface EventMapResolvedConfig {
|
|
6
|
-
messageSuffix: string;
|
|
2
|
+
reserved?: never;
|
|
7
3
|
}
|
|
4
|
+
export type EventMapResolvedConfig = Record<string, never>;
|
|
8
5
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/event-map/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import type { TypescriptPluginConfig, TypescriptResolvedConfig } from "./types.js";
|
|
1
|
+
import type { TypescriptApi, TypescriptPluginConfig, TypescriptResolvedConfig } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Emit
|
|
3
|
+
* Emit TS types for every message payload and named component schema.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* inject titles there too — parser dereferences $refs by the time we
|
|
10
|
-
* read `payload.json()`, so the title is the only handle Modelina has).
|
|
5
|
+
* Payloads are JSON Schema, so they go to Hey API's `@hey-api/typescript` as
|
|
6
|
+
* the `components.schemas` of an OpenAPI 3.1 document. The parser tags every
|
|
7
|
+
* component schema with `x-parser-schema-id`, which turns its dereferenced
|
|
8
|
+
* copies back into `$ref`s so named types survive.
|
|
11
9
|
*/
|
|
12
|
-
export declare const typescript: (config?: Partial<TypescriptPluginConfig> | undefined) => import("../../plugin.js").RegisteredPlugin<"typescript", TypescriptPluginConfig, TypescriptResolvedConfig,
|
|
10
|
+
export declare const typescript: (config?: Partial<TypescriptPluginConfig> | undefined) => import("../../plugin.js").RegisteredPlugin<"typescript", TypescriptPluginConfig, TypescriptResolvedConfig, MessageTypeRegistry>;
|
|
11
|
+
/** Hey API's symbol table holds the final (cased, de-duplicated) name of each message's type. */
|
|
12
|
+
interface MessageTypeRegistry extends TypescriptApi {
|
|
13
|
+
names: Map<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
13
16
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/plugin.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAKpB;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,2LAiFrB,CAAC;AA0EH,iGAAiG;AACjG,UAAU,mBAAoB,SAAQ,aAAa;IACjD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B"}
|
|
@@ -1,67 +1,134 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { basename } from "node:path";
|
|
2
|
+
import { createClient } from "@hey-api/openapi-ts";
|
|
2
3
|
import { definePluginConfig } from "../../plugin.js";
|
|
3
4
|
import { defaultConfig } from "./config.js";
|
|
4
|
-
const HEADER =
|
|
5
|
-
"// AUTO-GENERATED by @ir-kit/asyncapi-typescript — do not hand-edit.",
|
|
6
|
-
"",
|
|
7
|
-
"",
|
|
8
|
-
].join("\n");
|
|
5
|
+
const HEADER = "// AUTO-GENERATED by @ir-kit/asyncapi-typescript — do not hand-edit.";
|
|
9
6
|
/**
|
|
10
|
-
* Emit
|
|
7
|
+
* Emit TS types for every message payload and named component schema.
|
|
11
8
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* inject titles there too — parser dereferences $refs by the time we
|
|
17
|
-
* read `payload.json()`, so the title is the only handle Modelina has).
|
|
9
|
+
* Payloads are JSON Schema, so they go to Hey API's `@hey-api/typescript` as
|
|
10
|
+
* the `components.schemas` of an OpenAPI 3.1 document. The parser tags every
|
|
11
|
+
* component schema with `x-parser-schema-id`, which turns its dereferenced
|
|
12
|
+
* copies back into `$ref`s so named types survive.
|
|
18
13
|
*/
|
|
19
14
|
export const typescript = definePluginConfig({
|
|
20
15
|
name: "typescript",
|
|
21
16
|
defaultConfig,
|
|
17
|
+
createApi: () => {
|
|
18
|
+
const names = new Map();
|
|
19
|
+
return { names, messageTypeName: (messageId) => names.get(messageId) };
|
|
20
|
+
},
|
|
22
21
|
async handler(plugin) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
for (const
|
|
31
|
-
|
|
32
|
-
const raw = schema.json();
|
|
33
|
-
if (id && typeof raw === "object" && raw !== null && !("title" in raw)) {
|
|
34
|
-
raw.title = id;
|
|
35
|
-
}
|
|
22
|
+
const components = Object.entries(plugin.document.json().components?.schemas ?? {});
|
|
23
|
+
// why: the parser tags component copies with `$id` when present, not the component key.
|
|
24
|
+
const componentKeys = new Map(components.map(([key, json]) => [
|
|
25
|
+
json["x-parser-schema-id"],
|
|
26
|
+
key,
|
|
27
|
+
]));
|
|
28
|
+
const schemas = {};
|
|
29
|
+
for (const [key, json] of components) {
|
|
30
|
+
schemas[key] = toOpenApiSchema(json, componentKeys, json);
|
|
36
31
|
}
|
|
37
|
-
const
|
|
32
|
+
const messageKeys = new Map();
|
|
38
33
|
for (const ev of plugin.forEach("message")) {
|
|
39
|
-
if (ev.type !== "message")
|
|
34
|
+
if (ev.type !== "message" || messageKeys.has(ev.message.id()))
|
|
40
35
|
continue;
|
|
41
36
|
const payload = ev.message.payload();
|
|
42
37
|
if (!payload)
|
|
43
38
|
continue;
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const models = await generator.generate(schema);
|
|
48
|
-
for (const model of models) {
|
|
49
|
-
if (!seen.has(model.modelName)) {
|
|
50
|
-
seen.set(model.modelName, model.result);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
39
|
+
const key = freeKey(`${ev.message.id()}${plugin.config.messageSuffix}`, schemas);
|
|
40
|
+
schemas[key] = toOpenApiSchema(payloadJsonSchema(payload.json()), componentKeys);
|
|
41
|
+
messageKeys.set(ev.message.id(), key);
|
|
53
42
|
}
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
const [context] = await createClient({
|
|
44
|
+
// why: stop Hey API from merging in an `openapi-ts.config.*` from the cwd.
|
|
45
|
+
configFile: "ir-kit-asyncapi-no-config.none",
|
|
46
|
+
dryRun: true,
|
|
47
|
+
input: {
|
|
48
|
+
openapi: "3.1.0",
|
|
49
|
+
info: { title: "asyncapi", version: "0" },
|
|
50
|
+
paths: {},
|
|
51
|
+
components: { schemas },
|
|
52
|
+
},
|
|
53
|
+
logs: { file: false, level: "silent" },
|
|
54
|
+
// why: Hey API empties `output.path` even on a dry run.
|
|
55
|
+
output: {
|
|
56
|
+
clean: false,
|
|
57
|
+
fileName: { case: "preserve", suffix: ".gen" },
|
|
58
|
+
header: HEADER,
|
|
59
|
+
path: ".",
|
|
60
|
+
},
|
|
61
|
+
plugins: ["@hey-api/typescript"],
|
|
60
62
|
});
|
|
63
|
+
if (!context)
|
|
64
|
+
throw new Error("@hey-api/openapi-ts produced no output");
|
|
65
|
+
for (const [messageId, key] of messageKeys) {
|
|
66
|
+
const [symbol] = context.gen.symbols.query({
|
|
67
|
+
resource: "definition",
|
|
68
|
+
resourceId: schemaRef(key),
|
|
69
|
+
});
|
|
70
|
+
if (symbol)
|
|
71
|
+
plugin.api.names.set(messageId, symbol.finalName);
|
|
72
|
+
}
|
|
73
|
+
const types = [...context.gen.render()].find((file) => basename(file.path) === "types.gen.ts");
|
|
74
|
+
if (!types)
|
|
75
|
+
throw new Error("@hey-api/typescript emitted no types.gen.ts");
|
|
76
|
+
plugin.emit({ path: "types.gen.ts", content: types.content });
|
|
61
77
|
},
|
|
62
78
|
});
|
|
63
|
-
/**
|
|
64
|
-
function
|
|
65
|
-
|
|
79
|
+
/** Multi-format payloads (Avro, OpenAPI, …) keep the parser-converted JSON Schema under `schema`. */
|
|
80
|
+
function payloadJsonSchema(json) {
|
|
81
|
+
if (json &&
|
|
82
|
+
typeof json === "object" &&
|
|
83
|
+
"schemaFormat" in json &&
|
|
84
|
+
"schema" in json) {
|
|
85
|
+
return json.schema;
|
|
86
|
+
}
|
|
87
|
+
return json;
|
|
88
|
+
}
|
|
89
|
+
/** Keywords whose value maps names to schemas, so its keys are data, not schema metadata. */
|
|
90
|
+
const SCHEMA_MAPS = new Set([
|
|
91
|
+
"$defs",
|
|
92
|
+
"definitions",
|
|
93
|
+
"dependentSchemas",
|
|
94
|
+
"patternProperties",
|
|
95
|
+
"properties",
|
|
96
|
+
]);
|
|
97
|
+
/** Copy a dereferenced schema, turning nested component schemas back into `$ref`s and dropping parser bookkeeping. */
|
|
98
|
+
function toOpenApiSchema(node, componentKeys, root, path = new Set()) {
|
|
99
|
+
if (!node || typeof node !== "object")
|
|
100
|
+
return node;
|
|
101
|
+
const key = componentKeys.get(node["x-parser-schema-id"]);
|
|
102
|
+
if (node !== root && key)
|
|
103
|
+
return { $ref: schemaRef(key) };
|
|
104
|
+
// why: an anonymous schema that contains itself has no name to `$ref`.
|
|
105
|
+
if (path.has(node))
|
|
106
|
+
return {};
|
|
107
|
+
path.add(node);
|
|
108
|
+
const recurse = (value) => toOpenApiSchema(value, componentKeys, root, path);
|
|
109
|
+
const copy = Array.isArray(node)
|
|
110
|
+
? node.map(recurse)
|
|
111
|
+
: Object.fromEntries(Object.entries(node)
|
|
112
|
+
.filter(([name]) => !name.startsWith("x-parser-") && name !== "$schema")
|
|
113
|
+
.map(([name, value]) => [
|
|
114
|
+
name,
|
|
115
|
+
SCHEMA_MAPS.has(name) && value && typeof value === "object"
|
|
116
|
+
? Object.fromEntries(Object.entries(value).map(([field, schema]) => [
|
|
117
|
+
field,
|
|
118
|
+
recurse(schema),
|
|
119
|
+
]))
|
|
120
|
+
: recurse(value),
|
|
121
|
+
]));
|
|
122
|
+
path.delete(node);
|
|
123
|
+
return copy;
|
|
124
|
+
}
|
|
125
|
+
function schemaRef(key) {
|
|
126
|
+
return `#/components/schemas/${key.replaceAll("~", "~0").replaceAll("/", "~1")}`;
|
|
127
|
+
}
|
|
128
|
+
function freeKey(key, taken) {
|
|
129
|
+
let candidate = key;
|
|
130
|
+
for (let n = 2; candidate in taken; n++)
|
|
131
|
+
candidate = `${key}${n}`;
|
|
132
|
+
return candidate;
|
|
66
133
|
}
|
|
67
134
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/typescript/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/typescript/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export interface TypescriptPluginConfig {
|
|
2
|
-
/** Suffix appended to message ids for the message
|
|
2
|
+
/** Suffix appended to message ids for the message payload type name. Default: `"Message"`. */
|
|
3
3
|
messageSuffix?: string;
|
|
4
4
|
}
|
|
5
5
|
export interface TypescriptResolvedConfig {
|
|
6
6
|
messageSuffix: string;
|
|
7
7
|
}
|
|
8
|
+
export interface TypescriptApi {
|
|
9
|
+
/** Name of the type generated for a message's payload, or `undefined` when the message has no payload. */
|
|
10
|
+
messageTypeName(messageId: string): string | undefined;
|
|
11
|
+
}
|
|
8
12
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,0GAA0G;IAC1G,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ir-kit/asyncapi-typescript",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "AsyncAPI 3.0 → TypeScript generator. Plugin-compose architecture: a small core orchestrates parser → IR → registered plugins, each emitting one slice of generated code (types, Events const, dispatch helpers, AMQP helpers, framework adapters). Parser via @asyncapi/parser, JSON Schema → TS via @
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "AsyncAPI 3.0 → TypeScript generator. Plugin-compose architecture: a small core orchestrates parser → IR → registered plugins, each emitting one slice of generated code (types, Events const, dispatch helpers, AMQP helpers, framework adapters). Parser via @asyncapi/parser, JSON Schema → TS via @hey-api/openapi-ts, file orchestration via @hey-api/codegen-core.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"asyncapi",
|
|
7
7
|
"typescript",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"provenance": true
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@asyncapi/modelina": ">=5.0.0",
|
|
48
47
|
"@asyncapi/parser": ">=3.0.0",
|
|
49
48
|
"@hey-api/codegen-core": ">=0.8.0",
|
|
50
|
-
"@
|
|
51
|
-
"@ir-kit/
|
|
49
|
+
"@hey-api/openapi-ts": ">=0.99.0",
|
|
50
|
+
"@ir-kit/asyncapi-core": ">=0.2.0",
|
|
51
|
+
"@ir-kit/codegen-core": ">=0.3.0",
|
|
52
52
|
"amqplib": ">=0.10.0",
|
|
53
53
|
"typescript": ">=5.0.0"
|
|
54
54
|
},
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@asyncapi/modelina": "^5.0.0",
|
|
62
61
|
"@asyncapi/parser": "^3.6.0",
|
|
63
|
-
"@hey-api/codegen-core": "^0.
|
|
62
|
+
"@hey-api/codegen-core": "^0.9.1",
|
|
63
|
+
"@hey-api/openapi-ts": "^0.99.0",
|
|
64
64
|
"@testcontainers/rabbitmq": "^11.14.0",
|
|
65
65
|
"@types/amqplib": "^0.10.5",
|
|
66
66
|
"@types/node": "^22",
|
|
@@ -68,15 +68,15 @@
|
|
|
68
68
|
"testcontainers": "^11.14.0",
|
|
69
69
|
"typescript": "5.9.3",
|
|
70
70
|
"vitest": "^4.0.0",
|
|
71
|
-
"@ir-kit/asyncapi-core": "0.
|
|
72
|
-
"@ir-kit/codegen-core": "0.
|
|
71
|
+
"@ir-kit/asyncapi-core": "0.2.0",
|
|
72
|
+
"@ir-kit/codegen-core": "0.3.0",
|
|
73
73
|
"@ir-kit/tsconfig": "0.0.0"
|
|
74
74
|
},
|
|
75
75
|
"engines": {
|
|
76
76
|
"node": ">=20.19.0"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@ir-kit/asyncapi-loader": "0.2.
|
|
79
|
+
"@ir-kit/asyncapi-loader": "0.2.1"
|
|
80
80
|
},
|
|
81
81
|
"scripts": {
|
|
82
82
|
"build": "tsc -p tsconfig.build.json && node scripts/copy-bundles.mjs",
|