@typespec/compiler 1.2.0-dev.4 → 1.2.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 (45) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/testing/fourslash.d.ts +16 -0
  3. package/dist/src/testing/fourslash.d.ts.map +1 -0
  4. package/dist/src/testing/fourslash.js +17 -0
  5. package/dist/src/testing/fourslash.js.map +1 -0
  6. package/dist/src/testing/fs.d.ts +12 -0
  7. package/dist/src/testing/fs.d.ts.map +1 -0
  8. package/dist/src/testing/fs.js +133 -0
  9. package/dist/src/testing/fs.js.map +1 -0
  10. package/dist/src/testing/index.d.ts +9 -2
  11. package/dist/src/testing/index.d.ts.map +1 -1
  12. package/dist/src/testing/index.js +7 -1
  13. package/dist/src/testing/index.js.map +1 -1
  14. package/dist/src/testing/marked-template.d.ts +96 -0
  15. package/dist/src/testing/marked-template.d.ts.map +1 -0
  16. package/dist/src/testing/marked-template.js +107 -0
  17. package/dist/src/testing/marked-template.js.map +1 -0
  18. package/dist/src/testing/rule-tester.d.ts +2 -2
  19. package/dist/src/testing/rule-tester.d.ts.map +1 -1
  20. package/dist/src/testing/rule-tester.js +2 -1
  21. package/dist/src/testing/rule-tester.js.map +1 -1
  22. package/dist/src/testing/test-compiler-host.d.ts +11 -0
  23. package/dist/src/testing/test-compiler-host.d.ts.map +1 -0
  24. package/dist/src/testing/test-compiler-host.js +138 -0
  25. package/dist/src/testing/test-compiler-host.js.map +1 -0
  26. package/dist/src/testing/test-host.d.ts +3 -9
  27. package/dist/src/testing/test-host.d.ts.map +1 -1
  28. package/dist/src/testing/test-host.js +6 -218
  29. package/dist/src/testing/test-host.js.map +1 -1
  30. package/dist/src/testing/test-server-host.d.ts +1 -1
  31. package/dist/src/testing/test-server-host.d.ts.map +1 -1
  32. package/dist/src/testing/test-server-host.js +2 -1
  33. package/dist/src/testing/test-server-host.js.map +1 -1
  34. package/dist/src/testing/tester.d.ts +12 -0
  35. package/dist/src/testing/tester.d.ts.map +1 -0
  36. package/dist/src/testing/tester.js +339 -0
  37. package/dist/src/testing/tester.js.map +1 -0
  38. package/dist/src/testing/types.d.ts +146 -3
  39. package/dist/src/testing/types.d.ts.map +1 -1
  40. package/dist/src/testing/types.js +1 -0
  41. package/dist/src/testing/types.js.map +1 -1
  42. package/dist/src/typekit/kits/literal.d.ts.map +1 -1
  43. package/dist/src/typekit/kits/literal.js +4 -25
  44. package/dist/src/typekit/kits/literal.js.map +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ import { fileURLToPath, pathToFileURL } from "url";
