@kattebak/typespec-enum-emitter 1.1.0 → 1.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/README.md CHANGED
@@ -49,6 +49,9 @@ emit:
49
49
  options:
50
50
  typespec-enum-emitter:
51
51
  output-file: "enums.js"
52
+ emitter-output-dir: "{cwd}/build/ts-enums"
53
+ package-name: "@mycorp/enums"
54
+ package-version: "1.0.0"
52
55
  ```
53
56
 
54
57
  ### 3. Compile
@@ -109,7 +112,9 @@ export declare const HttpStatusCode: {
109
112
  ## Configuration Options
110
113
 
111
114
  - `output-file`: Name of the output file (default: "enums.js")
112
- - `output-dir`: Output directory (defaults to emitter output directory)
115
+ - `emitter-output-dir`: Custom output directory (supports variable interpolation like `{cwd}`, `{project-root}`)
116
+ - `package-name`: If provided, generates a package.json file with this name
117
+ - `package-version`: Version for the generated package.json (default: "0.0.1")
113
118
 
114
119
  ## Why Use This?
115
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,iBAmCrE"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,iBA8CrE"}
package/dist/emitter.js CHANGED
@@ -16,6 +16,8 @@ export async function $onEmit(context) {
16
16
  }
17
17
  const outputDir = context.emitterOutputDir;
18
18
  const outputFile = context.options["output-file"] ?? "enums.js";
19
+ const packageName = context.options["package-name"];
20
+ const packageVersion = context.options["package-version"] ?? "0.0.1";
19
21
  const jsContent = generateJavaScript(enums);
20
22
  const tsContent = generateTypeScript(enums);
21
23
  await emitFile(context.program, {
@@ -26,6 +28,14 @@ export async function $onEmit(context) {
26
28
  path: resolvePath(outputDir, outputFile.replace(".js", ".d.ts")),
27
29
  content: tsContent,
28
30
  });
31
+ // Generate package.json if package-name is provided
32
+ if (packageName) {
33
+ const packageJson = generatePackageJson(packageName, packageVersion);
34
+ await emitFile(context.program, {
35
+ path: resolvePath(outputDir, "package.json"),
36
+ content: packageJson,
37
+ });
38
+ }
29
39
  }
30
40
  function generateJavaScript(enums) {
31
41
  const enumDefinitions = enums
@@ -65,4 +75,14 @@ function generateTypeScript(enums) {
65
75
  .join("\n\n");
66
76
  return `${enumDeclarations}\n`;
67
77
  }
78
+ function generatePackageJson(name, version) {
79
+ const packageJson = {
80
+ name,
81
+ version,
82
+ type: "module",
83
+ main: "enums.js",
84
+ types: "enums.d.ts",
85
+ };
86
+ return JSON.stringify(packageJson, null, 2);
87
+ }
68
88
  //# sourceMappingURL=emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}
package/dist/lib.d.ts CHANGED
@@ -1,20 +1,32 @@
1
1
  export interface EnumEmitterOptions {
2
- "output-dir"?: string;
3
2
  "output-file"?: string;
3
+ "emitter-output-dir"?: string;
4
+ "package-name"?: string;
5
+ "package-version"?: string;
4
6
  }
5
7
  export declare const $lib: {
6
8
  "emitter-options-schema": {
7
9
  readonly type: "object";
8
10
  readonly additionalProperties: false;
9
11
  readonly properties: {
10
- readonly "output-dir": {
12
+ readonly "output-file": {
11
13
  readonly type: "string";
12
14
  readonly nullable: true;
15
+ readonly default: "enums.js";
13
16
  };
14
- readonly "output-file": {
17
+ readonly "emitter-output-dir": {
15
18
  readonly type: "string";
19
+ readonly format: "absolute-path";
16
20
  readonly nullable: true;
17
- readonly default: "enums.js";
21
+ };
22
+ readonly "package-name": {
23
+ readonly type: "string";
24
+ readonly nullable: true;
25
+ };
26
+ readonly "package-version": {
27
+ readonly type: "string";
28
+ readonly nullable: true;
29
+ readonly default: "0.0.1";
18
30
  };
19
31
  };
20
32
  readonly required: readonly [];
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;CAUhB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBhB,CAAC"}
package/dist/lib.js CHANGED
@@ -3,8 +3,14 @@ export const $lib = {
3
3
  type: "object",
4
4
  additionalProperties: false,
5
5
  properties: {
6
- "output-dir": { type: "string", nullable: true },
7
6
  "output-file": { type: "string", nullable: true, default: "enums.js" },
7
+ "emitter-output-dir": {
8
+ type: "string",
9
+ format: "absolute-path",
10
+ nullable: true,
11
+ },
12
+ "package-name": { type: "string", nullable: true },
13
+ "package-version": { type: "string", nullable: true, default: "0.0.1" },
8
14
  },
9
15
  required: [],
10
16
  },
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,IAAI,GAAG;IACnB,wBAAwB,EAAE;QACzB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACX,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;SACtE;QACD,QAAQ,EAAE,EAAE;KACH;CACV,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,IAAI,GAAG;IACnB,wBAAwB,EAAE;QACzB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACX,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;YACtE,oBAAoB,EAAE;gBACrB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,IAAI;aACd;YACD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;SACvE;QACD,QAAQ,EAAE,EAAE;KACH;CACV,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kattebak/typespec-enum-emitter",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "TypeSpec emitter for JavaScript const enums",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,8 @@
21
21
  "scripts": {
22
22
  "build": "tsc",
23
23
  "watch": "tsc --watch",
24
- "test": "npm run build && npm run lint",
24
+ "test": "npm run build && npm run lint && npm run build",
25
+ "test:emit": "sp compile test/main.tsp --config test/tspconfig.yaml",
25
26
  "fix": "npx @biomejs/biome check --write",
26
27
  "lint": "npx @biomejs/biome check"
27
28
  },