@ttsc/wasm 0.13.1 → 0.14.0-dev.20260528
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/README.md +61 -1
- package/dist/ttsc.wasm +0 -0
- package/host/api.go +5 -4
- package/host/doc.go +7 -5
- package/host/fountain.go +505 -0
- package/host/host.go +64 -10
- package/host/plugin.go +6 -5
- package/lib/src/MemFSError.d.ts +15 -0
- package/lib/src/MemFSError.js +47 -0
- package/lib/src/MemFSError.js.map +1 -0
- package/lib/src/bootTtsc.d.ts +21 -0
- package/lib/src/bootTtsc.js +180 -0
- package/lib/src/bootTtsc.js.map +1 -0
- package/lib/src/createMemFS.d.ts +11 -0
- package/lib/src/{MemFS.js → createMemFS.js} +26 -61
- package/lib/src/createMemFS.js.map +1 -0
- package/lib/src/index.d.ts +5 -6
- package/lib/src/index.js +19 -8
- package/lib/src/index.js.map +1 -1
- package/lib/src/parseResult.d.ts +9 -0
- package/lib/src/parseResult.js +21 -0
- package/lib/src/parseResult.js.map +1 -0
- package/lib/src/structures/IBootResult.d.ts +9 -0
- package/lib/src/structures/IBootResult.js +3 -0
- package/lib/src/structures/IBootResult.js.map +1 -0
- package/lib/src/structures/IBootTtscOptions.d.ts +21 -0
- package/lib/src/structures/IBootTtscOptions.js +3 -0
- package/lib/src/structures/IBootTtscOptions.js.map +1 -0
- package/lib/src/structures/IFileStats.d.ts +23 -0
- package/lib/src/structures/IFileStats.js +3 -0
- package/lib/src/structures/IFileStats.js.map +1 -0
- package/lib/src/structures/IMemFSHost.d.ts +21 -0
- package/lib/src/structures/IMemFSHost.js +3 -0
- package/lib/src/structures/IMemFSHost.js.map +1 -0
- package/lib/src/structures/ITtscApi.d.ts +86 -0
- package/lib/src/structures/ITtscApi.js +3 -0
- package/lib/src/structures/ITtscApi.js.map +1 -0
- package/lib/src/structures/ITtscBuildOpts.d.ts +7 -0
- package/lib/src/structures/ITtscBuildOpts.js +3 -0
- package/lib/src/structures/ITtscBuildOpts.js.map +1 -0
- package/lib/src/structures/ITtscCompileResult.d.ts +11 -0
- package/lib/src/structures/ITtscCompileResult.js +3 -0
- package/lib/src/structures/ITtscCompileResult.js.map +1 -0
- package/lib/src/structures/ITtscDiagnostic.d.ts +14 -0
- package/lib/src/structures/ITtscDiagnostic.js +3 -0
- package/lib/src/structures/ITtscDiagnostic.js.map +1 -0
- package/lib/src/structures/ITtscFileQuery.d.ts +6 -0
- package/lib/src/structures/ITtscFileQuery.js +3 -0
- package/lib/src/structures/ITtscFileQuery.js.map +1 -0
- package/lib/src/structures/ITtscFountainDiagnosticsResult.d.ts +5 -0
- package/lib/src/structures/ITtscFountainDiagnosticsResult.js +3 -0
- package/lib/src/structures/ITtscFountainDiagnosticsResult.js.map +1 -0
- package/lib/src/structures/ITtscNodeAtPositionResult.d.ts +6 -0
- package/lib/src/structures/ITtscNodeAtPositionResult.js +3 -0
- package/lib/src/structures/ITtscNodeAtPositionResult.js.map +1 -0
- package/lib/src/structures/ITtscNodeInfo.d.ts +13 -0
- package/lib/src/structures/ITtscNodeInfo.js +3 -0
- package/lib/src/structures/ITtscNodeInfo.js.map +1 -0
- package/lib/src/structures/ITtscPluginOpts.d.ts +13 -0
- package/lib/src/structures/ITtscPluginOpts.js +3 -0
- package/lib/src/structures/ITtscPluginOpts.js.map +1 -0
- package/lib/src/structures/ITtscPositionQuery.d.ts +9 -0
- package/lib/src/structures/ITtscPositionQuery.js +3 -0
- package/lib/src/structures/ITtscPositionQuery.js.map +1 -0
- package/lib/src/structures/ITtscReleaseSnapshotResult.d.ts +5 -0
- package/lib/src/structures/ITtscReleaseSnapshotResult.js +3 -0
- package/lib/src/structures/ITtscReleaseSnapshotResult.js.map +1 -0
- package/lib/src/structures/ITtscResult.d.ts +15 -0
- package/lib/src/structures/ITtscResult.js +3 -0
- package/lib/src/structures/ITtscResult.js.map +1 -0
- package/lib/src/structures/ITtscSnapshotHandle.d.ts +5 -0
- package/lib/src/structures/ITtscSnapshotHandle.js +3 -0
- package/lib/src/structures/ITtscSnapshotHandle.js.map +1 -0
- package/lib/src/structures/ITtscSnapshotResult.d.ts +5 -0
- package/lib/src/structures/ITtscSnapshotResult.js +3 -0
- package/lib/src/structures/ITtscSnapshotResult.js.map +1 -0
- package/lib/src/structures/ITtscSnapshotsResult.d.ts +4 -0
- package/lib/src/structures/ITtscSnapshotsResult.js +3 -0
- package/lib/src/structures/ITtscSnapshotsResult.js.map +1 -0
- package/lib/src/structures/ITtscSourceFileTextResult.d.ts +5 -0
- package/lib/src/structures/ITtscSourceFileTextResult.js +3 -0
- package/lib/src/structures/ITtscSourceFileTextResult.js.map +1 -0
- package/lib/src/structures/ITtscSourceFilesResult.d.ts +5 -0
- package/lib/src/structures/ITtscSourceFilesResult.js +3 -0
- package/lib/src/structures/ITtscSourceFilesResult.js.map +1 -0
- package/lib/src/structures/ITtscSymbolAtPositionResult.d.ts +6 -0
- package/lib/src/structures/ITtscSymbolAtPositionResult.js +3 -0
- package/lib/src/structures/ITtscSymbolAtPositionResult.js.map +1 -0
- package/lib/src/structures/ITtscSymbolDeclaration.d.ts +7 -0
- package/lib/src/structures/ITtscSymbolDeclaration.js +3 -0
- package/lib/src/structures/ITtscSymbolDeclaration.js.map +1 -0
- package/lib/src/structures/ITtscSymbolInfo.d.ts +14 -0
- package/lib/src/structures/ITtscSymbolInfo.js +3 -0
- package/lib/src/structures/ITtscSymbolInfo.js.map +1 -0
- package/lib/src/structures/ITtscTransformResult.d.ts +12 -0
- package/lib/src/structures/ITtscTransformResult.js +3 -0
- package/lib/src/structures/ITtscTransformResult.js.map +1 -0
- package/lib/src/structures/ITtscTypeAtPositionResult.d.ts +6 -0
- package/lib/src/structures/ITtscTypeAtPositionResult.js +3 -0
- package/lib/src/structures/ITtscTypeAtPositionResult.js.map +1 -0
- package/lib/src/structures/ITtscTypeInfo.d.ts +7 -0
- package/lib/src/structures/ITtscTypeInfo.js +3 -0
- package/lib/src/structures/ITtscTypeInfo.js.map +1 -0
- package/lib/src/structures/ITtscVersion.d.ts +9 -0
- package/lib/src/structures/ITtscVersion.js +3 -0
- package/lib/src/structures/ITtscVersion.js.map +1 -0
- package/lib/src/{MemFS.d.ts → structures/IWasmExecFS.d.ts} +7 -66
- package/lib/src/structures/IWasmExecFS.js +3 -0
- package/lib/src/structures/IWasmExecFS.js.map +1 -0
- package/lib/src/structures/index.d.ts +29 -0
- package/lib/src/structures/index.js +46 -0
- package/lib/src/structures/index.js.map +1 -0
- package/package.json +2 -2
- package/shim-vendor/shim/ast/lint.go +1 -1
- package/shim-vendor/shim/checker/shim.go +3 -0
- package/shim-vendor/shim/core/shim.go +11 -0
- package/src/MemFSError.ts +43 -0
- package/src/bootTtsc.ts +214 -0
- package/src/{MemFS.ts → createMemFS.ts} +13 -231
- package/src/index.ts +5 -17
- package/src/parseResult.ts +17 -0
- package/src/structures/IBootResult.ts +10 -0
- package/src/structures/IBootTtscOptions.ts +22 -0
- package/src/structures/IFileStats.ts +23 -0
- package/src/structures/IMemFSHost.ts +18 -0
- package/src/structures/ITtscApi.ts +101 -0
- package/src/structures/ITtscBuildOpts.ts +7 -0
- package/src/structures/ITtscCompileResult.ts +12 -0
- package/src/structures/ITtscDiagnostic.ts +14 -0
- package/src/structures/ITtscFileQuery.ts +7 -0
- package/src/structures/ITtscFountainDiagnosticsResult.ts +6 -0
- package/src/structures/ITtscNodeAtPositionResult.ts +7 -0
- package/src/structures/ITtscNodeInfo.ts +13 -0
- package/src/structures/ITtscPluginOpts.ts +13 -0
- package/src/structures/ITtscPositionQuery.ts +10 -0
- package/src/structures/ITtscReleaseSnapshotResult.ts +5 -0
- package/src/structures/ITtscResult.ts +15 -0
- package/src/structures/ITtscSnapshotHandle.ts +5 -0
- package/src/structures/ITtscSnapshotResult.ts +5 -0
- package/src/structures/ITtscSnapshotsResult.ts +4 -0
- package/src/structures/ITtscSourceFileTextResult.ts +5 -0
- package/src/structures/ITtscSourceFilesResult.ts +5 -0
- package/src/structures/ITtscSymbolAtPositionResult.ts +7 -0
- package/src/structures/ITtscSymbolDeclaration.ts +7 -0
- package/src/structures/ITtscSymbolInfo.ts +15 -0
- package/src/structures/ITtscTransformResult.ts +13 -0
- package/src/structures/ITtscTypeAtPositionResult.ts +7 -0
- package/src/structures/ITtscTypeInfo.ts +7 -0
- package/src/structures/ITtscVersion.ts +9 -0
- package/src/structures/IWasmExecFS.ts +150 -0
- package/src/structures/index.ts +29 -0
- package/lib/src/MemFS.js.map +0 -1
- package/lib/src/api.d.ts +0 -120
- package/lib/src/api.js +0 -23
- package/lib/src/api.js.map +0 -1
- package/lib/src/instantiate.d.ts +0 -30
- package/lib/src/instantiate.js +0 -88
- package/lib/src/instantiate.js.map +0 -1
- package/src/api.ts +0 -145
- package/src/instantiate.ts +0 -137
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { ITtscBuildOpts } from "./ITtscBuildOpts";
|
|
2
|
+
import type { ITtscPluginOpts } from "./ITtscPluginOpts";
|
|
3
|
+
import type { ITtscPositionQuery } from "./ITtscPositionQuery";
|
|
4
|
+
import type { ITtscFileQuery } from "./ITtscFileQuery";
|
|
5
|
+
import type { ITtscResult } from "./ITtscResult";
|
|
6
|
+
import type { ITtscSnapshotHandle } from "./ITtscSnapshotHandle";
|
|
7
|
+
import type { ITtscVersion } from "./ITtscVersion";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* API object that every host-built wasm binds to `globalThis[apiName]`.
|
|
11
|
+
*
|
|
12
|
+
* Obtain an instance via `bootTtsc`, which waits for the wasm to signal
|
|
13
|
+
* readiness and returns the typed handle together with its `IMemFSHost`.
|
|
14
|
+
*/
|
|
15
|
+
export interface ITtscApi {
|
|
16
|
+
/** Build metadata reported by the wasm. Useful for diagnostics. */
|
|
17
|
+
version(): ITtscVersion;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Compile a project: typecheck + emit. `result` is JSON;
|
|
21
|
+
* `parseResult<ITtscCompileResult>` deserializes it.
|
|
22
|
+
*/
|
|
23
|
+
build(opts: ITtscBuildOpts): Promise<ITtscResult>;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Typecheck without emit. `result` is JSON; `parseResult<ITtscCompileResult>`
|
|
27
|
+
* deserializes it.
|
|
28
|
+
*/
|
|
29
|
+
check(opts: ITtscBuildOpts): Promise<ITtscResult>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Return every source file the program saw, keyed by project-relative path.
|
|
33
|
+
* Used by playgrounds that want to render the TypeScript view after a source
|
|
34
|
+
* rewriter (e.g. paths) has run. `result` is JSON; use
|
|
35
|
+
* `parseResult<ITtscTransformResult>` to deserialize.
|
|
36
|
+
*/
|
|
37
|
+
transform(opts: ITtscBuildOpts): Promise<ITtscResult>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Dispatch a registered plugin's subcommand. Returns the captured stdout /
|
|
41
|
+
* stderr (the same streams the native sidecar binary would write to)
|
|
42
|
+
* together with the exit code.
|
|
43
|
+
*/
|
|
44
|
+
plugin(opts: ITtscPluginOpts): Promise<ITtscResult>;
|
|
45
|
+
|
|
46
|
+
/** Names of the plugins this wasm was built with. */
|
|
47
|
+
plugins(): string[];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Load a project once and retain the TypeScript-Go Program in memory for
|
|
51
|
+
* follow-up queries via the other fountain verbs.
|
|
52
|
+
*
|
|
53
|
+
* Callers MUST call `releaseSnapshot` for every handle they receive to free
|
|
54
|
+
* the program's checker pool lease and let Go GC reclaim the AST. Use
|
|
55
|
+
* `parseResult<ITtscSnapshotResult>` to read the handle.
|
|
56
|
+
*/
|
|
57
|
+
snapshot(opts: ITtscBuildOpts): Promise<ITtscResult>;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Drop a snapshot held by the wasm. Safe to call with an already-released
|
|
61
|
+
* handle — the response's `released` flag will be `false`.
|
|
62
|
+
*/
|
|
63
|
+
releaseSnapshot(opts: ITtscSnapshotHandle): Promise<ITtscResult>;
|
|
64
|
+
|
|
65
|
+
/** List the currently retained snapshot handles. Debug aid. */
|
|
66
|
+
snapshots(): Promise<ITtscResult>;
|
|
67
|
+
|
|
68
|
+
/** List source file paths held by the snapshot's program. */
|
|
69
|
+
getSourceFiles(opts: ITtscSnapshotHandle): Promise<ITtscResult>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Read the current text the snapshot's program is holding for a file. After
|
|
73
|
+
* transform-stage plugins ran inside this snapshot, the text reflects their
|
|
74
|
+
* rewrites.
|
|
75
|
+
*/
|
|
76
|
+
getSourceFileText(opts: ITtscFileQuery): Promise<ITtscResult>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Diagnostics from the snapshot's program. Pass `file` to filter to a
|
|
80
|
+
* single project-relative path.
|
|
81
|
+
*/
|
|
82
|
+
getDiagnostics(
|
|
83
|
+
opts: ITtscSnapshotHandle & { file?: string },
|
|
84
|
+
): Promise<ITtscResult>;
|
|
85
|
+
|
|
86
|
+
/** Return the deepest AST node whose range covers `position` (byte offset). */
|
|
87
|
+
getNodeAtPosition(opts: ITtscPositionQuery): Promise<ITtscResult>;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Run the TypeScript-Go type checker against the node at `position` and
|
|
91
|
+
* return its printed type string + flags. Returns `{type: null}` when there
|
|
92
|
+
* is no node at that position.
|
|
93
|
+
*/
|
|
94
|
+
getTypeAtPosition(opts: ITtscPositionQuery): Promise<ITtscResult>;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Resolve the symbol the node at `position` refers to, including up to 16
|
|
98
|
+
* declaration sites. Returns `{symbol: null}` when no symbol is bound.
|
|
99
|
+
*/
|
|
100
|
+
getSymbolAtPosition(opts: ITtscPositionQuery): Promise<ITtscResult>;
|
|
101
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Options shared by `build`, `check`, and `transform`. */
|
|
2
|
+
export interface ITtscBuildOpts {
|
|
3
|
+
/** Absolute virtual path the project lives at inside the MemFS. */
|
|
4
|
+
cwd: string;
|
|
5
|
+
/** Tsconfig path, relative to `cwd`. Defaults to `tsconfig.json`. */
|
|
6
|
+
tsconfig?: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ITtscDiagnostic } from "./ITtscDiagnostic";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Structured payload inside `ITtscResult.result` for `build` and `check`.
|
|
5
|
+
*
|
|
6
|
+
* `output` maps emit-destination paths (relative to `cwd`) to file contents.
|
|
7
|
+
* It is empty when `check` is called without emit.
|
|
8
|
+
*/
|
|
9
|
+
export interface ITtscCompileResult {
|
|
10
|
+
diagnostics?: ITtscDiagnostic[];
|
|
11
|
+
output: Record<string, string>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single TypeScript compiler diagnostic emitted during `build`, `check`, or
|
|
3
|
+
* `transform`. `line` and `character` are 0-based.
|
|
4
|
+
*/
|
|
5
|
+
export interface ITtscDiagnostic {
|
|
6
|
+
file: string | null;
|
|
7
|
+
category: "error" | "warning";
|
|
8
|
+
code: number;
|
|
9
|
+
start?: number;
|
|
10
|
+
length?: number;
|
|
11
|
+
line?: number;
|
|
12
|
+
character?: number;
|
|
13
|
+
messageText: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ITtscSnapshotHandle } from "./ITtscSnapshotHandle";
|
|
2
|
+
|
|
3
|
+
/** Request shape for `getSourceFileText`. */
|
|
4
|
+
export interface ITtscFileQuery extends ITtscSnapshotHandle {
|
|
5
|
+
/** Project-relative or absolute path inside the snapshot's program. */
|
|
6
|
+
path: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** AST node shape returned by `getNodeAtPosition`. */
|
|
2
|
+
export interface ITtscNodeInfo {
|
|
3
|
+
/** Numeric `ast.Kind` from TypeScript-Go. */
|
|
4
|
+
kind: number;
|
|
5
|
+
/** Human-readable name of `kind`. */
|
|
6
|
+
kindName: string;
|
|
7
|
+
/** Byte offset where the node begins (inclusive). */
|
|
8
|
+
pos: number;
|
|
9
|
+
/** Byte offset where the node ends (exclusive). */
|
|
10
|
+
end: number;
|
|
11
|
+
/** Source text covered by the node, when available. */
|
|
12
|
+
text?: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Options for dispatching a named plugin subcommand via `api.plugin`. */
|
|
2
|
+
export interface ITtscPluginOpts {
|
|
3
|
+
/** Plugin id registered with `host.Expose` (e.g. `@ttsc/banner`). */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Subcommand the plugin's Run will receive (e.g. `build`). */
|
|
6
|
+
command: string;
|
|
7
|
+
/** Forwarded as `--cwd=<value>`. */
|
|
8
|
+
cwd?: string;
|
|
9
|
+
/** Forwarded as `--tsconfig=<value>`. Defaults to `tsconfig.json`. */
|
|
10
|
+
tsconfig?: string;
|
|
11
|
+
/** Any extra key/value pairs map to `--key=value` argv entries. */
|
|
12
|
+
[key: string]: string | boolean | number | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ITtscFileQuery } from "./ITtscFileQuery";
|
|
2
|
+
|
|
3
|
+
/** Request shape for `getNodeAtPosition`, `getTypeAtPosition`, `getSymbolAtPosition`. */
|
|
4
|
+
export interface ITtscPositionQuery extends ITtscFileQuery {
|
|
5
|
+
/**
|
|
6
|
+
* Byte offset into the file's source text. JS callers with a UTF-16
|
|
7
|
+
* line/character pair must resolve it to a byte offset first.
|
|
8
|
+
*/
|
|
9
|
+
position: number;
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Envelope returned by every `ITtscApi` method. */
|
|
2
|
+
export interface ITtscResult {
|
|
3
|
+
/** Exit code. 0 = success, 2 = compiler/config/usage error, 3 = runtime error. */
|
|
4
|
+
code: number;
|
|
5
|
+
/** Anything the wasm wrote to its stdout stream. */
|
|
6
|
+
stdout: string;
|
|
7
|
+
/** Anything the wasm wrote to its stderr stream. */
|
|
8
|
+
stderr: string;
|
|
9
|
+
/**
|
|
10
|
+
* For the base endpoints, the JSON-encoded compile/transform result. For the
|
|
11
|
+
* plugin endpoint, this is empty — the plugin's own output sits in
|
|
12
|
+
* stdout/stderr. Use `parseResult<T>` to deserialize.
|
|
13
|
+
*/
|
|
14
|
+
result: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ITtscSymbolInfo } from "./ITtscSymbolInfo";
|
|
2
|
+
|
|
3
|
+
/** Payload inside `ITtscResult.result` for `getSymbolAtPosition`. */
|
|
4
|
+
export interface ITtscSymbolAtPositionResult {
|
|
5
|
+
/** `null` when the node has no associated symbol. */
|
|
6
|
+
symbol: ITtscSymbolInfo | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ITtscSymbolDeclaration } from "./ITtscSymbolDeclaration";
|
|
2
|
+
|
|
3
|
+
/** Symbol shape returned by `getSymbolAtPosition`. */
|
|
4
|
+
export interface ITtscSymbolInfo {
|
|
5
|
+
/** Raw symbol name, including TypeScript's internal prefix markers. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Printed symbol, equivalent to TypeScript's `SymbolToString(s)`. */
|
|
8
|
+
text?: string;
|
|
9
|
+
/** Numeric `SymbolFlags` bitmask from TypeScript-Go. */
|
|
10
|
+
flags: number;
|
|
11
|
+
/** Up to 16 declaration sites; see `declarationCount` for the unclamped total. */
|
|
12
|
+
declarations?: ITtscSymbolDeclaration[];
|
|
13
|
+
/** Total number of declarations, even when `declarations` was clamped. */
|
|
14
|
+
declarationCount?: number;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ITtscDiagnostic } from "./ITtscDiagnostic";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Structured payload inside `ITtscResult.result` for `transform`.
|
|
5
|
+
*
|
|
6
|
+
* `typescript` maps source file paths (relative to `cwd`) to their
|
|
7
|
+
* post-transform TypeScript text — useful for playgrounds that want to show
|
|
8
|
+
* the rewritten source before it is emitted.
|
|
9
|
+
*/
|
|
10
|
+
export interface ITtscTransformResult {
|
|
11
|
+
diagnostics?: ITtscDiagnostic[];
|
|
12
|
+
typescript: Record<string, string>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { IFileStats } from "./IFileStats";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Subset of the Node.js `fs` module that `wasm_exec.js` calls into.
|
|
5
|
+
*
|
|
6
|
+
* Go's js/wasm runtime routes all `syscall/js` filesystem operations through
|
|
7
|
+
* `globalThis.fs`. In a browser there is no real `fs`, so a MemFS
|
|
8
|
+
* implementation fulfils this interface. Only the operations that
|
|
9
|
+
* typescript-go's compiler exercises are required; the rest are no-ops or
|
|
10
|
+
* return `EPERM`/`EINVAL`.
|
|
11
|
+
*/
|
|
12
|
+
export interface IWasmExecFS {
|
|
13
|
+
constants: Record<string, number>;
|
|
14
|
+
writeSync(fd: number, buf: Uint8Array): number;
|
|
15
|
+
write(
|
|
16
|
+
fd: number,
|
|
17
|
+
buf: Uint8Array,
|
|
18
|
+
offset: number,
|
|
19
|
+
length: number,
|
|
20
|
+
position: number | null,
|
|
21
|
+
callback: (err: NodeJS.ErrnoException | null, n: number) => void,
|
|
22
|
+
): void;
|
|
23
|
+
open(
|
|
24
|
+
path: string,
|
|
25
|
+
flags: number,
|
|
26
|
+
mode: number,
|
|
27
|
+
callback: (err: NodeJS.ErrnoException | null, fd: number) => void,
|
|
28
|
+
): void;
|
|
29
|
+
close(
|
|
30
|
+
fd: number,
|
|
31
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
32
|
+
): void;
|
|
33
|
+
read(
|
|
34
|
+
fd: number,
|
|
35
|
+
buffer: Uint8Array,
|
|
36
|
+
offset: number,
|
|
37
|
+
length: number,
|
|
38
|
+
position: number | null,
|
|
39
|
+
callback: (err: NodeJS.ErrnoException | null, n: number) => void,
|
|
40
|
+
): void;
|
|
41
|
+
readdir(
|
|
42
|
+
path: string,
|
|
43
|
+
callback: (err: NodeJS.ErrnoException | null, entries: string[]) => void,
|
|
44
|
+
): void;
|
|
45
|
+
mkdir(
|
|
46
|
+
path: string,
|
|
47
|
+
perm: number,
|
|
48
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
49
|
+
): void;
|
|
50
|
+
stat(
|
|
51
|
+
path: string,
|
|
52
|
+
callback: (err: NodeJS.ErrnoException | null, stats: IFileStats) => void,
|
|
53
|
+
): void;
|
|
54
|
+
lstat(
|
|
55
|
+
path: string,
|
|
56
|
+
callback: (err: NodeJS.ErrnoException | null, stats: IFileStats) => void,
|
|
57
|
+
): void;
|
|
58
|
+
fstat(
|
|
59
|
+
fd: number,
|
|
60
|
+
callback: (err: NodeJS.ErrnoException | null, stats: IFileStats) => void,
|
|
61
|
+
): void;
|
|
62
|
+
fsync(
|
|
63
|
+
fd: number,
|
|
64
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
65
|
+
): void;
|
|
66
|
+
unlink(
|
|
67
|
+
path: string,
|
|
68
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
69
|
+
): void;
|
|
70
|
+
rename(
|
|
71
|
+
from: string,
|
|
72
|
+
to: string,
|
|
73
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
74
|
+
): void;
|
|
75
|
+
rmdir(
|
|
76
|
+
path: string,
|
|
77
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
78
|
+
): void;
|
|
79
|
+
chmod(
|
|
80
|
+
path: string,
|
|
81
|
+
mode: number,
|
|
82
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
83
|
+
): void;
|
|
84
|
+
fchmod(
|
|
85
|
+
fd: number,
|
|
86
|
+
mode: number,
|
|
87
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
88
|
+
): void;
|
|
89
|
+
chown(
|
|
90
|
+
path: string,
|
|
91
|
+
uid: number,
|
|
92
|
+
gid: number,
|
|
93
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
94
|
+
): void;
|
|
95
|
+
fchown(
|
|
96
|
+
fd: number,
|
|
97
|
+
uid: number,
|
|
98
|
+
gid: number,
|
|
99
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
100
|
+
): void;
|
|
101
|
+
lchown(
|
|
102
|
+
path: string,
|
|
103
|
+
uid: number,
|
|
104
|
+
gid: number,
|
|
105
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
106
|
+
): void;
|
|
107
|
+
utimes(
|
|
108
|
+
path: string,
|
|
109
|
+
atime: number,
|
|
110
|
+
mtime: number,
|
|
111
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
112
|
+
): void;
|
|
113
|
+
link(
|
|
114
|
+
path: string,
|
|
115
|
+
link: string,
|
|
116
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
117
|
+
): void;
|
|
118
|
+
symlink(
|
|
119
|
+
path: string,
|
|
120
|
+
link: string,
|
|
121
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
122
|
+
): void;
|
|
123
|
+
readlink(
|
|
124
|
+
path: string,
|
|
125
|
+
callback: (err: NodeJS.ErrnoException | null, link: string) => void,
|
|
126
|
+
): void;
|
|
127
|
+
truncate(
|
|
128
|
+
path: string,
|
|
129
|
+
length: number,
|
|
130
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
131
|
+
): void;
|
|
132
|
+
ftruncate(
|
|
133
|
+
fd: number,
|
|
134
|
+
length: number,
|
|
135
|
+
callback: (err: NodeJS.ErrnoException | null) => void,
|
|
136
|
+
): void;
|
|
137
|
+
/**
|
|
138
|
+
* `pipe2` is what Go's wasm `os.Pipe()` calls. Returns two fds: a read end
|
|
139
|
+
* and a write end. The host's stdout/stderr capture currently uses MemFS
|
|
140
|
+
* temp files, but this keeps direct pipe callers compatible with the wasm
|
|
141
|
+
* fs surface.
|
|
142
|
+
*/
|
|
143
|
+
pipe2(
|
|
144
|
+
flags: number,
|
|
145
|
+
callback: (
|
|
146
|
+
err: NodeJS.ErrnoException | null,
|
|
147
|
+
fds: [number, number],
|
|
148
|
+
) => void,
|
|
149
|
+
): void;
|
|
150
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * from "./IBootResult";
|
|
2
|
+
export * from "./IBootTtscOptions";
|
|
3
|
+
export * from "./IFileStats";
|
|
4
|
+
export * from "./IMemFSHost";
|
|
5
|
+
export * from "./ITtscApi";
|
|
6
|
+
export * from "./ITtscBuildOpts";
|
|
7
|
+
export * from "./ITtscCompileResult";
|
|
8
|
+
export * from "./ITtscDiagnostic";
|
|
9
|
+
export * from "./ITtscFileQuery";
|
|
10
|
+
export * from "./ITtscFountainDiagnosticsResult";
|
|
11
|
+
export * from "./ITtscNodeAtPositionResult";
|
|
12
|
+
export * from "./ITtscNodeInfo";
|
|
13
|
+
export * from "./ITtscPluginOpts";
|
|
14
|
+
export * from "./ITtscPositionQuery";
|
|
15
|
+
export * from "./ITtscReleaseSnapshotResult";
|
|
16
|
+
export * from "./ITtscResult";
|
|
17
|
+
export * from "./ITtscSnapshotHandle";
|
|
18
|
+
export * from "./ITtscSnapshotResult";
|
|
19
|
+
export * from "./ITtscSnapshotsResult";
|
|
20
|
+
export * from "./ITtscSourceFileTextResult";
|
|
21
|
+
export * from "./ITtscSourceFilesResult";
|
|
22
|
+
export * from "./ITtscSymbolAtPositionResult";
|
|
23
|
+
export * from "./ITtscSymbolDeclaration";
|
|
24
|
+
export * from "./ITtscSymbolInfo";
|
|
25
|
+
export * from "./ITtscTransformResult";
|
|
26
|
+
export * from "./ITtscTypeAtPositionResult";
|
|
27
|
+
export * from "./ITtscTypeInfo";
|
|
28
|
+
export * from "./ITtscVersion";
|
|
29
|
+
export * from "./IWasmExecFS";
|
package/lib/src/MemFS.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MemFS.js","sourceRoot":"","sources":["../../src/MemFS.ts"],"names":[],"mappings":"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"}
|