2
+ import { CompilerPackageRoot, NodeHost } from "../core/node-host.js";
3
+ import { createSourceFile, getSourceFileKindFromExt } from "../core/source-file.js";
4
+ import { resolveVirtualPath } from "./fs.js";
5
+ import { TestHostError } from "./types.js";
6
+ export const StandardTestLibrary = {
7
+ name: "@typespec/compiler",
8
+ packageRoot: CompilerPackageRoot,
9
+ files: [
10
+ { virtualPath: "./.tsp/dist/src/lib", realDir: "./dist/src/lib", pattern: "**" },
11
+ { virtualPath: "./.tsp/lib", realDir: "./lib", pattern: "**" },
12
+ ],
13
+ };
14
+ export function createTestCompilerHost(virtualFs, jsImports, options) {
15
+ const libDirs = [resolveVirtualPath(".tsp/lib/std")];
16
+ if (!options?.excludeTestLib) {
17
+ libDirs.push(resolveVirtualPath(".tsp/test-lib"));
18
+ }
19
+ return {
20
+ async readUrl(url) {
21
+ const contents = virtualFs.get(url);
22
+ if (contents === undefined) {
23
+ throw new TestHostError(`File ${url} not found.`, "ENOENT");
24
+ }
25
+ return createSourceFile(contents, url);
26
+ },
27
+ async readFile(path) {
28
+ path = resolveVirtualPath(path);
29
+ const contents = virtualFs.get(path);
30
+ if (contents === undefined) {
31
+ throw new TestHostError(`File ${path} not found.`, "ENOENT");
32
+ }
33
+ return createSourceFile(contents, path);
34
+ },
35
+ async writeFile(path, content) {
36
+ path = resolveVirtualPath(path);
37
+ virtualFs.set(path, content);
38
+ },
39
+ async readDir(path) {
40
+ path = resolveVirtualPath(path);
41
+ const fileFolder = [...virtualFs.keys()]
42
+ .filter((x) => x.startsWith(`${path}/`))
43
+ .map((x) => x.replace(`${path}/`, ""))
44
+ .map((x) => {
45
+ const index = x.indexOf("/");
46
+ return index !== -1 ? x.substring(0, index) : x;
47
+ });
48
+ return [...new Set(fileFolder)];
49
+ },
50
+ async rm(path, options) {
51
+ path = resolveVirtualPath(path);
52
+ if (options.recursive && !virtualFs.has(path)) {
53
+ for (const key of virtualFs.keys()) {
54
+ if (key.startsWith(`${path}/`)) {
55
+ virtualFs.delete(key);
56
+ }
57
+ }
58
+ }
59
+ else {
60
+ virtualFs.delete(path);
61
+ }
62
+ },
63
+ getLibDirs() {
64
+ return libDirs;
65
+ },
66
+ getExecutionRoot() {
67
+ return resolveVirtualPath(".tsp");
68
+ },
69
+ async getJsImport(path) {
70
+ path = resolveVirtualPath(path);
71
+ const module = jsImports.get(path);
72
+ if (module === undefined) {
73
+ throw new TestHostError(`Module ${path} not found`, "ERR_MODULE_NOT_FOUND");
74
+ }
75
+ return module;
76
+ },
77
+ async stat(path) {
78
+ path = resolveVirtualPath(path);
79
+ if (virtualFs.has(path)) {
80
+ return {
81
+ isDirectory() {
82
+ return false;
83
+ },
84
+ isFile() {
85
+ return true;
86
+ },
87
+ };
88
+ }
89
+ for (const fsPath of virtualFs.keys()) {
90
+ if (fsPath.startsWith(path) && fsPath !== path) {
91
+ return {
92
+ isDirectory() {
93
+ return true;
94
+ },
95
+ isFile() {
96
+ return false;
97
+ },
98
+ };
99
+ }
100
+ }
101
+ throw new TestHostError(`File ${path} not found`, "ENOENT");
102
+ },
103
+ // symlinks not supported in test-host
104
+ async realpath(path) {
105
+ return path;
106
+ },
107
+ getSourceFileKind: getSourceFileKindFromExt,
108
+ logSink: { log: NodeHost.logSink.log },
109
+ mkdirp: async (path) => path,
110
+ fileURLToPath,
111
+ pathToFileURL(path) {
112
+ return pathToFileURL(path).href;
113
+ },
114
+ ...options?.compilerHostOverrides,
115
+ };
116
+ }
117
+ export function addTestLib(fs) {
118
+ const testTypes = {};
119
+ // add test decorators
120
+ fs.add(".tsp/test-lib/main.tsp", 'import "./test.js";');
121
+ fs.addJsFile(".tsp/test-lib/test.js", {
122
+ namespace: "TypeSpec",
123
+ $test(_, target, nameLiteral) {
124
+ let name = nameLiteral?.value;
125
+ if (!name) {
126
+ if ("name" in target && typeof target.name === "string") {
127
+ name = target.name;
128
+ }
129
+ else {
130
+ throw new Error("Need to specify a name for test type");
131
+ }
132
+ }
133
+ testTypes[name] = target;
134
+ },
135
+ });
136
+ return testTypes;
137
+ }
138
+ //# sourceMappingURL=test-compiler-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-compiler-host.js","sourceRoot":"","sources":["../../../src/testing/test-compiler-host.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,7 @@
1
- import type { CompilerHost } from "../core/types.js";
2
- import { BasicTestRunner, TestFileSystem, TestHost, TestHostConfig, TypeSpecTestLibrary } from "./types.js";
3
- export interface TestHostOptions {
4
- caseInsensitiveFileSystem?: boolean;
5
- excludeTestLib?: boolean;
6
- compilerHostOverrides?: Partial<CompilerHost>;
7
- }
8
- export declare function createTestFileSystem(options?: TestHostOptions): Promise<TestFileSystem>;
9
- export declare const StandardTestLibrary: TypeSpecTestLibrary;
1
+ import { BasicTestRunner, TestHost, TestHostConfig } from "./types.js";
2
+ /** Use {@link createTester} */
10
3
  export declare function createTestHost(config?: TestHostConfig): Promise<TestHost>;
