ttsc 0.18.3 → 0.18.4

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 (50) hide show
  1. package/cmd/ttscgraph/main.go +18 -12
  2. package/cmd/ttscgraph/run_help_version_and_bad_flags_exit_codes_test.go +23 -5
  3. package/cmd/ttscgraph/serve.go +863 -0
  4. package/cmd/ttscgraph/serve_protocol_rejects_invalid_request_line_test.go +43 -0
  5. package/cmd/ttscgraph/serve_protocol_retries_session_creation_test.go +83 -0
  6. package/cmd/ttscgraph/serve_protocol_reuses_session_test.go +35 -0
  7. package/cmd/ttscgraph/serve_session_applies_source_edit_incrementally_test.go +55 -0
  8. package/cmd/ttscgraph/serve_session_fails_closed_on_deleted_config_test.go +68 -0
  9. package/cmd/ttscgraph/serve_session_fails_closed_on_invalid_config_test.go +50 -0
  10. package/cmd/ttscgraph/serve_session_keeps_missing_literal_root_unchanged_test.go +46 -0
  11. package/cmd/ttscgraph/serve_session_rebuilds_import_graph_change_test.go +60 -0
  12. package/cmd/ttscgraph/serve_session_reloads_created_literal_root_test.go +44 -0
  13. package/cmd/ttscgraph/serve_session_reloads_extended_config_change_test.go +45 -0
  14. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_conditional_export_test.go +60 -0
  15. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_config_types_test.go +44 -0
  16. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_excluded_import_test.go +62 -0
  17. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_export_test.go +46 -0
  18. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_import_test.go +46 -0
  19. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_path_alias_test.go +47 -0
  20. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_reference_path_test.go +42 -0
  21. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_root_dirs_target_test.go +46 -0
  22. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_type_reference_test.go +42 -0
  23. package/cmd/ttscgraph/serve_session_reloads_root_file_set_test.go +52 -0
  24. package/cmd/ttscgraph/serve_session_reloads_source_deleted_during_load_test.go +60 -0
  25. package/cmd/ttscgraph/serve_session_reloads_transitive_project_reference_test.go +55 -0
  26. package/cmd/ttscgraph/serve_session_reloads_when_program_plugin_linked_test.go +53 -0
  27. package/cmd/ttscgraph/serve_session_reuses_unchanged_preamble_source_test.go +45 -0
  28. package/cmd/ttscgraph/serve_session_reuses_unchanged_snapshot_test.go +52 -0
  29. package/cmd/ttscgraph/serve_session_revisits_source_edited_during_load_test.go +61 -0
  30. package/cmd/ttscgraph/serve_session_tolerates_os_invalid_resolution_candidate_test.go +56 -0
  31. package/cmd/ttscgraph/serve_session_tracks_all_module_specifier_forms_test.go +41 -0
  32. package/cmd/ttscgraph/serve_session_tracks_diamond_project_references_once_test.go +61 -0
  33. package/driver/plugins.go +21 -5
  34. package/driver/program.go +18 -2
  35. package/driver/session.go +11 -3
  36. package/lib/TtscCompiler.d.ts +3 -2
  37. package/lib/TtscCompiler.js +6 -14
  38. package/lib/TtscCompiler.js.map +1 -1
  39. package/lib/compiler/internal/compileProjectInMemory.js +14 -1
  40. package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
  41. package/lib/compiler/internal/runBuild.d.ts +7 -0
  42. package/lib/compiler/internal/runBuild.js +176 -16
  43. package/lib/compiler/internal/runBuild.js.map +1 -1
  44. package/lib/structures/ITtscCompilerResult.d.ts +8 -5
  45. package/package.json +8 -8
  46. package/shim/printer/shim.go +22 -4
  47. package/src/TtscCompiler.ts +4 -16
  48. package/src/compiler/internal/compileProjectInMemory.ts +17 -1
  49. package/src/compiler/internal/runBuild.ts +237 -23
  50. package/src/structures/ITtscCompilerResult.ts +8 -5
