@typespec/compiler 0.53.0-dev.3 → 0.53.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/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "0.53.0-dev.3",
3
- "commit": "fd4fdfb9af3b634742a477cd543cfeedbcd6c5b3"
2
+ "version": "0.53.0",
3
+ "commit": "ad74773b53e03700bfbb542467b67382308a77bb"
4
4
  };
@@ -1,9 +1,12 @@
1
1
  import { Placeholder } from "../placeholder.js";
2
2
  import { EmitEntity } from "../types.js";
3
+ declare const placeholderSym: unique symbol;
3
4
  export interface ObjectBuilder<T> extends Record<string, any> {
4
5
  }
5
6
  export declare class ObjectBuilder<T> {
6
- constructor(initializer?: Record<string, unknown> | Placeholder<Record<string, unknown>>);
7
+ private readonly [placeholderSym];
8
+ constructor(initializer?: Record<string, unknown> | Placeholder<Record<string, unknown>> | ObjectBuilder<T>);
7
9
  set(key: string, v: EmitEntity<T> | Placeholder<T> | T): void;
8
10
  }
11
+ export {};
9
12
  //# sourceMappingURL=object-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-builder.d.ts","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAIxD,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAAG;AAEhE,qBAAa,aAAa,CAAC,CAAC;gBACd,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAc5F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;CAqBvD"}
1
+ {"version":3,"file":"object-builder.d.ts","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAExD,QAAA,MAAM,cAAc,eAAwB,CAAC;AAG7C,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAAG;AAEhE,qBAAa,aAAa,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAA+B;gBAG9D,WAAW,GACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACpC,aAAa,CAAC,CAAC,CAAM;IA0B3B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;CAqBvD"}
@@ -1,20 +1,31 @@
1
1
  import { compilerAssert } from "../../core/index.js";
2
2
  import { Placeholder } from "../placeholder.js";
3
3
  import { EmitterResult } from "../types.js";
4
+ const placeholderSym = Symbol("placeholder");
4
5
  // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