4
+ /** Use {@link createTester} */
11
5
  export declare function createTestRunner(host?: TestHost): Promise<BasicTestRunner>;
12
6
  export declare function findFilesFromPattern(directory: string, pattern: string): Promise<string[]>;
13
7
  //# sourceMappingURL=test-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-host.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,kBAAkB,CAAC;AAKtF,OAAO,EACL,eAAe,EACf,cAAc,EACd,QAAQ,EACR,cAAc,EAEd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/C;AA4HD,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA8E7F;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAOjC,CAAC;AAEF,wBAAsB,cAAc,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CASnF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAGhF;AAkFD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKhG"}
1
+ {"version":3,"file":"test-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-host.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAC;AAE5F,+BAA+B;AAC/B,wBAAsB,cAAc,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CASnF;AAED,+BAA+B;AAC/B,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAGhF;AAsDD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKhG"}
@@ -1,201 +1,13 @@
1
1
  import assert from "assert";
2
- import { readdir, readFile, stat } from "fs/promises";
3
2
  import { globby } from "globby";
4
- import { join } from "path";
5
- import { fileURLToPath, pathToFileURL } from "url";
6
3
  import { logDiagnostics, logVerboseTestOutput } from "../core/diagnostics.js";
7
4
  import { createLogger } from "../core/logger/logger.js";
8
- import { NodeHost } from "../core/node-host.js";
9
- import { getAnyExtensionFromPath, resolvePath } from "../core/path-utils.js";
10
5
  import { compile as compileProgram } from "../core/program.js";
11
- import { createSourceFile, getSourceFileKindFromExt } from "../index.js";
12
- import { createStringMap } from "../utils/misc.js";
13
6
  import { expectDiagnosticEmpty } from "./expect.js";
