xbintsc 0.3.16 → 0.3.25

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 (57) hide show
  1. package/dist/src/driver/bundler/graph.d.ts +2 -1
  2. package/dist/src/driver/bundler/graph.js +18 -3
  3. package/dist/src/driver/bundler/graph.js.map +1 -1
  4. package/dist/src/driver/bundler/merge.d.ts +2 -1
  5. package/dist/src/driver/bundler/merge.js +2 -2
  6. package/dist/src/driver/bundler/merge.js.map +1 -1
  7. package/dist/src/driver/compiler.js +2 -2
  8. package/dist/src/driver/compiler.js.map +1 -1
  9. package/dist/src/extensions/gui/html.d.ts +25 -0
  10. package/dist/src/extensions/gui/html.js +203 -0
  11. package/dist/src/extensions/gui/html.js.map +1 -0
  12. package/dist/src/extensions/gui/index.js +11 -0
  13. package/dist/src/extensions/gui/index.js.map +1 -1
  14. package/dist/src/extensions/registry.d.ts +29 -0
  15. package/dist/src/extensions/registry.js +14 -0
  16. package/dist/src/extensions/registry.js.map +1 -1
  17. package/dist/src/index.d.ts +1 -1
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/lexer/scanner/identifiers.js +4 -12
  20. package/dist/src/lexer/scanner/identifiers.js.map +1 -1
  21. package/dist/tests/driver/bundler-resolve.test.d.ts +1 -0
  22. package/dist/tests/driver/bundler-resolve.test.js +230 -0
  23. package/dist/tests/driver/bundler-resolve.test.js.map +1 -0
  24. package/dist/tests/driver/modules.test.js +68 -0
  25. package/dist/tests/driver/modules.test.js.map +1 -1
  26. package/dist/tests/e2e/gui.test.js +210 -1
  27. package/dist/tests/e2e/gui.test.js.map +1 -1
  28. package/dist/tests/extensions/gui-index.test.d.ts +1 -0
  29. package/dist/tests/extensions/gui-index.test.js +49 -0
  30. package/dist/tests/extensions/gui-index.test.js.map +1 -0
  31. package/dist/tests/extensions/gui.test.d.ts +1 -0
  32. package/dist/tests/extensions/gui.test.js +177 -0
  33. package/dist/tests/extensions/gui.test.js.map +1 -0
  34. package/dist/tests/extensions/registry.test.js +36 -0
  35. package/dist/tests/extensions/registry.test.js.map +1 -1
  36. package/dist/tests/public-api.test.d.ts +1 -0
  37. package/dist/tests/public-api.test.js +31 -0
  38. package/dist/tests/public-api.test.js.map +1 -0
  39. package/package.json +1 -1
  40. package/runtime/ext_gui/document.cpp +90 -0
  41. package/runtime/ext_gui/document.h +23 -0
  42. package/runtime/ext_gui/dom.cpp +36 -0
  43. package/runtime/ext_gui/dom.h +7 -0
  44. package/runtime/ext_gui/dom_api.cpp +1247 -0
  45. package/runtime/ext_gui/dom_api.h +12 -0
  46. package/runtime/ext_gui/gui.cpp +49 -3
  47. package/runtime/ext_gui/gui_engine.h +54 -0
  48. package/runtime/ext_gui/script.cpp +63 -0
  49. package/runtime/ext_gui/window.cpp +60 -0
  50. package/src/driver/bundler/graph.ts +21 -2
  51. package/src/driver/bundler/merge.ts +3 -1
  52. package/src/driver/compiler.ts +2 -2
  53. package/src/extensions/gui/html.ts +236 -0
  54. package/src/extensions/gui/index.ts +11 -0
  55. package/src/extensions/registry.ts +39 -0
  56. package/src/index.ts +1 -1
  57. package/src/lexer/scanner/identifiers.ts +4 -11
@@ -1,25 +1,17 @@
1
1
  /**
2
2
  * Identifier scanning (identifiers, keywords and private `#name`s).
3
3
  */
4
- import { DiagnosticCode } from "../../diagnostics/diagnostic.js";
5
4
  import { KEYWORDS, TokenKind } from "../token.js";