@@ -0,0 +1,61 @@
1
+ package main
2
+
3
+ import (
4
+ "os"
5
+ "path/filepath"
6
+ "testing"
7
+
8
+ "github.com/samchon/ttsc/packages/ttsc/driver"
9
+ )
10
+
11
+ // TestServeSessionRevisitsSourceEditedDuringLoad verifies a source edited
12
+ // between compiler load and state capture is refreshed on the next snapshot.
13
+ //
14
+ // Hashing the raw disk bytes at capture time would bless content the resident
15
+ // program never parsed: disk and graph would disagree until an unrelated
16
+ // change. The capture must hash the resident text instead, so the next
17
+ // snapshot sees the disk mismatch and applies the missed edit.
18
+ //
19
+ // 1. Load a session, then rewrite the source before capturing state.
20
+ // 2. Take a snapshot and assert it refreshes to the on-disk declaration.
21
+ // 3. Take another snapshot and assert the session has converged (unchanged).
22
+ func TestServeSessionRevisitsSourceEditedDuringLoad(t *testing.T) {
23
+ root := graphSessionFixture(t)
24
+ compiler, diags, err := driver.NewSession(root, "tsconfig.json", driver.LoadProgramOptions{})
25
+ if err != nil {
26
+ t.Fatal(err)
27
+ }
28
+ if compiler == nil {
29
+ t.Fatalf("NewSession returned nil session (diagnostics: %v)", diags)
30
+ }
31
+ file := filepath.Join(root, "src", "index.ts")
32
+ if err := os.WriteFile(file, []byte("export class EditedDuringLoad {}\n"), 0o644); err != nil {
33
+ t.Fatal(err)
34
+ }
35
+ session := &graphSession{
36
+ cwd: root,
37
+ tsconfig: "tsconfig.json",
38
+ compiler: compiler,
39
+ initialized: true,
40
+ }
41
+ defer session.Close()
42
+ if err := session.captureState(); err != nil {
43
+ t.Fatal(err)
44
+ }
45
+
46
+ dump, _, changed, err := session.Snapshot()
47
+ if err != nil {
48
+ t.Fatal(err)
49
+ }
50
+ if dump == nil || !changed || !hasDumpNode(*dump, "EditedDuringLoad") || hasDumpNode(*dump, "BeforeEdit") {
51
+ t.Fatalf("edited-during-load source was not refreshed: dump:%v changed:%v", dump != nil, changed)
52
+ }
53
+
54
+ dump, mode, changed, err := session.Snapshot()
55
+ if err != nil {
56
+ t.Fatal(err)
57
+ }
58
+ if dump != nil || mode != "unchanged" || changed {
59
+ t.Fatalf("session did not converge after the missed edit: dump:%v mode:%q changed:%v", dump != nil, mode, changed)
60
+ }
61
+ }
@@ -0,0 +1,56 @@
1
+ package main
2
+
3
+ import (
4
+ "path/filepath"
5
+ "testing"
6
+ )
7
+
8
+ // TestServeSessionToleratesOsInvalidResolutionCandidate verifies unresolved
9
+ // module specifiers that name OS-unparseable paths never break the session.
10
+ //
11
+ // Bundler-style specifiers (`./style.css?inline`) and URL imports (`data:`)
12
+ // stay unresolved in tsgo and become freshness candidates. On Windows those
13
+ // candidate paths fail os.ReadFile with ERROR_INVALID_NAME, which is neither
14
+ // ErrNotExist nor ErrInvalid; treating that as a snapshot error would make
15
+ // every graph request fail forever on such a project.
16
+ //
17
+ // 1. Open a session whose only root imports a query-suffixed CSS path and a
18
+ // data: URL.
19
+ // 2. Assert the session initializes and serves its initial dump.
20
+ // 3. Assert an untouched second snapshot reports unchanged.
21
+ func TestServeSessionToleratesOsInvalidResolutionCandidate(t *testing.T) {
22
+ root := t.TempDir()
23
+ writeGraphFile(t, filepath.Join(root, "tsconfig.json"), `{
24
+ "compilerOptions": { "target": "ES2022", "module": "commonjs" },
25
+ "files": ["src/index.ts"]
26
+ }`)
27
+ writeGraphFile(t, filepath.Join(root, "src", "index.ts"), `
28
+ // @ts-expect-error bundler-only specifier stays unresolved for tsgo
29
+ import styles from "./style.css?inline";
30
+ // @ts-expect-error data: URLs resolve at runtime, not through the compiler
31
+ import remote from "data:text/plain,hello";
32
+ export const value: unknown[] = [styles, remote];
33
+ `)
34
+
35
+ session, err := newGraphSession(root, "tsconfig.json")
36
+ if err != nil {
37
+ t.Fatal(err)
38
+ }
39
+ defer session.Close()
40
+
41
+ dump, mode, changed, err := session.Snapshot()
42
+ if err != nil {
43
+ t.Fatal(err)
44
+ }
45
+ if dump == nil || mode != "initial" || !changed {
46
+ t.Fatalf("initial snapshot = dump:%v mode:%q changed:%v", dump != nil, mode, changed)
47
+ }
48
+
49
+ dump, mode, changed, err = session.Snapshot()
50
+ if err != nil {
51
+ t.Fatal(err)
52
+ }
53
+ if dump != nil || mode != "unchanged" || changed {
54
+ t.Fatalf("untouched snapshot = dump:%v mode:%q changed:%v", dump != nil, mode, changed)
55
+ }
56
+ }
@@ -0,0 +1,41 @@
1
+ package main
2
+
3
+ import (
4
+ "path/filepath"
5
+ "testing"
6
+ )
7
+
8
+ // TestServeSessionTracksAllModuleSpecifierForms verifies that every TypeScript
9
+ // syntax which can trigger module resolution contributes missing-file
10
+ // candidates to the freshness snapshot.
11
+ func TestServeSessionTracksAllModuleSpecifierForms(t *testing.T) {
12
+ root := t.TempDir()
13
+ writeGraphFile(t, filepath.Join(root, "tsconfig.json"), `{
14
+ "compilerOptions": { "target": "ES2022", "module": "commonjs", "strict": true },
15
+ "files": ["src/index.ts"]
16
+ }`)
17
+ writeGraphFile(t, filepath.Join(root, "src", "index.ts"), `
18
+ import legacy = require("./legacy");
19
+ export { exported } from "./exported";
20
+ export type Deferred = import("./types").Deferred;
21
+ export const lazy = import("./lazy");
22
+ export const common = require("./common");
23
+ export const result = legacy();
24
+ `)
25
+
26
+ session, err := newGraphSession(root, "tsconfig.json")
27
+ if err != nil {
28
+ t.Fatal(err)
29
+ }
30
+ defer session.Close()
31
+
32
+ for _, name := range []string{"legacy.ts", "exported.ts", "types.ts", "lazy.ts", "common.ts"} {
33
+ candidate := filepath.Join(root, "src", name)
34
+ state, ok := session.auxStates[candidate]
35
+ if !ok {
36
+ t.Errorf("module candidate %s was not tracked", name)
37
+ } else if state.Exists {
38
+ t.Errorf("missing module candidate %s unexpectedly exists", name)
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,61 @@
1
+ package main
2
+
3
+ import (
4
+ "path/filepath"
5
+ "testing"
6
+ )
7
+
8
+ // TestServeSessionTracksDiamondProjectReferencesOnce verifies the config
9
+ // traversal terminates and deduplicates when two references share a child.
10
+ //
11
+ // A diamond (root -> left, root -> right, both -> shared) visits the shared
12
+ // config twice; without the seen-set the traversal would duplicate tracked
13
+ // state, and on a reference cycle it would never terminate. The shared leaf
14
+ // must appear in the freshness state exactly once and the session must stay
15
+ // stable across untouched snapshots.
16
+ //
17
+ // 1. Open a session over a diamond of project references.
18
+ // 2. Assert the shared leaf config is hash-tracked.
19
+ // 3. Assert an untouched snapshot reports unchanged.
20
+ func TestServeSessionTracksDiamondProjectReferencesOnce(t *testing.T) {
21
+ root := t.TempDir()
22
+ writeGraphFile(t, filepath.Join(root, "tsconfig.json"), `{
23
+ "files": ["src/index.ts"],
24
+ "references": [{ "path": "./left" }, { "path": "./right" }]
25
+ }`)
26
+ writeGraphFile(t, filepath.Join(root, "src", "index.ts"), "export const root = 1;\n")
27
+ for _, side := range []string{"left", "right"} {
28
+ writeGraphFile(t, filepath.Join(root, side, "tsconfig.json"), `{
29
+ "compilerOptions": { "composite": true },
30
+ "files": ["src/index.ts"],
31
+ "references": [{ "path": "../shared" }]
32
+ }`)
33
+ writeGraphFile(t, filepath.Join(root, side, "src", "index.ts"), "export const side = 1;\n")
34
+ }
35
+ writeGraphFile(t, filepath.Join(root, "shared", "tsconfig.json"), `{
36
+ "compilerOptions": { "composite": true },
37
+ "files": ["src/index.ts"]
38
+ }`)
39
+ writeGraphFile(t, filepath.Join(root, "shared", "src", "index.ts"), "export const shared = 1;\n")
40
+
41
+ session, err := newGraphSession(root, "tsconfig.json")
42
+ if err != nil {
43
+ t.Fatal(err)
44
+ }
45
+ defer session.Close()
46
+ sharedConfig := filepath.ToSlash(filepath.Join(root, "shared", "tsconfig.json"))
47
+ if _, ok := session.configHashes[sharedConfig]; !ok {
48
+ t.Fatalf("shared diamond config was not tracked: %s; got %#v", sharedConfig, session.configHashes)
49
+ }
50
+ if _, _, _, err := session.Snapshot(); err != nil {
51
+ t.Fatal(err)
52
+ }
53
+
54
+ dump, mode, changed, err := session.Snapshot()
55
+ if err != nil {
56
+ t.Fatal(err)
57
+ }
58
+ if dump != nil || mode != "unchanged" || changed {
59
+ t.Fatalf("diamond references churned: dump:%v mode:%q changed:%v", dump != nil, mode, changed)
60
+ }
61
+ }
package/driver/plugins.go CHANGED
@@ -42,11 +42,14 @@ type ProgramPlugin interface {
42
42
  // EmitTransformPlugin contributes an emit-phase AST transformer. The returned
43
43
  // PluginTransform runs first in tsgo's per-file emit chain, sharing the emit
44
44
  // EmitContext with the builtin transformers, so a plugin returns AST instead of
45
- // spliced text: it injects its own imports with ec.Factory and references them
46
- // via NewGeneratedNameForNode, and tsgo's module-transform emits the require and
47
- // aliases the references itself. This is the AST-integration replacement for the
48
- // ProgramPlugin + RewriteSet text-splice model. A plugin whose returned
49
- // transform is nil contributes nothing.
45
+ // spliced text. For an injected import, allocate its binding once with
46
+ // ec.Factory.NewUniqueNameEx and the Optimistic | FileLevel flags, then reuse
47
+ // that identifier for every reference. NewGeneratedNameForNode on a string
48
+ // literal uses tsgo's temp-name channel and can be shadowed by downlevel temps.
49
+ // Tsgo's module-transform emits the require and aliases the references itself.
50
+ // This is the AST-integration replacement for the ProgramPlugin + RewriteSet
51
+ // text-splice model. A plugin whose returned transform is nil contributes
52
+ // nothing.
50
53
  type EmitTransformPlugin interface {
51
54
  EmitTransform(PluginContext) (PluginTransform, error)
52
55
  }
@@ -130,6 +133,19 @@ func (state linkedPluginState) apply(prog *Program) error {
130
133
  return nil
131
134
  }
132
135
 
136
+ func (state linkedPluginState) hasProgramPlugins() bool {
137
+ for index := range state.entries {
138
+ plugin, ok := registeredPlugin(index)
139
+ if !ok {
140
+ continue
141
+ }
142
+ if _, ok := plugin.(ProgramPlugin); ok {
143
+ return true
144
+ }
145
+ }
146
+ return false
147
+ }
148
+
133
149
  // emitTransforms collects an emit-phase PluginTransform from every registered
134
150
  // EmitTransformPlugin, in registration order. Entries that do not implement
135
151
  // EmitTransformPlugin, or whose transform is nil, are skipped.
package/driver/program.go CHANGED
@@ -456,10 +456,10 @@ type sourcePreambleFS struct {
456
456
 
457
457
  func (fs sourcePreambleFS) ReadFile(filePath string) (string, bool) {
458
458
  contents, ok := fs.FS.ReadFile(filePath)
459
- if !ok || !isSourcePreambleTarget(filePath) {
459
+ if !ok {
460
460
  return contents, ok
461
461
  }
462
- return ApplySourcePreamble(contents, fs.preamble), true
462
+ return ApplySourcePreambleToFile(filePath, contents, fs.preamble), true
463
463
  }
464
464
 
465
465
  // isSourcePreambleTarget reports whether the preamble should be injected into
@@ -480,6 +480,15 @@ func isSourcePreambleTarget(filePath string) bool {
480
480
  return false
481
481
  }
482
482
 
483
+ // ApplySourcePreambleToFile applies a generated preamble only when filePath is
484
+ // a non-declaration TypeScript or JavaScript source, matching sourcePreambleFS.
485
+ func ApplySourcePreambleToFile(filePath string, text string, preamble string) string {
486
+ if !isSourcePreambleTarget(filePath) {
487
+ return text
488
+ }
489
+ return ApplySourcePreamble(text, preamble)
490
+ }
491
+
483
492
  // ApplySourcePreamble inserts a generated source preamble without moving the
484
493
  // file's BOM or hashbang away from the first bytes of the physical output.
485
494
  func ApplySourcePreamble(text string, preamble string) string {
@@ -542,6 +551,13 @@ func (p *Program) ApplyLinkedPlugins() error {
542
551
  return p.pluginsApplyErr
543
552
  }
544
553
 
554
+ // HasLinkedProgramPlugins reports whether the loaded project has an active
555
+ // ProgramPlugin. Those hooks mutate parsed ASTs in place and therefore require
556
+ // a fresh Program rather than Session's incremental source replacement.
557
+ func (p *Program) HasLinkedProgramPlugins() bool {
558
+ return p != nil && p.plugins.hasProgramPlugins()
559
+ }
560
+
545
561
  // Diagnostics returns project diagnostics that must block compilation or
546
562
  // runtime execution before any JavaScript is emitted or evaluated.
547
563
  func (p *Program) Diagnostics() []Diagnostic {
package/driver/session.go CHANGED
@@ -1,13 +1,15 @@
1
1
  package driver
2
2
 
3
3
  import (
4
+ "context"
5
+
4
6
  shimtspath "github.com/microsoft/typescript-go/shim/tspath"
5
7
  )
6
8
 
7
9
  // Session is a resident compiler host for incremental type-checking: it keeps a
8
10
  // loaded program alive and re-parses only the changed file on each edit (reusing
9
- // the unchanged ASTs and the pinned checker through UpdateProgram), instead of
10
- // recompiling the whole project per request.
11
+ // the unchanged ASTs and refreshing the checker for the updated Program),
12
+ // instead of recompiling the whole project per request.
11
13
  //
12
14
  // It is the driver-level incremental type-check primitive. The resident
13
15
  // transform path (utility-host `serve`) deliberately does not use it: the
@@ -50,10 +52,16 @@ func (s *Session) Apply(absPath, content string) bool {
50
52
  name = file.FileName()
51
53
  }
52
54
  changed := shimtspath.ToPath(name, s.cwd, s.overlay.caseSensitive)
53
- newHost := DefaultHost(s.cwd, s.overlay)
55
+ newHost := DefaultHost(s.cwd, s.prog.FS)
54
56
  newProg, reused := s.prog.TSProgram.UpdateProgram(changed, newHost, nil)
55
57
  if newProg != nil {
58
+ if s.prog.checkerRelease != nil {
59
+ s.prog.checkerRelease()
60
+ }
61
+ checker, release := newProg.GetTypeChecker(context.Background())
56
62
  s.prog.TSProgram = newProg
63
+ s.prog.Checker = checker
64
+ s.prog.checkerRelease = release
57
65
  s.prog.Host = newHost
58
66
  }
59
67
  return reused
@@ -70,8 +70,9 @@ export declare class TtscCompiler {
70
70
  * directory before returning.
71
71
  *
72
72
  * The result uses an `embed-typescript`-style discriminated union: `success`
73
- * for clean compiles, `failure` for normal compiler diagnostics, and
74
- * `exception` for host setup or process failures.
73
+ * for clean compiles, `failure` for compiler diagnostics or plugin failures
74
+ * that reached the build pipeline, and `exception` for host failures that
75
+ * prevent any project check from running.
75
76
  *
76
77
  * @returns Structured compilation result containing diagnostics or output.
77
78
  */
@@ -9,6 +9,7 @@ const node_path_1 = __importDefault(require("node:path"));
9
9
  const compileProjectInMemory_1 = require("./compiler/internal/compileProjectInMemory");
10
10
  const resolveProjectConfig_1 = require("./compiler/internal/project/resolveProjectConfig");
11
11
  const resolveBinary_1 = require("./compiler/internal/resolveBinary");
12
+ const runBuild_1 = require("./compiler/internal/runBuild");
12
13
  const transformProjectInMemory_1 = require("./compiler/internal/transformProjectInMemory");
13
14
  const buildSourcePlugin_1 = require("./plugin/internal/buildSourcePlugin");
14
15
  const loadProjectPlugins_1 = require("./plugin/internal/loadProjectPlugins");
@@ -121,8 +122,9 @@ class TtscCompiler {
121
122
  * directory before returning.
122
123
  *
123
124
  * The result uses an `embed-typescript`-style discriminated union: `success`
124
- * for clean compiles, `failure` for normal compiler diagnostics, and
125
- * `exception` for host setup or process failures.
125
+ * for clean compiles, `failure` for compiler diagnostics or plugin failures
126
+ * that reached the build pipeline, and `exception` for host failures that
127
+ * prevent any project check from running.
126
128
  *
127
129
  * @returns Structured compilation result containing diagnostics or output.
128
130
  */
@@ -293,22 +295,12 @@ function toCompilerResult(project) {
293
295
  }
294
296
  return {
295
297
  diagnostics: result.diagnostics.length === 0
296
- ? [createProcessDiagnostic(result)]
298
+ ? [(0, runBuild_1.createProcessDiagnostic)(result)]
297
299
  : result.diagnostics,
298
300
  output,
299
301
  type: "failure",
300
302
  };
301
303
  }
302
- function createProcessDiagnostic(result) {
303
- const messageText = (result.stderr || result.stdout).trim() ||
304
- `ttsc exited with status ${result.status}`;
305
- return {
306
- category: "error",
307
- code: "TTSC_PROCESS",
308
- file: null,
309
- messageText,
310
- };
311
- }
312
304
  function toCompilerTransformation(project) {
313
305
  const { dependencies, result, typescript } = project;
314
306
  const dependencyField = dependencies === undefined ? {} : { dependencies };
@@ -325,7 +317,7 @@ function toCompilerTransformation(project) {
325
317
  return {
326
318
  ...dependencyField,
327
319
  diagnostics: result.diagnostics.length === 0
328
- ? [createProcessDiagnostic(result)]
320
+ ? [(0, runBuild_1.createProcessDiagnostic)(result)]
329
321
  : result.diagnostics,
330
322
  type: "failure",
331
323
  typescript,
@@ -1 +1 @@
1
- {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ function compileProjectInMemory(options) {
33
33
  projectRoot: options.projectRoot,
34
34
  tsconfig: options.tsconfig,
35
35
  });
36
- if (hasConfiguredPlugins(options, project)) {
36
+ if (shouldUsePluginBuild(options, project)) {
37
37
  return compileProjectWithPlugins(options, cwd, project);
38
38
  }
39
39
  const tsconfig = project.path;
@@ -67,6 +67,19 @@ function compileProjectInMemory(options) {
67
67
  function hasConfiguredPlugins(options, project) {
68
68
  return (0, loadProjectPlugins_1.hasProjectPluginEntries)(project, options.plugins);
69
69
  }
70
+ /**
71
+ * Route plugin discovery failures through runBuild's recoverable setup path.
72
+ * The fast native-host lane cannot surface the plugin error or run the
73
+ * post-failure TypeScript check, while the plugin-backed lane can do both.
74
+ */
75
+ function shouldUsePluginBuild(options, project) {
76
+ try {
77
+ return hasConfiguredPlugins(options, project);
78
+ }
79
+ catch {
80
+ return true;
81
+ }
82
+ }
70
83
  /**
71
84
  * Plugin-backed compilation: emit into a temp directory via `runBuild`, then
72
85
  * read back every file the build wrote so they can be returned as strings.
@@ -1 +1 @@
1
- {"version":3,"file":"compileProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/compileProjectInMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compileProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/compileProjectInMemory.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,13 @@ export declare function runBuild(options?: RunBuildOptions): TtscBuildResult;
19
19
  * - `stdout`/`stderr`: concatenated left then right.
20
20
  */
21
21
  export declare function appendBuildOutput(left: TtscBuildResult, right: TtscBuildResult): TtscBuildResult;
22
+ /**
23
+ * Synthesize one structured diagnostic from a non-zero process result that
24
+ * produced no parsable diagnostics, carrying the captured stderr/stdout as the
25
+ * message. Shared by the public API result mapping and the plugin-failure
26
+ * recovery pass so the failure text is never dropped from structured output.
27
+ */
28
+ export declare function createProcessDiagnostic(result: TtscBuildResult): ITtscCompilerDiagnostic;
22
29
  /**
23
30
  * `TtscBuildResult` with `diagnostics` made optional. Used internally when
24
31
  * diagnostics are parsed lazily from stdout/stderr by `normalizeBuildOutput`.