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.
- package/cmd/ttscgraph/main.go +18 -12
- package/cmd/ttscgraph/run_help_version_and_bad_flags_exit_codes_test.go +23 -5
- package/cmd/ttscgraph/serve.go +863 -0
- package/cmd/ttscgraph/serve_protocol_rejects_invalid_request_line_test.go +43 -0
- package/cmd/ttscgraph/serve_protocol_retries_session_creation_test.go +83 -0
- package/cmd/ttscgraph/serve_protocol_reuses_session_test.go +35 -0
- package/cmd/ttscgraph/serve_session_applies_source_edit_incrementally_test.go +55 -0
- package/cmd/ttscgraph/serve_session_fails_closed_on_deleted_config_test.go +68 -0
- package/cmd/ttscgraph/serve_session_fails_closed_on_invalid_config_test.go +50 -0
- package/cmd/ttscgraph/serve_session_keeps_missing_literal_root_unchanged_test.go +46 -0
- package/cmd/ttscgraph/serve_session_rebuilds_import_graph_change_test.go +60 -0
- package/cmd/ttscgraph/serve_session_reloads_created_literal_root_test.go +44 -0
- package/cmd/ttscgraph/serve_session_reloads_extended_config_change_test.go +45 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_conditional_export_test.go +60 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_config_types_test.go +44 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_excluded_import_test.go +62 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_export_test.go +46 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_import_test.go +46 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_path_alias_test.go +47 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_reference_path_test.go +42 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_root_dirs_target_test.go +46 -0
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_type_reference_test.go +42 -0
- package/cmd/ttscgraph/serve_session_reloads_root_file_set_test.go +52 -0
- package/cmd/ttscgraph/serve_session_reloads_source_deleted_during_load_test.go +60 -0
- package/cmd/ttscgraph/serve_session_reloads_transitive_project_reference_test.go +55 -0
- package/cmd/ttscgraph/serve_session_reloads_when_program_plugin_linked_test.go +53 -0
- package/cmd/ttscgraph/serve_session_reuses_unchanged_preamble_source_test.go +45 -0
- package/cmd/ttscgraph/serve_session_reuses_unchanged_snapshot_test.go +52 -0
- package/cmd/ttscgraph/serve_session_revisits_source_edited_during_load_test.go +61 -0
- package/cmd/ttscgraph/serve_session_tolerates_os_invalid_resolution_candidate_test.go +56 -0
- package/cmd/ttscgraph/serve_session_tracks_all_module_specifier_forms_test.go +41 -0
- package/cmd/ttscgraph/serve_session_tracks_diamond_project_references_once_test.go +61 -0
- package/driver/plugins.go +21 -5
- package/driver/program.go +18 -2
- package/driver/session.go +11 -3
- package/lib/TtscCompiler.d.ts +3 -2
- package/lib/TtscCompiler.js +6 -14
- package/lib/TtscCompiler.js.map +1 -1
- package/lib/compiler/internal/compileProjectInMemory.js +14 -1
- package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/runBuild.d.ts +7 -0
- package/lib/compiler/internal/runBuild.js +176 -16
- package/lib/compiler/internal/runBuild.js.map +1 -1
- package/lib/structures/ITtscCompilerResult.d.ts +8 -5
- package/package.json +8 -8
- package/shim/printer/shim.go +22 -4
- package/src/TtscCompiler.ts +4 -16
- package/src/compiler/internal/compileProjectInMemory.ts +17 -1
- package/src/compiler/internal/runBuild.ts +237 -23
- 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
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
// transform
|
|
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
|
|
459
|
+
if !ok {
|
|
460
460
|
return contents, ok
|
|
461
461
|
}
|
|
462
|
-
return
|
|
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
|
|
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.
|
|
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
|
package/lib/TtscCompiler.d.ts
CHANGED
|
@@ -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
|
|
74
|
-
* `exception` for host
|
|
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
|
*/
|
package/lib/TtscCompiler.js
CHANGED
|
@@ -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
|
|
125
|
-
* `exception` for host
|
|
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,
|
package/lib/TtscCompiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,uFAAoF;AACpF,2FAAwF;AACxF,qEAAkE;AAClE,2FAAwF;AACxF,2EAA0E;AAC1E,6EAA0E;AAO1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IACmB,OAAO,CAAuB;IAE/C;;;;;;OAMG;IACH,YAAmB,OAAO,GAAyB,EAAE;QACnD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;YACV,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;YACjD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,OAAO,CAAC,OAAO;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,OAAO;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC;YAChC,MAAM,EAAE,IAAA,6BAAa,EAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE;YACnD,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE;YACtC,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;SAC7B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG;YACpB,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC;YAC/C,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;SAChC,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,wEAAwE;YACxE,qEAAqE;YACrE,uEAAuE;YACvE,qEAAqE;YACrE,aAAa;YACb,OAAO,yBAAyB,CAAC,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,4EAA4E;QAC5E,4EAA4E;QAC5E,iEAAiE;QACjE,oEAAoE;QACpE,yCAAyC;QACzC,OAAO,yBAAyB,CAC9B,IAAA,uCAAmB,EACjB,WAAW,EACX,IAAI,CAAC,qBAAqB,EAAE,EAC5B,OAAO,CAAC,GAAG,CACZ,CACF,CAAC;IACJ,CAAC;IAED
|
|
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 (
|
|
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":";;;;;;AAAA,2DAA+C;AAC/C,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAE7B,iFAAmF;AAKnF,+DAA4D;AAC5D,mCAAgE;AAChE,mEAAgE;AAChE,yCAAsC;AAEtC;;;;;;;;;;;;GAYG;AACH,gCAAuC,OAA6B;IAIlE,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAA,qCAAiB,EAAC;QAChC,GAAG;QACH,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAA,yCAAmB,EAAC;QACjC,YAAY,EAAE,OAAO,CAAC,IAAI;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc;QACzD,WAAW,EAAE,IAAA,sBAAc,GAAE;KAC9B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,8BAAS,EACnB,MAAM,EACN,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAC9D;QACE,GAAG,EAAE,OAAO,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;QAC5B,WAAW,EAAE,IAAI;KAClB,CACF,CAAC;IACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE;YACN,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;YACvB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB;KACF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,oBAAoB,CAC3B,OAA6B,EAC7B,OAAiC;IAEjC,OAAO,IAAA,4CAAuB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,OAA6B,EAC7B,GAAW,EACX,OAAiC;IAKjC,MAAM,QAAQ,GAAG,iBAAE,CAAC,WAAW,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC;YACtB,GAAG,OAAO;YACV,GAAG;YACH,IAAI,EAAE,IAAI;YACV,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,IAAI;YACX,qBAAqB,EAAE,IAAI;YAC3B,QAAQ,EAAE,OAAO,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM;SACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,iBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,OAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,MAAM,cAAc,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,cAAc,KAAK,EAAE,IAAI,CAAC,IAAA,6BAAqB,EAAC,cAAc,CAAC,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,kFAAkF;AAClF,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,KAAuC;IAEvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAE,CAAC,YAAY,CACxE,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,SAAiB;IAClC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,iBAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAC/B,MAAc,EACd,MAAc;IAKd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAG/B,CAAC;QACF,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE;YACvB,+CAA+C,CAClD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
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`.
|