@typespec/compiler 1.10.0-dev.3 → 1.10.0-dev.6

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.
Files changed (73) hide show
  1. package/dist/generated-defs/TypeSpec.Prototypes.ts-test.js +1 -1
  2. package/dist/generated-defs/TypeSpec.Prototypes.ts-test.js.map +1 -1
  3. package/dist/generated-defs/TypeSpec.ts-test.js +1 -1
  4. package/dist/generated-defs/TypeSpec.ts-test.js.map +1 -1
  5. package/dist/manifest.js +2 -2
  6. package/dist/src/core/binder.d.ts.map +1 -1
  7. package/dist/src/core/binder.js +10 -8
  8. package/dist/src/core/binder.js.map +1 -1
  9. package/dist/src/core/checker.d.ts.map +1 -1
  10. package/dist/src/core/checker.js +485 -46
  11. package/dist/src/core/checker.js.map +1 -1
  12. package/dist/src/core/helpers/type-name-utils.d.ts.map +1 -1
  13. package/dist/src/core/helpers/type-name-utils.js +13 -0
  14. package/dist/src/core/helpers/type-name-utils.js.map +1 -1
  15. package/dist/src/core/js-marshaller.d.ts +4 -2
  16. package/dist/src/core/js-marshaller.d.ts.map +1 -1
  17. package/dist/src/core/js-marshaller.js +96 -6
  18. package/dist/src/core/js-marshaller.js.map +1 -1
  19. package/dist/src/core/messages.d.ts +101 -12
  20. package/dist/src/core/messages.d.ts.map +1 -1
  21. package/dist/src/core/messages.js +27 -2
  22. package/dist/src/core/messages.js.map +1 -1
  23. package/dist/src/core/name-resolver.d.ts.map +1 -1
  24. package/dist/src/core/name-resolver.js +30 -0
  25. package/dist/src/core/name-resolver.js.map +1 -1
  26. package/dist/src/core/parser.d.ts.map +1 -1
  27. package/dist/src/core/parser.js +34 -6
  28. package/dist/src/core/parser.js.map +1 -1
  29. package/dist/src/core/scanner.d.ts +5 -5
  30. package/dist/src/core/scanner.d.ts.map +1 -1
  31. package/dist/src/core/scanner.js +8 -8
  32. package/dist/src/core/scanner.js.map +1 -1
  33. package/dist/src/core/semantic-walker.d.ts +3 -3
  34. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  35. package/dist/src/core/semantic-walker.js +63 -44
  36. package/dist/src/core/semantic-walker.js.map +1 -1
  37. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  38. package/dist/src/core/type-relation-checker.js +157 -10
  39. package/dist/src/core/type-relation-checker.js.map +1 -1
  40. package/dist/src/core/types.d.ts +187 -23
  41. package/dist/src/core/types.d.ts.map +1 -1
  42. package/dist/src/core/types.js +1 -0
  43. package/dist/src/core/types.js.map +1 -1
  44. package/dist/src/experimental/typekit/index.d.ts.map +1 -1
  45. package/dist/src/experimental/typekit/index.js.map +1 -1
  46. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  47. package/dist/src/formatter/print/printer.js +13 -0
  48. package/dist/src/formatter/print/printer.js.map +1 -1
  49. package/dist/src/index.d.ts +3 -2
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +2 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/lib/examples.d.ts +10 -3
  54. package/dist/src/lib/examples.d.ts.map +1 -1
  55. package/dist/src/lib/examples.js +22 -7
  56. package/dist/src/lib/examples.js.map +1 -1
  57. package/dist/src/server/type-signature.js +19 -0
  58. package/dist/src/server/type-signature.js.map +1 -1
  59. package/package.json +1 -1
  60. package/templates/__snapshots__/emitter-ts/eslint.config.js +10 -1
  61. package/templates/__snapshots__/emitter-ts/package.json +1 -2
  62. package/templates/__snapshots__/emitter-ts/test/test-host.ts +7 -34
  63. package/templates/__snapshots__/library-ts/eslint.config.js +10 -1
  64. package/templates/__snapshots__/library-ts/package.json +1 -2
  65. package/templates/__snapshots__/library-ts/test/decorators.test.ts +18 -23
  66. package/templates/__snapshots__/library-ts/test/test-host.ts +5 -15
  67. package/templates/emitter-ts/eslint.config.js +10 -1
  68. package/templates/emitter-ts/package.json +1 -2
  69. package/templates/emitter-ts/test/test-host.ts.mu +7 -34
  70. package/templates/library-ts/eslint.config.js +10 -1
  71. package/templates/library-ts/package.json +1 -2
  72. package/templates/library-ts/test/decorators.test.ts.mu +18 -23
  73. package/templates/library-ts/test/test-host.ts.mu +5 -15