14
- import { createTestWrapper, findTestPackageRoot, resolveVirtualPath } from "./test-utils.js";
15
- import { TestHostError, } from "./types.js";
16
- function createTestCompilerHost(virtualFs, jsImports, options) {
17
- const libDirs = [resolveVirtualPath(".tsp/lib/std")];
18
- if (!options?.excludeTestLib) {
19
- libDirs.push(resolveVirtualPath(".tsp/test-lib"));
20
- }
21
- return {
22
- async readUrl(url) {
23
- const contents = virtualFs.get(url);
24
- if (contents === undefined) {
25
- throw new TestHostError(`File ${url} not found.`, "ENOENT");
26
- }
27
- return createSourceFile(contents, url);
28
- },
29
- async readFile(path) {
30
- path = resolveVirtualPath(path);
31
- const contents = virtualFs.get(path);
32
- if (contents === undefined) {
33
- throw new TestHostError(`File ${path} not found.`, "ENOENT");
34
- }
35
- return createSourceFile(contents, path);
36
- },
37
- async writeFile(path, content) {
38
- path = resolveVirtualPath(path);
39
- virtualFs.set(path, content);
40
- },
41
- async readDir(path) {
42
- path = resolveVirtualPath(path);
43
- const fileFolder = [...virtualFs.keys()]
44
- .filter((x) => x.startsWith(`${path}/`))
45
- .map((x) => x.replace(`${path}/`, ""))
46
- .map((x) => {
47
- const index = x.indexOf("/");
48
- return index !== -1 ? x.substring(0, index) : x;
49
- });
50
- return [...new Set(fileFolder)];
51
- },
52
- async rm(path, options) {
53
- path = resolveVirtualPath(path);
54
- if (options.recursive && !virtualFs.has(path)) {
55
- for (const key of virtualFs.keys()) {
56
- if (key.startsWith(`${path}/`)) {
57
- virtualFs.delete(key);
58
- }
59
- }
60
- }
61
- else {
62
- virtualFs.delete(path);
63
- }
64
- },
65
- getLibDirs() {
66
- return libDirs;
67
- },
68
- getExecutionRoot() {
69
- return resolveVirtualPath(".tsp");
70
- },
71
- async getJsImport(path) {
72
- path = resolveVirtualPath(path);
73
- const module = jsImports.get(path);
74
- if (module === undefined) {
75
- throw new TestHostError(`Module ${path} not found`, "ERR_MODULE_NOT_FOUND");
76
- }
77
- return module;
78
- },
79
- async stat(path) {
80
- path = resolveVirtualPath(path);
81
- if (virtualFs.has(path)) {
82
- return {
83
- isDirectory() {
84
- return false;
85
- },
86
- isFile() {
87
- return true;
88
- },
89
- };
90
- }
91
- for (const fsPath of virtualFs.keys()) {
92
- if (fsPath.startsWith(path) && fsPath !== path) {
93
- return {
94
- isDirectory() {
95
- return true;
96
- },
97
- isFile() {
98
- return false;
99
- },
100
- };
101
- }
102
- }
103
- throw new TestHostError(`File ${path} not found`, "ENOENT");
104
- },
105
- // symlinks not supported in test-host
106
- async realpath(path) {
107
- return path;
108
- },
109
- getSourceFileKind: getSourceFileKindFromExt,
110
- logSink: { log: NodeHost.logSink.log },
111
- mkdirp: async (path) => path,
112
- fileURLToPath,
113
- pathToFileURL(path) {
114
- return pathToFileURL(path).href;
115
- },
116
- ...options?.compilerHostOverrides,
117
- };
118
- }
119
- export async function createTestFileSystem(options) {
120
- const virtualFs = createStringMap(!!options?.caseInsensitiveFileSystem);
121
- const jsImports = createStringMap(!!options?.caseInsensitiveFileSystem);
122
- const compilerHost = createTestCompilerHost(virtualFs, jsImports, options);
123
- return {
124
- addTypeSpecFile,
125
- addJsFile,
126
- addRealTypeSpecFile,
127
- addRealJsFile,
128
- addRealFolder,
129
- addTypeSpecLibrary,
130
- compilerHost,
131
- fs: virtualFs,
132
- };
133
- function addTypeSpecFile(path, contents) {
134
- virtualFs.set(resolveVirtualPath(path), contents);
135
- }
136
- function addJsFile(path, contents) {
137
- const key = resolveVirtualPath(path);
138
- virtualFs.set(key, ""); // don't need contents
139
- jsImports.set(key, new Promise((r) => r(contents)));
140
- }
141
- async function addRealTypeSpecFile(path, existingPath) {
142
- virtualFs.set(resolveVirtualPath(path), await readFile(existingPath, "utf8"));
143
- }
144
- async function addRealFolder(folder, existingFolder) {
145
- const entries = await readdir(existingFolder);
146
- for (const entry of entries) {
147
- const existingPath = join(existingFolder, entry);
148
- const virtualPath = join(folder, entry);
149
- const s = await stat(existingPath);
150
- if (s.isFile()) {
151
- if (existingPath.endsWith(".js")) {
152
- await addRealJsFile(virtualPath, existingPath);
153
- }
154
- else {
155
- await addRealTypeSpecFile(virtualPath, existingPath);
156
- }
157
- }
158
- if (s.isDirectory()) {
159
- await addRealFolder(virtualPath, existingPath);
160
- }
161
- }
162
- }
163
- async function addRealJsFile(path, existingPath) {
164
- const key = resolveVirtualPath(path);
165
- const exports = await import(pathToFileURL(existingPath).href);
166
- virtualFs.set(key, "");
167
- jsImports.set(key, exports);
168
- }
169
- async function addTypeSpecLibrary(testLibrary) {
170
- for (const { realDir, pattern, virtualPath } of testLibrary.files) {
171
- const lookupDir = resolvePath(testLibrary.packageRoot, realDir);
172
- const entries = await findFilesFromPattern(lookupDir, pattern);
173
- for (const entry of entries) {
174
- const fileRealPath = resolvePath(lookupDir, entry);
175
- const fileVirtualPath = resolveVirtualPath(virtualPath, entry);
176
- switch (getAnyExtensionFromPath(fileRealPath)) {
177
- case ".tsp":
178
- case ".json":
179
- const contents = await readFile(fileRealPath, "utf-8");
180
- addTypeSpecFile(fileVirtualPath, contents);
181
- break;
182
- case ".js":
183
- case ".mjs":
184
- await addRealJsFile(fileVirtualPath, fileRealPath);
185
- break;
186
- }
187
- }
188
- }
189
- }
190
- }
191
- export const StandardTestLibrary = {
192
- name: "@typespec/compiler",
193
- packageRoot: await findTestPackageRoot(import.meta.url),
194
- files: [
195
- { virtualPath: "./.tsp/dist/src/lib", realDir: "./dist/src/lib", pattern: "**" },
196
- { virtualPath: "./.tsp/lib", realDir: "./lib", pattern: "**" },
197
- ],
198
- };
7
+ import { createTestFileSystem } from "./fs.js";
8
+ import { addTestLib, StandardTestLibrary } from "./test-compiler-host.js";
9
+ import { createTestWrapper, resolveVirtualPath } from "./test-utils.js";
10
+ /** Use {@link createTester} */
199
11
  export async function createTestHost(config = {}) {
200
12
  const testHost = await createTestHostInternal();
201
13
  await testHost.addTypeSpecLibrary(StandardTestLibrary);
@@ -206,6 +18,7 @@ export async function createTestHost(config = {}) {
206
18
  }
207
19
  return testHost;
208
20
  }
