UNPKG

ttsc

Version:

General-purpose TypeScript-Go compiler, runtime, plugin host, and LSP host.

36 lines (35 loc) 1.94 kB
import type { ITtscProjectInputSnapshot } from "../../structures/internal/ITtscProjectInputSnapshot"; type InitialLSPProjectInputSnapshot = ITtscProjectInputSnapshot & { reloadDirectoryDigests: Readonly<Record<string, string>>; reloadFileDigests: Readonly<Record<string, string>>; }; /** * Drive the ttscserver native binary from a node launcher. The launcher is * deliberately thin: argument parsing, version banners, and help text are owned * by the Go binary so future flags only need to change one layer. The JS side * performs the Node-owned setup that depends on package resolution: * * - Resolve the platform binary, * - Resolve the project TypeScript-Go binary for the native wrapper, * - Resolve the project config and materialize the private LSP plugin manifest, * - Inject the Node/ttsx helper paths used by disk-backed LSP sidecars, * - Inject `--stdio` when the first arg is not a meta-command, * - Delegate to the binary with inherited stdio so OS-level signals reach the * child via the parent's process group. */ export declare function runTtscserver(argv?: readonly string[]): number; export declare function materializeLSPPluginManifest(manifest: unknown): { dispose(): void; path: string; }; export declare function fingerprintInitialLSPProjectInputSnapshot(snapshot: ITtscProjectInputSnapshot): InitialLSPProjectInputSnapshot; export declare function initialLSPProjectInputSnapshotIsCurrent(snapshot: InitialLSPProjectInputSnapshot): boolean; /** * `--stdio` is the only transport the native host accepts today. The launcher * injects it only when the first argv token looks like a forwarded option; * meta-commands (`-v`, `--help`, `version`, etc.) pass through untouched so the * Go binary owns the canonical banner. This mirrors * `cmd/ttscserver/main.go::run`, which dispatches on `args[0]` only. */ export declare function needsStdio(argv: readonly string[]): boolean; export {};