@@ -19,8 +19,7 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "latest",
22
- "@typescript-eslint/eslint-plugin": "^8.15.0",
23
- "@typescript-eslint/parser": "^8.15.0",
22
+ "typescript-eslint": "^8.49.0",
24
23
  "@typespec/compiler": "latest",
25
24
  "@typespec/library-linter": "latest",
26
25
  "eslint": "^9.15.0",
@@ -1,29 +1,25 @@
1
1
  import { strictEqual } from "node:assert";
2
- import { describe, it, beforeEach } from "node:test";
3
- import type { Operation } from "@typespec/compiler";
4
- import { BasicTestRunner, expectDiagnostics, extractCursor } from "@typespec/compiler/testing";
2
+ import { describe, it } from "node:test";
3
+ import type { Operation, Program } from "@typespec/compiler";
4
+ import { expectDiagnostics } from "@typespec/compiler/testing";
5
5
  import { getAlternateName } from "../src/decorators.js";
6
- import { create{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestRunner } from "./test-host.js";
6
+ import { Tester } from "./test-host.js";
7
7
 
8
8
  describe("decorators", () => {
9
- let runner: BasicTestRunner;
10
-
11
- beforeEach(async () => {
12
- runner = await create{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestRunner();
13
- })
14
-
15
9
  describe("@alternateName", () => {
16
10
  it("set alternate name on operation", async () => {
17
- const { test } = (await runner.compile(
18
- `@alternateName("bar") @test op test(): void;`
19
- )) as { test: Operation };
20
- strictEqual(getAlternateName(runner.program, test), "bar");
11
+ const { test, program } = (await Tester.compile(`
12
+ using {{#casing.pascalCase}}{{name}}{{/casing.pascalCase}};
13
+ @alternateName("bar") @test op test(): void;
14
+ `)) as unknown as { test: Operation; program: Program };
15
+ strictEqual(getAlternateName(program, test), "bar");
21
16
  });
22
17
 
23
18
  it("emit diagnostic if not used on an operation", async () => {
24
- const diagnostics = await runner.diagnose(
25
- `@alternateName("bar") model Test {}`
26
- );
19
+ const diagnostics = await Tester.diagnose(`
20
+ using {{#casing.pascalCase}}{{name}}{{/casing.pascalCase}};
21
+ @alternateName("bar") model Test {}
22
+ `);
27
23
  expectDiagnostics(diagnostics, {
28
24
  severity: "error",
29
25
  code: "decorator-wrong-target",
@@ -33,15 +29,14 @@ describe("decorators", () => {
33
29
 
34
30
 
35
31
  it("emit diagnostic if using banned name", async () => {
36
- const {pos, source} = extractCursor(`@alternateName(┆"banned") op test(): void;`)
37
- const diagnostics = await runner.diagnose(
38
- source
39
- );
32
+ const diagnostics = await Tester.diagnose(`
33
+ using {{#casing.pascalCase}}{{name}}{{/casing.pascalCase}};
34
+ @alternateName("banned") op test(): void;
35
+ `);
40
36
  expectDiagnostics(diagnostics, {
41
37
  severity: "error",
42
38
  code: "{{name}}/banned-alternate-name",
43
- message: `Banned alternate name "banned".`,
44
- pos: pos + runner.autoCodeOffset
39
+ message: `Banned alternate name "banned".`
45
40
  })
46
41
  });
47
42
  });
@@ -1,17 +1,7 @@
1
- import { createTestHost, createTestWrapper } from "@typespec/compiler/testing";
2
- import { {{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestLibrary } from "../src/testing/index.js";
1
+ import { resolvePath } from "@typespec/compiler";
2
+ import { createTester } from "@typespec/compiler/testing";
3
3
 
4
- export async function create{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestHost() {
5
- return createTestHost({
6
- libraries: [{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestLibrary],
7
- });
8
- }
9
-
10
- export async function create{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestRunner() {
11
- const host = await create{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}TestHost();
12
-
13
- return createTestWrapper(host, {
14
- autoUsings: ["{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}"]
15
- });
16
- }
4
+ export const Tester = createTester(resolvePath(import.meta.dirname, "../.."), {
5
+ libraries: ["{{name}}"],
6
+ }).import("{{name}}");
17
7