6
- import { Char, isIdentifierPart } from "../char.js";
5
+ import { isIdentifierPart } from "../char.js";
7
6
  export const identifierMethods = {
8
7
  scanIdentifier(start, precededByLineBreak) {
9
8
  this.pos++;
9
+ /* `\` is itself an identifier part, so unicode escapes such as `a\u0041b`
10
+ * are kept verbatim in the identifier text (see the lexer tests). */
10
11
  while (this.pos < this.text.length) {
11
- const ch = this.text.charCodeAt(this.pos);
12
- if (isIdentifierPart(ch)) {
12
+ if (isIdentifierPart(this.text.charCodeAt(this.pos))) {
13
13
  this.pos++;
14
14
  }
15
- else if (ch === Char.Backslash && this.text.charCodeAt(this.pos + 1) === Char.LowerU) {
16
- this.pos += 2;
17
- const hex = this.text.slice(this.pos, this.pos + 4);
18
- this.pos += 4;
19
- if (!/^[0-9a-fA-F]{4}$/.test(hex)) {
20
- this.error(DiagnosticCode.InvalidEscape, "Invalid unicode escape in identifier", this.pos - 4, this.pos);
21
- }
22
- }
23
15
  else {
24
16
  break;
25
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../../../src/lexer/scanner/identifiers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAS,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAOpD,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,cAAc,CAAgB,KAAa,EAAE,mBAA4B;QACvE,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvF,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,sCAAsC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3G,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../../../src/lexer/scanner/identifiers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAS,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAO9C,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,cAAc,CAAgB,KAAa,EAAE,mBAA4B;QACvE,IAAI,CAAC,GAAG,EAAE,CAAC;QACX;6EACqE;QACrE,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,230 @@
1
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { classifyDependency } from "../../src/driver/bundler/resolve.js";
6
+ const directories = [];
7
+ const NONE = new Set();
8
+ afterEach(() => {
9
+ for (const directory of directories.splice(0))
10
+ rmSync(directory, { recursive: true, force: true });
11
+ });
12
+ /** Create a throwaway directory tree from `{ relativePath: contents }`. */
13
+ function writeFiles(files) {
14
+ const directory = mkdtempSync(join(tmpdir(), "xbintsc-resolve-"));
15
+ directories.push(directory);
16
+ for (const [name, content] of Object.entries(files)) {
17
+ const path = join(directory, name);
18
+ mkdirSync(dirname(path), { recursive: true });
19
+ writeFileSync(path, content);
20
+ }
21
+ return directory;
22
+ }
23
+ function resolveFile(directory, specifier) {
24
+ return classifyDependency(directory, specifier, NONE);
25
+ }
26
+ describe("classifyDependency", () => {
27
+ it("resolves relative, extensionless and directory-index files", () => {
28
+ const directory = writeFiles({ "util.ts": "", "other.tsx": "", "dir/index.ts": "" });
29
+ expect(resolveFile(directory, "./util")).toEqual({ kind: "file", path: join(directory, "util.ts") });
30
+ expect(resolveFile(directory, "./other")).toEqual({ kind: "file", path: join(directory, "other.tsx") });
31
+ expect(resolveFile(directory, "./dir")).toEqual({ kind: "file", path: join(directory, "dir", "index.ts") });
32
+ });
33
+ it("maps .js-family specifiers onto TypeScript sources", () => {
34
+ const directory = writeFiles({ "foo.ts": "", "comp.tsx": "", "mod.mts": "", "common.cts": "" });
35
+ expect(resolveFile(directory, "./foo.js")).toEqual({ kind: "file", path: join(directory, "foo.ts") });
36
+ expect(resolveFile(directory, "./comp.jsx")).toEqual({ kind: "file", path: join(directory, "comp.tsx") });
37
+ expect(resolveFile(directory, "./mod.mjs")).toEqual({ kind: "file", path: join(directory, "mod.mts") });
38
+ expect(resolveFile(directory, "./common.cjs")).toEqual({ kind: "file", path: join(directory, "common.cts") });
39
+ });
40
+ it("uses a directory package.json `main`", () => {
41
+ const directory = writeFiles({
42
+ "pkg/package.json": JSON.stringify({ main: "lib/entry.js" }),
43
+ "pkg/lib/entry.ts": "",
44
+ });
45
+ expect(resolveFile(directory, "./pkg")).toEqual({ kind: "file", path: join(directory, "pkg", "lib", "entry.ts") });
46
+ });
47
+ it("treats node: and explicit externals as external", () => {
48
+ const directory = writeFiles({});
49
+ expect(classifyDependency(directory, "node:fs", NONE)).toEqual({ kind: "external" });
50
+ expect(classifyDependency(directory, "react", new Set(["react"]))).toEqual({ kind: "external" });
51
+ });
52
+ it("reports a missing relative path and an unresolved bare specifier", () => {
53
+ const directory = writeFiles({});
54
+ expect(resolveFile(directory, "./nope")).toEqual({ kind: "missing" });
55
+ expect(resolveFile(directory, "nonexistent-pkg")).toEqual({ kind: "external" });
56
+ });
57
+ it("resolves a package with a string exports field", () => {
58
+ const directory = writeFiles({
59
+ "node_modules/pkg/package.json": JSON.stringify({ exports: "./src/index.ts" }),
60
+ "node_modules/pkg/src/index.ts": "",
61
+ });
62
+ expect(resolveFile(directory, "pkg")).toEqual({
63
+ kind: "file",
64
+ path: join(directory, "node_modules", "pkg", "src", "index.ts"),
65
+ });
66
+ });
67
+ it("resolves a conditional exports map without subpath keys", () => {
68
+ const directory = writeFiles({
69
+ "node_modules/pkg/package.json": JSON.stringify({
70
+ exports: { import: "./esm/index.ts", require: "./cjs/index.ts" },
71
+ }),
72
+ "node_modules/pkg/esm/index.ts": "",
73
+ "node_modules/pkg/cjs/index.ts": "",
74
+ });
75
+ expect(resolveFile(directory, "pkg")).toEqual({
76
+ kind: "file",
77
+ path: join(directory, "node_modules", "pkg", "esm", "index.ts"),
78
+ });
79
+ });
80
+ it("resolves root and explicit subpath exports", () => {
81
+ const directory = writeFiles({
82
+ "node_modules/pkg/package.json": JSON.stringify({ exports: { ".": "./main.ts", "./sub": "./sub.ts" } }),
83
+ "node_modules/pkg/main.ts": "",
84
+ "node_modules/pkg/sub.ts": "",
85
+ });
86
+ expect(resolveFile(directory, "pkg")).toEqual({
87
+ kind: "file",
88
+ path: join(directory, "node_modules", "pkg", "main.ts"),
89
+ });
90
+ expect(resolveFile(directory, "pkg/sub")).toEqual({
91
+ kind: "file",
92
+ path: join(directory, "node_modules", "pkg", "sub.ts"),
93
+ });
94
+ });
95
+ it("resolves wildcard exports with string, array and object targets", () => {
96
+ const directory = writeFiles({
97
+ "node_modules/string-pkg/package.json": JSON.stringify({ exports: { "./*": "./dist/*.js" } }),
98
+ "node_modules/string-pkg/dist/a.ts": "",
99
+ "node_modules/array-pkg/package.json": JSON.stringify({ exports: { "./*": ["./dist/*.mjs", "./dist/*.js"] } }),
100
+ "node_modules/array-pkg/dist/b.mts": "",
101
+ "node_modules/object-pkg/package.json": JSON.stringify({
102
+ exports: { "./*": { import: "./dist/*.ts", default: "./dist/*.js" } },
103
+ }),
104
+ "node_modules/object-pkg/dist/c.ts": "",
105
+ });
106
+ expect(resolveFile(directory, "string-pkg/a")).toEqual({
107
+ kind: "file",
108
+ path: join(directory, "node_modules", "string-pkg", "dist", "a.ts"),
109
+ });
110
+ expect(resolveFile(directory, "array-pkg/b")).toEqual({
111
+ kind: "file",
112
+ path: join(directory, "node_modules", "array-pkg", "dist", "b.mts"),
113
+ });
114
+ expect(resolveFile(directory, "object-pkg/c")).toEqual({
115
+ kind: "file",
116
+ path: join(directory, "node_modules", "object-pkg", "dist", "c.ts"),
117
+ });
118
+ });
119
+ it("falls back to `module`, `main` and `index` entries", () => {
120
+ const directory = writeFiles({
121
+ "node_modules/module-pkg/package.json": JSON.stringify({ module: "./esm.ts" }),
122
+ "node_modules/module-pkg/esm.ts": "",
123
+ "node_modules/main-pkg/package.json": JSON.stringify({ main: "./main.ts" }),
124
+ "node_modules/main-pkg/main.ts": "",
125
+ "node_modules/index-pkg/package.json": JSON.stringify({}),
126
+ "node_modules/index-pkg/index.ts": "",
127
+ });
128
+ expect(resolveFile(directory, "module-pkg")).toEqual({
129
+ kind: "file",
130
+ path: join(directory, "node_modules", "module-pkg", "esm.ts"),
131
+ });
132
+ expect(resolveFile(directory, "main-pkg")).toEqual({
133
+ kind: "file",
134
+ path: join(directory, "node_modules", "main-pkg", "main.ts"),
135
+ });
136
+ expect(resolveFile(directory, "index-pkg")).toEqual({
137
+ kind: "file",
138
+ path: join(directory, "node_modules", "index-pkg", "index.ts"),
139
+ });
140
+ });
141
+ it("falls back when an exports target does not exist", () => {
142
+ const directory = writeFiles({
143
+ "node_modules/pkg/package.json": JSON.stringify({ exports: ["./missing.ts"], main: "./real.ts" }),
144
+ "node_modules/pkg/real.ts": "",
145
+ });
146
+ expect(resolveFile(directory, "pkg")).toEqual({
147
+ kind: "file",
148
+ path: join(directory, "node_modules", "pkg", "real.ts"),
149
+ });
150
+ });
151
+ it("ignores malformed, non-object and empty exports values", () => {
152
+ const directory = writeFiles({
153
+ "node_modules/bad/package.json": "{ not json",
154
+ "node_modules/bad/index.ts": "",
155
+ "node_modules/scalar/package.json": JSON.stringify({ exports: 123 }),
156
+ "node_modules/scalar/index.ts": "",
157
+ "node_modules/empty/package.json": JSON.stringify({ exports: [] }),
158
+ "node_modules/empty/index.ts": "",
159
+ "node_modules/nil/package.json": JSON.stringify({ exports: null }),
160
+ "node_modules/nil/index.ts": "",
161
+ });
162
+ expect(resolveFile(directory, "bad")).toEqual({
163
+ kind: "file",
164
+ path: join(directory, "node_modules", "bad", "index.ts"),
165
+ });
166
+ expect(resolveFile(directory, "scalar")).toEqual({
167
+ kind: "file",
168
+ path: join(directory, "node_modules", "scalar", "index.ts"),
169
+ });
170
+ expect(resolveFile(directory, "empty")).toEqual({
171
+ kind: "file",
172
+ path: join(directory, "node_modules", "empty", "index.ts"),
173
+ });
174
+ expect(resolveFile(directory, "nil")).toEqual({
175
+ kind: "file",
176
+ path: join(directory, "node_modules", "nil", "index.ts"),
177
+ });
178
+ });
179
+ it("resolves scoped package subpaths", () => {
180
+ const directory = writeFiles({
181
+ "node_modules/@scope/pkg/package.json": JSON.stringify({ exports: { "./sub": "./sub.ts" } }),
182
+ "node_modules/@scope/pkg/sub.ts": "",
183
+ });
184
+ expect(resolveFile(directory, "@scope/pkg/sub")).toEqual({
185
+ kind: "file",
186
+ path: join(directory, "node_modules", "@scope", "pkg", "sub.ts"),
187
+ });
188
+ });
189
+ it("walks up to a parent node_modules", () => {
190
+ const directory = writeFiles({
191
+ "node_modules/top/package.json": JSON.stringify({ main: "./index.ts" }),
192
+ "node_modules/top/index.ts": "",
193
+ "a/b/c/.keep": "",
194
+ });
195
+ expect(classifyDependency(join(directory, "a", "b", "c"), "top", NONE)).toEqual({
196
+ kind: "file",
197
+ path: join(directory, "node_modules", "top", "index.ts"),
198
+ });
199
+ });
200
+ it("resolves packages without a package.json and subpaths without exports", () => {
201
+ const directory = writeFiles({
202
+ "node_modules/bare/index.ts": "",
203
+ "node_modules/plain/sub.ts": "",
204
+ "empty-dir/.keep": "",
205
+ });
206
+ expect(resolveFile(directory, "bare")).toEqual({
207
+ kind: "file",
208
+ path: join(directory, "node_modules", "bare", "index.ts"),
209
+ });
210
+ expect(resolveFile(directory, "plain/sub")).toEqual({
211
+ kind: "file",
212
+ path: join(directory, "node_modules", "plain", "sub.ts"),
213
+ });
214
+ /* A directory that exists but has no index entry is unresolved. */
215
+ expect(resolveFile(directory, "./empty-dir")).toEqual({ kind: "missing" });
216
+ });
217
+ it("ignores a wildcard key that does not match the subpath", () => {
218
+ const directory = writeFiles({
219
+ "node_modules/pkg/package.json": JSON.stringify({ exports: { "./x/*": "./dist/*.ts" } }),
220
+ "node_modules/pkg/index.ts": "",
221
+ "node_modules/pkg/y.ts": "",
222
+ });
223
+ /* `pkg/y` misses the `./x/*` pattern, so it falls back to the literal path. */
224
+ expect(resolveFile(directory, "pkg/y")).toEqual({
225
+ kind: "file",
226
+ path: join(directory, "node_modules", "pkg", "y.ts"),
227
+ });
228
+ });
229
+ });
230
+ //# sourceMappingURL=bundler-resolve.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundler-resolve.test.js","sourceRoot":"","sources":["../../../tests/driver/bundler-resolve.test.ts"],"names":[],"mappings":"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"}
@@ -224,4 +224,72 @@ describe("bundleModules", () => {
224
224
  expect(bag.diagnostics.some((d) => d.message.includes("Cannot find module"))).toBe(true);
225
225
  });
226
226
  });
227
+ describe("asset loaders", () => {
228
+ it("rewrites a matching asset extension into a TS module", () => {
229
+ const directory = writeFiles({
230
+ "data.foo": "hello",
231
+ "main.ts": 'import value from "./data.foo";\nconsole.log(value);',
232
+ });
233
+ const seen = [];
234
+ const loader = (path, source) => {
235
+ seen.push([path, source]);
236
+ return { moduleSource: `export default ${JSON.stringify(source)};` };
237
+ };
238
+ const bag = new DiagnosticBag();
239
+ const result = bundleModules(join(directory, "main.ts"), bag, new Set(), { ".foo": loader });
240
+ expect(bag.hasErrors).toBe(false);
241
+ expect(seen).toEqual([[join(directory, "data.foo"), "hello"]]);
242
+ expect(result?.text).toContain('export default "hello"');
243
+ });
244
+ it("follows imports from a loader-generated module", () => {
245
+ const directory = writeFiles({
246
+ "widget.html": "<div></div>",
247
+ "helper.ts": "export const n = 41;",
248
+ "main.ts": 'import html from "./widget.html";\nconsole.log(html);',
249
+ });
250
+ const loader = () => ({
251
+ moduleSource: 'import { n } from "./helper";\nexport default "loaded-" + n;',
252
+ });
253
+ const bag = new DiagnosticBag();
254
+ const result = bundleModules(join(directory, "main.ts"), bag, new Set(), { ".html": loader });
255
+ expect(bag.hasErrors).toBe(false);
256
+ expect(result?.moduleCount).toBe(3);
257
+ });
258
+ it("leaves files with other extensions untouched", () => {
259
+ const directory = writeFiles({ "main.ts": "console.log(1);" });
260
+ const loader = () => ({ moduleSource: 'throw new Error("should not run");' });
261
+ const bag = new DiagnosticBag();
262
+ bundleModules(join(directory, "main.ts"), bag, new Set(), { ".html": loader });
263
+ expect(bag.hasErrors).toBe(false);
264
+ });
265
+ it("reports a loader that throws as a build diagnostic", () => {
266
+ const directory = writeFiles({
267
+ "data.foo": "boom",
268
+ "main.ts": 'import value from "./data.foo";\nconsole.log(value);',
269
+ });
270
+ const loader = () => {
271
+ throw new Error("loader exploded");
272
+ };
273
+ const bag = new DiagnosticBag();
274
+ const result = bundleModules(join(directory, "main.ts"), bag, new Set(), { ".foo": loader });
275
+ expect(result).toBeUndefined();
276
+ expect(bag.hasErrors).toBe(true);
277
+ expect(bag.diagnostics.some((diagnostic) => diagnostic.message.includes("loader exploded"))).toBe(true);
278
+ });
279
+ it("reports an unresolvable relative import", () => {
280
+ const directory = writeFiles({ "main.ts": 'import value from "./missing";\nconsole.log(value);' });
281
+ const bag = new DiagnosticBag();
282
+ const result = bundleModules(join(directory, "main.ts"), bag);
283
+ expect(result).toBeUndefined();
284
+ expect(bag.hasErrors).toBe(true);
285
+ expect(bag.diagnostics.some((diagnostic) => diagnostic.message.includes("Cannot resolve module"))).toBe(true);
286
+ });
287
+ it("reports a missing entry file", () => {
288
+ const directory = writeFiles({ "main.ts": "console.log(1);" });
289
+ const bag = new DiagnosticBag();
290
+ const result = bundleModules(join(directory, "nope.ts"), bag);
291
+ expect(result).toBeUndefined();
292
+ expect(bag.diagnostics.some((diagnostic) => diagnostic.message.includes("Cannot find module"))).toBe(true);
293
+ });
294
+ });
227
295
  //# sourceMappingURL=modules.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.test.js","sourceRoot":"","sources":["../../../tests/driver/modules.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.test.js","sourceRoot":"","sources":["../../../tests/driver/modules.test.ts"],"names":[],"mappings":"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"}