typespec-typescript-emitter 2.1.0 → 2.2.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/CHANGELOG.md +9 -10
- package/README.md +1 -0
- package/dist/src/emit_routedTypemap.js +2 -2
- package/dist/src/emit_routedTypemap.js.map +1 -1
- package/dist/src/emit_types.js +6 -5
- package/dist/src/emit_types.js.map +1 -1
- package/dist/src/helpers/getImports.d.ts +1 -1
- package/dist/src/helpers/getImports.js +1 -1
- package/dist/src/helpers/getImports.js.map +1 -1
- package/dist/src/helpers/namespaces.d.ts +1 -1
- package/dist/src/helpers/namespaces.js +1 -1
- package/dist/src/helpers/namespaces.js.map +1 -1
- package/dist/src/helpers/visibilityHelperFile.d.ts +1 -1
- package/dist/src/helpers/visibilityHelperFile.js +2 -2
- package/dist/src/helpers/visibilityHelperFile.js.map +1 -1
- package/dist/src/lib.d.ts +1 -0
- package/dist/src/lib.js +2 -0
- package/dist/src/lib.js.map +1 -1
- package/package.json +1 -1
- package/src/emit_routedTypemap.ts +5 -2
- package/src/emit_types.ts +8 -5
- package/src/helpers/getImports.ts +3 -1
- package/src/helpers/namespaces.ts +4 -2
- package/src/helpers/visibilityHelperFile.ts +3 -2
- package/src/lib.ts +4 -0
- package/test/helpers/wrapper.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
# [2.2.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.1.0...v2.2.0) (2026-01-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* option to enabled/disable .ts file extensions on import statements ([c6a423e](https://github.com/crowbait/typespec-typescript-emitter/commit/c6a423e73139a35b36f8c413431f408a09dd9d89))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
# [2.1.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.0.1...v2.1.0) (2025-12-18)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -35,13 +44,3 @@
|
|
|
35
44
|
|
|
36
45
|
|
|
37
46
|
|
|
38
|
-
# [1.2.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.1.2...v1.2.0) (2025-11-18)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### Features
|
|
42
|
-
|
|
43
|
-
* serializable-date-types ([ba4775d](https://github.com/crowbait/typespec-typescript-emitter/commit/ba4775d2292dcec4436470b19e9c1aea3b9b3e70))
|
|
44
|
-
* string-nominal-enums ([a0b572c](https://github.com/crowbait/typespec-typescript-emitter/commit/a0b572c2f19baa5d100663458f2ea1ad182b4323))
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ The following options are available:
|
|
|
68
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
69
|
- `type-mappings` (default: undefined): see [Overriding Types \& Typeguards](#overriding-types--typeguards)
|
|
70
70
|
- `typeguard-mappings` (default: undefined): see [Overriding Types \& Typeguards](#overriding-types--typeguards)
|
|
71
|
+
- `import-file-extensions` (default: false): if true, import statements get the `.ts` extension, otherwise, the file extension is omitted for import statements.
|
|
71
72
|
|
|
72
73
|
## Emitter: Types
|
|
73
74
|
|
|
@@ -49,9 +49,9 @@ export const emitRoutedTypemap = async (program, options, typemap) => {
|
|
|
49
49
|
}
|
|
50
50
|
// emitting
|
|
51
51
|
for (const ns of Object.entries(namespaceOps)) {
|
|
52
|
-
const importStrings = getImports(unique2D(namespaceImports[ns[0]]));
|
|
52
|
+
const importStrings = getImports(unique2D(namespaceImports[ns[0]]), options["import-file-extensions"]);
|
|
53
53
|
if (ns[1].hasVisibility) {
|
|
54
|
-
importStrings.push(`import {Lifecycle, FilterLifecycle} from './${visibilityHelperFileName}';`);
|
|
54
|
+
importStrings.push(`import {Lifecycle, FilterLifecycle} from './${visibilityHelperFileName(options["import-file-extensions"])}';`);
|
|
55
55
|
}
|
|
56
56
|
let out = `export type types_${ns[0]}${ns[1].hasVisibility ? "<V extends Lifecycle = Lifecycle.All>" : ""} = {\n`;
|
|
57
57
|
out += Object.entries(ns[1].ops)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit_routedTypemap.js","sourceRoot":"","sources":["../../src/emit_routedTypemap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emit_routedTypemap.js","sourceRoot":"","sources":["../../src/emit_routedTypemap.ts"],"names":[],"mappings":"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"}
|
package/dist/src/emit_types.js
CHANGED
|
@@ -14,8 +14,8 @@ export const emitTypes = async (program, options, typemap) => {
|
|
|
14
14
|
const imports = {};
|
|
15
15
|
// generate files
|
|
16
16
|
typemap.forEach((t) => {
|
|
17
|
-
files[filenameFromNamespaces(t.namespaces)] = new AppendableString();
|
|
18
|
-
imports[filenameFromNamespaces(t.namespaces)] = {
|
|
17
|
+
files[filenameFromNamespaces(t.namespaces, true)] = new AppendableString();
|
|
18
|
+
imports[filenameFromNamespaces(t.namespaces, true)] = {
|
|
19
19
|
namespaces: [],
|
|
20
20
|
lifecycleTypes: [],
|
|
21
21
|
};
|
|
@@ -25,7 +25,7 @@ export const emitTypes = async (program, options, typemap) => {
|
|
|
25
25
|
// resolve all types
|
|
26
26
|
for (let i = 0; i < typemap.length; i++) {
|
|
27
27
|
const t = typemap[i];
|
|
28
|
-
const filename = filenameFromNamespaces(t.namespaces);
|
|
28
|
+
const filename = filenameFromNamespaces(t.namespaces, true);
|
|
29
29
|
const resolved = await Resolvable.resolve(Resolver.Type, t.type, {
|
|
30
30
|
program,
|
|
31
31
|
options,
|
|
@@ -104,9 +104,10 @@ export const emitTypes = async (program, options, typemap) => {
|
|
|
104
104
|
continue;
|
|
105
105
|
const filename = filesArr[i][0];
|
|
106
106
|
imports[filename].namespaces = unique2D(imports[filename].namespaces);
|
|
107
|
-
const importStrings = getImports(imports[filename].namespaces.filter((i) => filenameFromNamespaces(i) !==
|
|
107
|
+
const importStrings = getImports(imports[filename].namespaces.filter((i) => filenameFromNamespaces(i, options["import-file-extensions"]) !==
|
|
108
|
+
filename), options["import-file-extensions"]);
|
|
108
109
|
if (imports[filename].lifecycleTypes.length > 0) {
|
|
109
|
-
importStrings.push(`import {${[...new Set(imports[filename].lifecycleTypes)].join(", ")}} from './${visibilityHelperFileName}';`); // unique-ify
|
|
110
|
+
importStrings.push(`import {${[...new Set(imports[filename].lifecycleTypes)].join(", ")}} from './${visibilityHelperFileName(options["import-file-extensions"])}';`); // unique-ify
|
|
110
111
|
}
|
|
111
112
|
const content = `/* eslint-disable */\n\n${autogenerateWarning}${importStrings.join("\n")}${importStrings.length > 0 ? "\n\n" : ""}${filesArr[i][1].value}`;
|
|
112
113
|
await emitFile(program, {
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"emit_types.js","sourceRoot":"","sources":["../../src/emit_types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TTypeMap } from "./buildTypeMap.js";
|
|
2
|
-
export declare const getImports: (imports: TTypeMap[number]["namespaces"][]) => string[];
|
|
2
|
+
export declare const getImports: (imports: TTypeMap[number]["namespaces"][], includeExtension: boolean) => string[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { filenameFromNamespaces } from "./namespaces.js";
|
|
2
|
-
export const getImports = (imports) => imports.map((i) => `import * as ${i.join("_")} from './${filenameFromNamespaces(i)}';`);
|
|
2
|
+
export const getImports = (imports, includeExtension) => imports.map((i) => `import * as ${i.join("_")} from './${filenameFromNamespaces(i, includeExtension)}';`);
|
|
3
3
|
//# sourceMappingURL=getImports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getImports.js","sourceRoot":"","sources":["../../../src/helpers/getImports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAyC,
|
|
1
|
+
{"version":3,"file":"getImports.js","sourceRoot":"","sources":["../../../src/helpers/getImports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAyC,EACzC,gBAAyB,EACf,EAAE,CACZ,OAAO,CAAC,GAAG,CACT,CAAC,CAAC,EAAE,EAAE,CACJ,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CACxF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Namespace } from "@typespec/compiler";
|
|
2
2
|
/** Traverses *up* a namespace, generating a hierarchy array from itself and its parents. */
|
|
3
3
|
export declare const namespaceListFromNamespace: (n: Namespace | undefined) => string[] | null;
|
|
4
|
-
export declare const filenameFromNamespaces: (ns: string[]) => string;
|
|
4
|
+
export declare const filenameFromNamespaces: (ns: string[], includeExtension: boolean) => string;
|
|
@@ -10,5 +10,5 @@ export const namespaceListFromNamespace = (n) => {
|
|
|
10
10
|
}
|
|
11
11
|
return ret;
|
|
12
12
|
};
|
|
13
|
-
export const filenameFromNamespaces = (ns) => `${ns.join(".")}.ts`;
|
|
13
|
+
export const filenameFromNamespaces = (ns, includeExtension) => `${ns.join(".")}${includeExtension ? ".ts" : ""}`;
|
|
14
14
|
//# sourceMappingURL=namespaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/helpers/namespaces.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,CAAwB,EACP,EAAE;IACnB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,GAAG,GAA0B,CAAC,CAAC;IACnC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/helpers/namespaces.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,CAAwB,EACP,EAAE;IACnB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,GAAG,GAA0B,CAAC,CAAC;IACnC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAY,EACZ,gBAAyB,EACjB,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Program } from "@typespec/compiler";
|
|
2
2
|
import { EmitterOptions } from "../lib.js";
|
|
3
|
-
export declare const visibilityHelperFileName
|
|
3
|
+
export declare const visibilityHelperFileName: (includeExtension: boolean) => string;
|
|
4
4
|
export declare const emitVisibilityHelperFile: (program: Program, options: EmitterOptions) => Promise<void>;
|
|
@@ -47,10 +47,10 @@ export type FilterLifecycle<
|
|
|
47
47
|
: T[K]
|
|
48
48
|
}
|
|
49
49
|
`;
|
|
50
|
-
export const visibilityHelperFileName = "
|
|
50
|
+
export const visibilityHelperFileName = (includeExtension) => `lifecycleVisibility${includeExtension ? ".ts" : ""}`;
|
|
51
51
|
export const emitVisibilityHelperFile = async (program, options) => {
|
|
52
52
|
await emitFile(program, {
|
|
53
|
-
path: resolvePath(options["out-dir"], visibilityHelperFileName),
|
|
53
|
+
path: resolvePath(options["out-dir"], visibilityHelperFileName(true)),
|
|
54
54
|
content: visibilityHelperFile,
|
|
55
55
|
});
|
|
56
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visibilityHelperFile.js","sourceRoot":"","sources":["../../../src/helpers/visibilityHelperFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGpE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C5B,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"visibilityHelperFile.js","sourceRoot":"","sources":["../../../src/helpers/visibilityHelperFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGpE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C5B,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,gBAAyB,EAAE,EAAE,CACpE,sBAAsB,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,OAAgB,EAChB,OAAuB,EACR,EAAE;IACjB,MAAM,QAAQ,CAAC,OAAO,EAAE;QACtB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface EmitterOptions {
|
|
|
10
10
|
"serializable-date-types": boolean;
|
|
11
11
|
"type-mappings": Record<string, string>;
|
|
12
12
|
"typeguard-mappings": Record<string, string>;
|
|
13
|
+
"import-file-extensions": boolean;
|
|
13
14
|
}
|
|
14
15
|
/** Maps option to its default value and options that must be set to `true` for this one to work */
|
|
15
16
|
export declare const optionDependencies: (context: EmitContext) => { [K in keyof EmitterOptions]: [EmitterOptions[K], (keyof EmitterOptions)[]]; };
|
package/dist/src/lib.js
CHANGED
|
@@ -20,6 +20,7 @@ const EmitterOptionsSchema = {
|
|
|
20
20
|
required: [],
|
|
21
21
|
additionalProperties: { type: "string" },
|
|
22
22
|
},
|
|
23
|
+
"import-file-extensions": { type: "boolean" },
|
|
23
24
|
},
|
|
24
25
|
required: ["root-namespaces"],
|
|
25
26
|
additionalProperties: false,
|
|
@@ -36,6 +37,7 @@ export const optionDependencies = (context) => ({
|
|
|
36
37
|
["enable-routed-typemap"]: [false, ["enable-types"]],
|
|
37
38
|
["type-mappings"]: [{}, []],
|
|
38
39
|
["typeguard-mappings"]: [{}, []],
|
|
40
|
+
["import-file-extensions"]: [false, []],
|
|
39
41
|
});
|
|
40
42
|
export const $lib = createTypeSpecLibrary({
|
|
41
43
|
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;AAgB5B,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;QACD,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC9C;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;IAEhC,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;CACxC,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typespec-typescript-emitter",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.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
6
|
"repository": "https://github.com/crowbait/typespec-typescript-emitter",
|
|
@@ -90,11 +90,14 @@ export const emitRoutedTypemap = async (
|
|
|
90
90
|
|
|
91
91
|
// emitting
|
|
92
92
|
for (const ns of Object.entries(namespaceOps)) {
|
|
93
|
-
const importStrings = getImports(
|
|
93
|
+
const importStrings = getImports(
|
|
94
|
+
unique2D(namespaceImports[ns[0]]),
|
|
95
|
+
options["import-file-extensions"],
|
|
96
|
+
);
|
|
94
97
|
|
|
95
98
|
if (ns[1].hasVisibility) {
|
|
96
99
|
importStrings.push(
|
|
97
|
-
`import {Lifecycle, FilterLifecycle} from './${visibilityHelperFileName}';`,
|
|
100
|
+
`import {Lifecycle, FilterLifecycle} from './${visibilityHelperFileName(options["import-file-extensions"])}';`,
|
|
98
101
|
);
|
|
99
102
|
}
|
|
100
103
|
|
package/src/emit_types.ts
CHANGED
|
@@ -28,8 +28,8 @@ export const emitTypes = async (
|
|
|
28
28
|
|
|
29
29
|
// generate files
|
|
30
30
|
typemap.forEach((t) => {
|
|
31
|
-
files[filenameFromNamespaces(t.namespaces)] = new AppendableString();
|
|
32
|
-
imports[filenameFromNamespaces(t.namespaces)] = {
|
|
31
|
+
files[filenameFromNamespaces(t.namespaces, true)] = new AppendableString();
|
|
32
|
+
imports[filenameFromNamespaces(t.namespaces, true)] = {
|
|
33
33
|
namespaces: [],
|
|
34
34
|
lifecycleTypes: [],
|
|
35
35
|
};
|
|
@@ -43,7 +43,7 @@ export const emitTypes = async (
|
|
|
43
43
|
// resolve all types
|
|
44
44
|
for (let i = 0; i < typemap.length; i++) {
|
|
45
45
|
const t = typemap[i];
|
|
46
|
-
const filename = filenameFromNamespaces(t.namespaces);
|
|
46
|
+
const filename = filenameFromNamespaces(t.namespaces, true);
|
|
47
47
|
const resolved = await Resolvable.resolve(Resolver.Type, t.type, {
|
|
48
48
|
program,
|
|
49
49
|
options,
|
|
@@ -132,12 +132,15 @@ export const emitTypes = async (
|
|
|
132
132
|
imports[filename].namespaces = unique2D(imports[filename].namespaces);
|
|
133
133
|
const importStrings = getImports(
|
|
134
134
|
imports[filename].namespaces.filter(
|
|
135
|
-
(i) =>
|
|
135
|
+
(i) =>
|
|
136
|
+
filenameFromNamespaces(i, options["import-file-extensions"]) !==
|
|
137
|
+
filename,
|
|
136
138
|
),
|
|
139
|
+
options["import-file-extensions"],
|
|
137
140
|
);
|
|
138
141
|
if (imports[filename].lifecycleTypes.length > 0) {
|
|
139
142
|
importStrings.push(
|
|
140
|
-
`import {${[...new Set(imports[filename].lifecycleTypes)].join(", ")}} from './${visibilityHelperFileName}';`,
|
|
143
|
+
`import {${[...new Set(imports[filename].lifecycleTypes)].join(", ")}} from './${visibilityHelperFileName(options["import-file-extensions"])}';`,
|
|
141
144
|
); // unique-ify
|
|
142
145
|
}
|
|
143
146
|
|
|
@@ -3,7 +3,9 @@ import { filenameFromNamespaces } from "./namespaces.js";
|
|
|
3
3
|
|
|
4
4
|
export const getImports = (
|
|
5
5
|
imports: TTypeMap[number]["namespaces"][],
|
|
6
|
+
includeExtension: boolean,
|
|
6
7
|
): string[] =>
|
|
7
8
|
imports.map(
|
|
8
|
-
(i) =>
|
|
9
|
+
(i) =>
|
|
10
|
+
`import * as ${i.join("_")} from './${filenameFromNamespaces(i, includeExtension)}';`,
|
|
9
11
|
);
|
|
@@ -14,5 +14,7 @@ export const namespaceListFromNamespace = (
|
|
|
14
14
|
return ret;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
export const filenameFromNamespaces = (
|
|
18
|
-
|
|
17
|
+
export const filenameFromNamespaces = (
|
|
18
|
+
ns: string[],
|
|
19
|
+
includeExtension: boolean,
|
|
20
|
+
): string => `${ns.join(".")}${includeExtension ? ".ts" : ""}`;
|
|
@@ -50,14 +50,15 @@ export type FilterLifecycle<
|
|
|
50
50
|
}
|
|
51
51
|
`;
|
|
52
52
|
|
|
53
|
-
export const visibilityHelperFileName =
|
|
53
|
+
export const visibilityHelperFileName = (includeExtension: boolean) =>
|
|
54
|
+
`lifecycleVisibility${includeExtension ? ".ts" : ""}`;
|
|
54
55
|
|
|
55
56
|
export const emitVisibilityHelperFile = async (
|
|
56
57
|
program: Program,
|
|
57
58
|
options: EmitterOptions,
|
|
58
59
|
): Promise<void> => {
|
|
59
60
|
await emitFile(program, {
|
|
60
|
-
path: resolvePath(options["out-dir"], visibilityHelperFileName),
|
|
61
|
+
path: resolvePath(options["out-dir"], visibilityHelperFileName(true)),
|
|
61
62
|
content: visibilityHelperFile,
|
|
62
63
|
});
|
|
63
64
|
};
|
package/src/lib.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface EmitterOptions {
|
|
|
15
15
|
"serializable-date-types": boolean;
|
|
16
16
|
"type-mappings": Record<string, string>;
|
|
17
17
|
"typeguard-mappings": Record<string, string>;
|
|
18
|
+
"import-file-extensions": boolean;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
const EmitterOptionsSchema: JSONSchemaType<EmitterOptions> = {
|
|
@@ -38,6 +39,7 @@ const EmitterOptionsSchema: JSONSchemaType<EmitterOptions> = {
|
|
|
38
39
|
required: [],
|
|
39
40
|
additionalProperties: { type: "string" },
|
|
40
41
|
},
|
|
42
|
+
"import-file-extensions": { type: "boolean" },
|
|
41
43
|
},
|
|
42
44
|
required: ["root-namespaces"],
|
|
43
45
|
additionalProperties: false,
|
|
@@ -61,6 +63,8 @@ export const optionDependencies = (
|
|
|
61
63
|
|
|
62
64
|
["type-mappings"]: [{}, []],
|
|
63
65
|
["typeguard-mappings"]: [{}, []],
|
|
66
|
+
|
|
67
|
+
["import-file-extensions"]: [false, []],
|
|
64
68
|
});
|
|
65
69
|
|
|
66
70
|
export const $lib = createTypeSpecLibrary({
|
package/test/helpers/wrapper.ts
CHANGED