5
6
  export class ObjectBuilder {
6
7
  constructor(initializer = {}) {
7
- if (initializer instanceof Placeholder) {
8
- initializer.onValue((v) => {
9
- for (const [key, value] of Object.entries(v)) {
10
- this.set(key, value);
11
- }
12
- });
13
- }
14
- else {
15
- for (const [key, value] of Object.entries(initializer)) {
8
+ const copyProperties = (source) => {
9
+ for (const [key, value] of Object.entries(source)) {
16
10
  this.set(key, value);
17
11
  }
12
+ };
13
+ const registerPlaceholder = (placeholder) => {
14
+ placeholder.onValue(copyProperties);
15
+ };
16
+ if (initializer instanceof ObjectBuilder) {
17
+ if (initializer[placeholderSym]) {
18
+ this[placeholderSym] = initializer[placeholderSym];
19
+ registerPlaceholder(initializer[placeholderSym]);
20
+ }
21
+ copyProperties(initializer);
22
+ }
23
+ else if (initializer instanceof Placeholder) {
24
+ this[placeholderSym] = initializer;
25
+ registerPlaceholder(initializer);
26
+ }
27
+ else {
28
+ copyProperties(initializer);
18
29
  }
19
30
  }
20
31
  set(key, v) {
@@ -1 +1 @@
1
- {"version":3,"file":"object-builder.js","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAKxD,4EAA4E;AAC5E,MAAM,OAAO,aAAa;IACxB,YAAY,cAA8E,EAAE;QAC1F,IAAI,WAAW,YAAY,WAAW,EAAE,CAAC;YACvC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAY,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAY,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,CAAqC;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;YAC/B,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,mCAAmC,CAAC,CAAC;YAE3E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;gBACtB,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"object-builder.js","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAI7C,4EAA4E;AAC5E,MAAM,OAAO,aAAa;IAGxB,YACE,cAGuB,EAAE;QAEzB,MAAM,cAAc,GAAG,CAAC,MAA+B,EAAE,EAAE;YACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAY,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,WAAiD,EAAE,EAAE;YAChF,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,IAAI,WAAW,YAAY,aAAa,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;gBACnD,mBAAmB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,WAAW,YAAY,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;YAEnC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,CAAqC;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;YAC/B,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,mCAAmC,CAAC,CAAC;YAE3E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;gBACtB,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "0.53.0-dev.3",
3
+ "version": "0.53.0",
4
4
  "description": "TypeSpec Compiler Preview",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",
@@ -78,8 +78,8 @@
78
78
  "@types/prompts": "~2.4.9",
79
79
  "@types/semver": "^7.5.6",
80
80
  "@types/yargs": "~17.0.32",
81
- "@typespec/eslint-config-typespec": "~0.52.0 || >=0.53.0-dev <0.53.0",
82
- "@typespec/internal-build-utils": "~0.52.0 || >=0.53.0-dev <0.53.0",
81
+ "@typespec/eslint-config-typespec": "~0.53.0",
82
+ "@typespec/internal-build-utils": "~0.53.0",
83
83
  "eslint": "^8.55.0",
84
84
  "grammarkdown": "~3.3.2",
85
85
  "vitest": "^1.2.0",
@@ -88,7 +88,7 @@
88
88
  "c8": "~8.0.1",
89
89
  "source-map-support": "~0.5.21",
90
90
  "rimraf": "~5.0.1",
91
- "tmlanguage-generator": "~0.5.2 || >=0.6.0-dev <0.6.0",
91
+ "tmlanguage-generator": "~0.5.2",
92
92
  "typescript": "~5.3.3",
93
93
  "vscode-oniguruma": "~2.0.1",
94
94
  "vscode-textmate": "~9.0.0",
@@ -96,7 +96,6 @@
96
96
  "@types/sinon": "~10.0.20",
97
97
  "ts-node": "~10.9.1"
98
98
  },
99
- "peerDependencies": {},
100
99
  "scripts": {
101
100
  "clean": "rimraf ./dist ./temp",
102
101
  "build:init-templates-index": "node --no-warnings --experimental-specifier-resolution=node --loader ts-node/esm ./.scripts/build-init-templates.ts",
@@ -108,6 +107,7 @@
108
107
  "dogfood": "node scripts/dogfood.js",
109
108
  "test": "vitest run",
110
109
  "test:ui": "vitest --ui",
110
+ "test:watch": "vitest -w",
111
111
  "test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism",
112
112
  "e2e:disabled": "vitest run --config ./vitest.config.e2e.ts",
113
113
  "gen-manifest": "node scripts/generate-manifest.js",
@@ -3,12 +3,12 @@
3
3
  "title": "Empty project",
4
4
  "description": "Create an empty project.",
5
5
  "libraries": [],
6
- "compilerVersion": "0.52.0"
6
+ "compilerVersion": "0.53.0"
7
7
  },
8
8
  "rest": {
9
9
  "title": "Generic REST API",
10
10
  "description": "Create a project representing a generic REST API",
11
- "compilerVersion": "0.52.0",
11
+ "compilerVersion": "0.53.0",
12
12
  "libraries": [
13
13
  "@typespec/http",
14
14
  "@typespec/rest",
@@ -23,7 +23,7 @@
23
23
  "library-ts": {
24
24
  "title": "TypeSpec Library (With TypeScript)",
25
25
  "description": "Create a new package to add decorators or linters to typespec.",
26
- "compilerVersion": "0.52.0",
26
+ "compilerVersion": "0.53.0",
27
27
  "libraries": [],
28
28
  "files": [
29
29
  {
@@ -99,7 +99,7 @@
99
99
  "emitter-ts": {
100
100
  "title": "TypeSpec Emitter (With TypeScript)",
101
101
  "description": "Create a new package that will be emitting typespec",
102
- "compilerVersion": "0.52.0",
102
+ "compilerVersion": "0.53.0",
103
103
  "libraries": [],
104
104
  "files": [
105
105
  {