21
+ /** Use {@link createTester} */
209
22
  export async function createTestRunner(host) {
210
23
  const testHost = host ?? (await createTestHost());
211
24
  return createTestWrapper(testHost);
@@ -213,33 +26,8 @@ export async function createTestRunner(host) {
213
26
  async function createTestHostInternal() {
214
27
  let program;
215
28
  const libraries = [];
216
- const testTypes = {};
217
29
  const fileSystem = await createTestFileSystem();
218
- // add test decorators
219
- fileSystem.addTypeSpecFile(".tsp/test-lib/main.tsp", 'import "./test.js";');
220
- fileSystem.addJsFile(".tsp/test-lib/test.js", {
221
- namespace: "TypeSpec",
222
- $test(_, target, nameLiteral) {
223
- let name = nameLiteral?.value;
224
- if (!name) {
225
- if (target.kind === "Model" ||
226
- target.kind === "Scalar" ||
227
- target.kind === "Namespace" ||
228
- target.kind === "Enum" ||
229
- target.kind === "Operation" ||
230
- target.kind === "ModelProperty" ||
231
- target.kind === "EnumMember" ||
232
- target.kind === "Interface" ||
233
- (target.kind === "Union" && !target.expression)) {
234
- name = target.name;
235
- }
236
- else {
237
- throw new Error("Need to specify a name for test type");
238
- }
239
- }
240
- testTypes[name] = target;
241
- },
242
- });
30
+ const testTypes = addTestLib(fileSystem);
243
31
  return {
244
32
  ...fileSystem,
245
33
  addTypeSpecLibrary: async (lib) => {
@@ -1 +1 @@
1
- {"version":3,"file":"test-host.js","sourceRoot":"","sources":["../../../src/testing/test-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-host.js","sourceRoot":"","sources":["../../../src/testing/test-host.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { TextDocument } from "vscode-languageserver-textdocument";
2
2
  import { Diagnostic } from "vscode-languageserver/node.js";
3
3
  import { IdentifierNode } from "../core/types.js";
4
4
  import { Server, ServerHost } from "../server/index.js";
5
- import { TestHostOptions } from "./test-host.js";
5
+ import { TestHostOptions } from "./test-compiler-host.js";
6
6
  import { TestFileSystem } from "./types.js";
7
7
  export interface TestServerHost extends ServerHost, TestFileSystem {
8
8
  server: Server;
@@ -1 +1 @@
1
- {"version":3,"file":"test-server-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAkB,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAc,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAuB,eAAe,EAAwB,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,2BAmG/F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAanE"}
1
+ {"version":3,"file":"test-server-host.d.ts","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAkB,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAc,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAuB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,2BAmG/F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAanE"}
@@ -7,7 +7,8 @@ import { SyntaxKind } from "../core/types.js";
7
7
  import { createClientConfigProvider } from "../server/client-config-provider.js";
8
8
  import { createServer } from "../server/index.js";
9
9
  import { createStringMap } from "../utils/misc.js";
10
- import { StandardTestLibrary, createTestFileSystem } from "./test-host.js";
10
+ import { createTestFileSystem } from "./fs.js";
11
+ import { StandardTestLibrary } from "./test-compiler-host.js";
11
12
  import { resolveVirtualPath } from "./test-utils.js";
12
13
  export async function createTestServerHost(options) {
13
14
  const logMessages = [];
@@ -1 +1 @@
1
- {"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Diagnostic } from "../core/types.js";
2
+ import type { Tester } from "./types.js";
3
+ export interface TesterOptions {
4
+ libraries: string[];
5
+ }
6
+ export declare function createTester(base: string, options: TesterOptions): Tester;
7
+ export interface Compilable<A extends unknown[], R> {
8
+ compileAndDiagnose(...args: A): Promise<[R, readonly Diagnostic[]]>;
9
+ compile(...args: A): Promise<R>;
10
+ diagnose(...args: A): Promise<readonly Diagnostic[]>;
11
+ }
12
+ //# sourceMappingURL=tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tester.d.ts","sourceRoot":"","sources":["../../../src/testing/tester.ts"],"names":[],"mappings":"AAUA,OAAO,EAAgB,UAAU,EAAgC,MAAM,kBAAkB,CAAC;AAQ1F,OAAO,KAAK,EAQV,MAAM,EAGP,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAKzE;AAwZD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC;IAChD,kBAAkB,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;CACtD"}