@corsa-bind/napi 0.7.1 → 0.9.0

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 CHANGED
@@ -23,6 +23,14 @@ binary through platform-specific optional dependencies.
23
23
  You must provide a compatible `typescript-go` (`tsgo`) executable yourself and
24
24
  pass its path through `TsgoApiClient.spawn({ executable: "/path/to/tsgo" })`.
25
25
 
26
+ ## API style
27
+
28
+ The wrapper exposes Promise-based methods such as `spawnAsync`,
29
+ `initializeAsync`, `updateSnapshotAsync`, `callJsonAsync`, `callBinaryAsync`,
30
+ and `closeAsync` for production Node services and editor integrations. The
31
+ older synchronous methods remain available for short scripts and latency-bounded
32
+ tooling, but they run on the JavaScript call path.
33
+
26
34
  ## Development
27
35
 
28
36
  ```bash
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ApiClientOptions, ApiMode, CapabilitiesResponse, ConfigResponse, DiagnosticsCapabilities, DocumentIdentifier, EditorCapabilities, FileChangeSummary, FileChanges, FileDiagnosticsResponse, InitializeResponse, NativeLintDiagnostic, NativeLintFix, NativeLintNode, NativeLintRange, NativeLintRuleMeta, NativeLintSuggestion, OverlayCapabilities, OverlayChanges, OverlayUpdate, ProjectDiagnosticsResponse, ProjectResponse, RuntimeCapabilities, SnapshotDiagnosticsResponse, SymbolResponse, TypeResponse, TypeTextKind, UnsafeTypeFlowInput, UpdateSnapshotParams, UpdateSnapshotResponse, VirtualChange, VirtualDocumentState } from "./types.mjs";
2
- import * as ___index_js0 from "../index.js";
2
+ import * as _$___index_js0 from "../index.js";
3
3
 
4
4
  //#region index.d.ts
5
- declare const binding: typeof ___index_js0;
5
+ declare const binding: typeof _$___index_js0;
6
6
  declare function isUnsafeAssignment(input: UnsafeTypeFlowInput): boolean;
7
7
  declare function isUnsafeReturn(input: UnsafeTypeFlowInput): boolean;
8
8
  declare function runNativeLintRule(ruleName: string, node: NativeLintNode): NativeLintDiagnostic[];
@@ -37,21 +37,37 @@ declare class CorsaApiClient {
37
37
  #private;
38
38
  private constructor();
39
39
  static spawn(options: ApiClientOptions): CorsaApiClient;
40
+ static spawnAsync(options: ApiClientOptions): Promise<CorsaApiClient>;
40
41
  initialize(): InitializeResponse;
42
+ initializeAsync(): Promise<InitializeResponse>;
41
43
  parseConfigFile(file: string): ConfigResponse;
44
+ parseConfigFileAsync(file: string): Promise<ConfigResponse>;
42
45
  updateSnapshot(params?: UpdateSnapshotParams): UpdateSnapshotResponse;
46
+ updateSnapshotAsync(params?: UpdateSnapshotParams): Promise<UpdateSnapshotResponse>;
43
47
  getSourceFile(snapshot: string, project: string, file: string): Uint8Array | null;
48
+ getSourceFileAsync(snapshot: string, project: string, file: string): Promise<Uint8Array | null>;
44
49
  getStringType(snapshot: string, project: string): TypeResponse;
50
+ getStringTypeAsync(snapshot: string, project: string): Promise<TypeResponse>;
45
51
  getTypeAtPosition(snapshot: string, project: string, file: string, position: number): TypeResponse | undefined;
52
+ getTypeAtPositionAsync(snapshot: string, project: string, file: string, position: number): Promise<TypeResponse | undefined>;
46
53
  getSymbolAtPosition(snapshot: string, project: string, file: string, position: number): SymbolResponse | undefined;
54
+ getSymbolAtPositionAsync(snapshot: string, project: string, file: string, position: number): Promise<SymbolResponse | undefined>;
47
55
  getTypeArguments(snapshot: string, project: string, typeHandle: string, objectFlags?: number): TypeResponse[];
56
+ getTypeArgumentsAsync(snapshot: string, project: string, typeHandle: string, objectFlags?: number): Promise<TypeResponse[]>;
48
57
  getTypeOfSymbol(snapshot: string, project: string, symbol: string): TypeResponse | undefined;
58
+ getTypeOfSymbolAsync(snapshot: string, project: string, symbol: string): Promise<TypeResponse | undefined>;
49
59
  getDeclaredTypeOfSymbol(snapshot: string, project: string, symbol: string): TypeResponse | undefined;
60
+ getDeclaredTypeOfSymbolAsync(snapshot: string, project: string, symbol: string): Promise<TypeResponse | undefined>;
50
61
  typeToString(snapshot: string, project: string, typeHandle: string, location?: string, flags?: number): string;
62
+ typeToStringAsync(snapshot: string, project: string, typeHandle: string, location?: string, flags?: number): Promise<string>;
51
63
  callJson<T>(method: string, params?: unknown): T;
64
+ callJsonAsync<T>(method: string, params?: unknown): Promise<T>;
52
65
  callBinary(method: string, params?: unknown): Uint8Array | null;
66
+ callBinaryAsync(method: string, params?: unknown): Promise<Uint8Array | null>;
53
67
  releaseHandle(handle: string): void;
68
+ releaseHandleAsync(handle: string): Promise<void>;
54
69
  close(): void;
70
+ closeAsync(): Promise<void>;
55
71
  }
56
72
  declare class CorsaVirtualDocument {
57
73
  #private;
@@ -79,7 +95,7 @@ declare class CorsaDistributedOrchestrator {
79
95
  closeVirtualDocument(uri: string): void;
80
96
  private requireLeader;
81
97
  }
82
- declare const version: typeof ___index_js0.version;
98
+ declare const version: typeof _$___index_js0.version;
83
99
  //#endregion
84
100
  export { ApiClientOptions, ApiMode, CapabilitiesResponse, ConfigResponse, CorsaApiClient, CorsaApiClient as TsgoApiClient, CorsaDistributedOrchestrator, CorsaDistributedOrchestrator as TsgoDistributedOrchestrator, CorsaVirtualDocument, CorsaVirtualDocument as TsgoVirtualDocument, DiagnosticsCapabilities, DocumentIdentifier, EditorCapabilities, FileChangeSummary, FileChanges, FileDiagnosticsResponse, InitializeResponse, NativeLintDiagnostic, NativeLintFix, NativeLintNode, NativeLintRange, NativeLintRuleMeta, NativeLintSuggestion, OverlayCapabilities, OverlayChanges, OverlayUpdate, ProjectDiagnosticsResponse, ProjectResponse, RuntimeCapabilities, SnapshotDiagnosticsResponse, SymbolResponse, TypeResponse, TypeTextKind, UnsafeTypeFlowInput, UpdateSnapshotParams, UpdateSnapshotResponse, Utils, VirtualChange, VirtualDocumentState, classifyTypeText, binding as default, isAnyLikeTypeTexts, isArrayLikeTypeTexts, isBigIntLikeTypeTexts, isErrorLikeTypeTexts, isNumberLikeTypeTexts, isPromiseLikeTypeTexts, isStringArrayLikeTypeTexts, isStringLikeTypeTexts, isUnknownLikeTypeTexts, isUnsafeAssignment, isUnsafeReturn, nativeLintRuleMetas, runNativeLintRule, splitTopLevelTypeText, splitTypeText, version };
85
101
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -77,51 +77,99 @@ var CorsaApiClient = class CorsaApiClient {
77
77
  static spawn(options) {
78
78
  return new CorsaApiClient(binding.TsgoApiClient.spawn(toJson(options)));
79
79
  }
80
+ static async spawnAsync(options) {
81
+ return new CorsaApiClient(await binding.spawnTsgoApiClientAsync(toJson(options)));
82
+ }
80
83
  initialize() {
81
84
  return fromJson(this.#inner.initializeJson());
82
85
  }
86
+ async initializeAsync() {
87
+ return fromJson(await this.#inner.initializeJsonAsync());
88
+ }
83
89
  parseConfigFile(file) {
84
90
  return fromJson(this.#inner.parseConfigFileJson(file));
85
91
  }
92
+ async parseConfigFileAsync(file) {
93
+ return fromJson(await this.#inner.parseConfigFileJsonAsync(file));
94
+ }
86
95
  updateSnapshot(params) {
87
96
  return fromJson(this.#inner.updateSnapshotJson(params ? toJson(params) : void 0));
88
97
  }
98
+ async updateSnapshotAsync(params) {
99
+ return fromJson(await this.#inner.updateSnapshotJsonAsync(params ? toJson(params) : void 0));
100
+ }
89
101
  getSourceFile(snapshot, project, file) {
90
102
  return this.#inner.getSourceFile(snapshot, project, file) ?? null;
91
103
  }
104
+ async getSourceFileAsync(snapshot, project, file) {
105
+ return await this.#inner.getSourceFileAsync(snapshot, project, file) ?? null;
106
+ }
92
107
  getStringType(snapshot, project) {
93
108
  return fromJson(this.#inner.getStringTypeJson(snapshot, project));
94
109
  }
110
+ async getStringTypeAsync(snapshot, project) {
111
+ return fromJson(await this.#inner.getStringTypeJsonAsync(snapshot, project));
112
+ }
95
113
  getTypeAtPosition(snapshot, project, file, position) {
96
114
  return fromJson(this.#inner.getTypeAtPositionJson(snapshot, project, file, position)) ?? void 0;
97
115
  }
116
+ async getTypeAtPositionAsync(snapshot, project, file, position) {
117
+ return fromJson(await this.#inner.getTypeAtPositionJsonAsync(snapshot, project, file, position)) ?? void 0;
118
+ }
98
119
  getSymbolAtPosition(snapshot, project, file, position) {
99
120
  return fromJson(this.#inner.getSymbolAtPositionJson(snapshot, project, file, position)) ?? void 0;
100
121
  }
122
+ async getSymbolAtPositionAsync(snapshot, project, file, position) {
123
+ return fromJson(await this.#inner.getSymbolAtPositionJsonAsync(snapshot, project, file, position)) ?? void 0;
124
+ }
101
125
  getTypeArguments(snapshot, project, typeHandle, objectFlags) {
102
126
  return fromJson(this.#inner.getTypeArgumentsJson(snapshot, project, typeHandle, objectFlags));
103
127
  }
128
+ async getTypeArgumentsAsync(snapshot, project, typeHandle, objectFlags) {
129
+ return fromJson(await this.#inner.getTypeArgumentsJsonAsync(snapshot, project, typeHandle, objectFlags));
130
+ }
104
131
  getTypeOfSymbol(snapshot, project, symbol) {
105
132
  return fromJson(this.#inner.getTypeOfSymbolJson(snapshot, project, symbol)) ?? void 0;
106
133
  }
134
+ async getTypeOfSymbolAsync(snapshot, project, symbol) {
135
+ return fromJson(await this.#inner.getTypeOfSymbolJsonAsync(snapshot, project, symbol)) ?? void 0;
136
+ }
107
137
  getDeclaredTypeOfSymbol(snapshot, project, symbol) {
108
138
  return fromJson(this.#inner.getDeclaredTypeOfSymbolJson(snapshot, project, symbol)) ?? void 0;
109
139
  }
140
+ async getDeclaredTypeOfSymbolAsync(snapshot, project, symbol) {
141
+ return fromJson(await this.#inner.getDeclaredTypeOfSymbolJsonAsync(snapshot, project, symbol)) ?? void 0;
142
+ }
110
143
  typeToString(snapshot, project, typeHandle, location, flags) {
111
144
  return this.#inner.typeToString(snapshot, project, typeHandle, location, flags);
112
145
  }
146
+ async typeToStringAsync(snapshot, project, typeHandle, location, flags) {
147
+ return this.#inner.typeToStringAsync(snapshot, project, typeHandle, location, flags);
148
+ }
113
149
  callJson(method, params) {
114
150
  return fromJson(this.#inner.callJson(method, params ? toJson(params) : void 0));
115
151
  }
152
+ async callJsonAsync(method, params) {
153
+ return fromJson(await this.#inner.callJsonAsync(method, params ? toJson(params) : void 0));
154
+ }
116
155
  callBinary(method, params) {
117
156
  return this.#inner.callBinary(method, params ? toJson(params) : void 0) ?? null;
118
157
  }
158
+ async callBinaryAsync(method, params) {
159
+ return await this.#inner.callBinaryAsync(method, params ? toJson(params) : void 0) ?? null;
160
+ }
119
161
  releaseHandle(handle) {
120
162
  this.#inner.releaseHandle(handle);
121
163
  }
164
+ async releaseHandleAsync(handle) {
165
+ await this.#inner.releaseHandleAsync(handle);
166
+ }
122
167
  close() {
123
168
  this.#inner.close();
124
169
  }
170
+ async closeAsync() {
171
+ await this.#inner.closeAsync();
172
+ }
125
173
  };
126
174
  var CorsaVirtualDocument = class CorsaVirtualDocument {
127
175
  #inner;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["#inner"],"sources":["../ts/index.ts"],"sourcesContent":["import * as nativeModule from \"../index.js\";\n\nimport type {\n ApiClientOptions,\n ConfigResponse,\n InitializeResponse,\n NativeLintDiagnostic,\n NativeLintNode,\n NativeLintRuleMeta,\n SymbolResponse,\n TypeTextKind,\n TypeResponse,\n UnsafeTypeFlowInput,\n UpdateSnapshotParams,\n UpdateSnapshotResponse,\n VirtualChange,\n VirtualDocumentState,\n} from \"./types\";\n\nconst binding = (\n \"default\" in nativeModule ? nativeModule.default : nativeModule\n) as typeof import(\"../index.js\");\n\ntype NativeApiClient = InstanceType<typeof binding.TsgoApiClient>;\ntype NativeDistributedOrchestrator = InstanceType<typeof binding.TsgoDistributedOrchestrator>;\ntype NativeVirtualDocument = InstanceType<typeof binding.TsgoVirtualDocument>;\n\nfunction fromJson<T>(value: string): T {\n return JSON.parse(value) as T;\n}\n\nfunction toJson(value: unknown): string {\n return JSON.stringify(value ?? null);\n}\n\nexport function isUnsafeAssignment(input: UnsafeTypeFlowInput): boolean {\n return binding.isUnsafeAssignment(toJson(input));\n}\n\nexport function isUnsafeReturn(input: UnsafeTypeFlowInput): boolean {\n return binding.isUnsafeReturn(toJson(input));\n}\n\nexport function runNativeLintRule(ruleName: string, node: NativeLintNode): NativeLintDiagnostic[] {\n return fromJson(binding.runNativeLintRule(ruleName, toJson(node)));\n}\n\nexport function nativeLintRuleMetas(): NativeLintRuleMeta[] {\n return fromJson(binding.nativeLintRuleMetasJson());\n}\n\nexport function classifyTypeText(text?: string): TypeTextKind {\n return binding.classifyTypeText(text) as TypeTextKind;\n}\n\nexport function splitTopLevelTypeText(text: string, delimiter: string): string[] {\n return binding.splitTopLevelTypeText(text, delimiter);\n}\n\nexport function splitTypeText(text: string): string[] {\n return binding.splitTypeText(text);\n}\n\nexport function isStringLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isStringLikeTypeTexts([...typeTexts]);\n}\n\nexport function isNumberLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isNumberLikeTypeTexts([...typeTexts]);\n}\n\nexport function isBigIntLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isBigIntLikeTypeTexts([...typeTexts]);\n}\n\nexport function isAnyLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isAnyLikeTypeTexts([...typeTexts]);\n}\n\nexport function isUnknownLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isUnknownLikeTypeTexts([...typeTexts]);\n}\n\nexport function isArrayLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isArrayLikeTypeTexts([...typeTexts]);\n}\n\nexport function isStringArrayLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isStringArrayLikeTypeTexts([...typeTexts]);\n}\n\nexport function isPromiseLikeTypeTexts(\n typeTexts: readonly string[],\n propertyNames: readonly string[] = [],\n): boolean {\n return binding.isPromiseLikeTypeTexts([...typeTexts], [...propertyNames]);\n}\n\nexport function isErrorLikeTypeTexts(\n typeTexts: readonly string[],\n propertyNames: readonly string[] = [],\n): boolean {\n return binding.isErrorLikeTypeTexts([...typeTexts], [...propertyNames]);\n}\n\nexport const Utils = Object.freeze({\n classifyTypeText,\n splitTopLevelTypeText,\n splitTypeText,\n isStringLikeTypeTexts,\n isNumberLikeTypeTexts,\n isBigIntLikeTypeTexts,\n isAnyLikeTypeTexts,\n isUnknownLikeTypeTexts,\n isArrayLikeTypeTexts,\n isStringArrayLikeTypeTexts,\n isPromiseLikeTypeTexts,\n isErrorLikeTypeTexts,\n});\n\nexport class CorsaApiClient {\n readonly #inner: NativeApiClient;\n\n private constructor(inner: NativeApiClient) {\n this.#inner = inner;\n }\n\n static spawn(options: ApiClientOptions): CorsaApiClient {\n return new CorsaApiClient(binding.TsgoApiClient.spawn(toJson(options)));\n }\n\n initialize(): InitializeResponse {\n return fromJson(this.#inner.initializeJson());\n }\n\n parseConfigFile(file: string): ConfigResponse {\n return fromJson(this.#inner.parseConfigFileJson(file));\n }\n\n updateSnapshot(params?: UpdateSnapshotParams): UpdateSnapshotResponse {\n return fromJson(this.#inner.updateSnapshotJson(params ? toJson(params) : undefined));\n }\n\n getSourceFile(snapshot: string, project: string, file: string): Uint8Array | null {\n return this.#inner.getSourceFile(snapshot, project, file) ?? null;\n }\n\n getStringType(snapshot: string, project: string): TypeResponse {\n return fromJson(this.#inner.getStringTypeJson(snapshot, project));\n }\n\n getTypeAtPosition(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(\n this.#inner.getTypeAtPositionJson(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n getSymbolAtPosition(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): SymbolResponse | undefined {\n return (\n fromJson<SymbolResponse | null>(\n this.#inner.getSymbolAtPositionJson(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n getTypeArguments(\n snapshot: string,\n project: string,\n typeHandle: string,\n objectFlags?: number,\n ): TypeResponse[] {\n return fromJson(this.#inner.getTypeArgumentsJson(snapshot, project, typeHandle, objectFlags));\n }\n\n getTypeOfSymbol(snapshot: string, project: string, symbol: string): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(this.#inner.getTypeOfSymbolJson(snapshot, project, symbol)) ??\n undefined\n );\n }\n\n getDeclaredTypeOfSymbol(\n snapshot: string,\n project: string,\n symbol: string,\n ): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(\n this.#inner.getDeclaredTypeOfSymbolJson(snapshot, project, symbol),\n ) ?? undefined\n );\n }\n\n typeToString(\n snapshot: string,\n project: string,\n typeHandle: string,\n location?: string,\n flags?: number,\n ): string {\n return this.#inner.typeToString(snapshot, project, typeHandle, location, flags);\n }\n\n callJson<T>(method: string, params?: unknown): T {\n return fromJson(this.#inner.callJson(method, params ? toJson(params) : undefined));\n }\n\n callBinary(method: string, params?: unknown): Uint8Array | null {\n return this.#inner.callBinary(method, params ? toJson(params) : undefined) ?? null;\n }\n\n releaseHandle(handle: string): void {\n this.#inner.releaseHandle(handle);\n }\n\n close(): void {\n this.#inner.close();\n }\n}\n\nexport class CorsaVirtualDocument {\n readonly #inner: NativeVirtualDocument;\n\n private constructor(inner: NativeVirtualDocument) {\n this.#inner = inner;\n }\n\n static untitled(path: string, languageId: string, text: string): CorsaVirtualDocument {\n return new CorsaVirtualDocument(binding.TsgoVirtualDocument.untitled(path, languageId, text));\n }\n\n static inMemory(\n authority: string,\n path: string,\n languageId: string,\n text: string,\n ): CorsaVirtualDocument {\n return new CorsaVirtualDocument(\n binding.TsgoVirtualDocument.inMemory(authority, path, languageId, text),\n );\n }\n\n get uri(): string {\n return this.#inner.uri;\n }\n\n get languageId(): string {\n return this.#inner.languageId;\n }\n\n get version(): number {\n return this.#inner.version;\n }\n\n get text(): string {\n return this.#inner.text;\n }\n\n state(): VirtualDocumentState {\n return fromJson(this.#inner.stateJson());\n }\n\n replace(text: string): void {\n this.#inner.replace(text);\n }\n\n applyChanges(changes: VirtualChange[]): unknown[] {\n return fromJson(this.#inner.applyChangesJson(toJson(changes)));\n }\n}\n\nexport class CorsaDistributedOrchestrator {\n readonly #inner: NativeDistributedOrchestrator;\n\n constructor(nodeIds: string[]) {\n this.#inner = new binding.TsgoDistributedOrchestrator(nodeIds);\n }\n\n campaign(nodeId: string): number {\n return this.#inner.campaign(nodeId);\n }\n\n leaderId(): string | undefined {\n return this.#inner.leaderId() ?? undefined;\n }\n\n state<T>(): T | undefined {\n const value = this.#inner.stateJson();\n return value ? fromJson<T>(value) : undefined;\n }\n\n nodeState<T>(nodeId: string): T | undefined {\n const value = this.#inner.nodeStateJson(nodeId);\n return value ? fromJson<T>(value) : undefined;\n }\n\n document(nodeId: string, uri: string): VirtualDocumentState | undefined {\n const value = this.#inner.documentJson(nodeId, uri);\n return value ? fromJson<VirtualDocumentState>(value) : undefined;\n }\n\n openVirtualDocument(document: VirtualDocumentState): VirtualDocumentState {\n return fromJson(this.#inner.openVirtualDocumentJson(this.requireLeader(), toJson(document)));\n }\n\n changeVirtualDocument(uri: string, changes: VirtualChange[]): VirtualDocumentState {\n return fromJson(\n this.#inner.changeVirtualDocumentJson(this.requireLeader(), uri, toJson(changes)),\n );\n }\n\n closeVirtualDocument(uri: string): void {\n this.#inner.closeVirtualDocument(this.requireLeader(), uri);\n }\n\n private requireLeader(): string {\n const leaderId = this.leaderId();\n if (!leaderId) {\n throw new Error(\"raft leader has not been elected\");\n }\n return leaderId;\n }\n}\n\nexport {\n CorsaApiClient as TsgoApiClient,\n CorsaDistributedOrchestrator as TsgoDistributedOrchestrator,\n CorsaVirtualDocument as TsgoVirtualDocument,\n};\n\nexport default binding;\nexport const version = binding.version;\nexport type * from \"./types\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["#inner"],"sources":["../ts/index.ts"],"sourcesContent":["import * as nativeModule from \"../index.js\";\n\nimport type {\n ApiClientOptions,\n ConfigResponse,\n InitializeResponse,\n NativeLintDiagnostic,\n NativeLintNode,\n NativeLintRuleMeta,\n SymbolResponse,\n TypeTextKind,\n TypeResponse,\n UnsafeTypeFlowInput,\n UpdateSnapshotParams,\n UpdateSnapshotResponse,\n VirtualChange,\n VirtualDocumentState,\n} from \"./types\";\n\nconst binding = (\n \"default\" in nativeModule ? nativeModule.default : nativeModule\n) as typeof import(\"../index.js\");\n\ntype NativeApiClient = InstanceType<typeof binding.TsgoApiClient>;\ntype NativeDistributedOrchestrator = InstanceType<typeof binding.TsgoDistributedOrchestrator>;\ntype NativeVirtualDocument = InstanceType<typeof binding.TsgoVirtualDocument>;\n\nfunction fromJson<T>(value: string): T {\n return JSON.parse(value) as T;\n}\n\nfunction toJson(value: unknown): string {\n return JSON.stringify(value ?? null);\n}\n\nexport function isUnsafeAssignment(input: UnsafeTypeFlowInput): boolean {\n return binding.isUnsafeAssignment(toJson(input));\n}\n\nexport function isUnsafeReturn(input: UnsafeTypeFlowInput): boolean {\n return binding.isUnsafeReturn(toJson(input));\n}\n\nexport function runNativeLintRule(ruleName: string, node: NativeLintNode): NativeLintDiagnostic[] {\n return fromJson(binding.runNativeLintRule(ruleName, toJson(node)));\n}\n\nexport function nativeLintRuleMetas(): NativeLintRuleMeta[] {\n return fromJson(binding.nativeLintRuleMetasJson());\n}\n\nexport function classifyTypeText(text?: string): TypeTextKind {\n return binding.classifyTypeText(text) as TypeTextKind;\n}\n\nexport function splitTopLevelTypeText(text: string, delimiter: string): string[] {\n return binding.splitTopLevelTypeText(text, delimiter);\n}\n\nexport function splitTypeText(text: string): string[] {\n return binding.splitTypeText(text);\n}\n\nexport function isStringLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isStringLikeTypeTexts([...typeTexts]);\n}\n\nexport function isNumberLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isNumberLikeTypeTexts([...typeTexts]);\n}\n\nexport function isBigIntLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isBigIntLikeTypeTexts([...typeTexts]);\n}\n\nexport function isAnyLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isAnyLikeTypeTexts([...typeTexts]);\n}\n\nexport function isUnknownLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isUnknownLikeTypeTexts([...typeTexts]);\n}\n\nexport function isArrayLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isArrayLikeTypeTexts([...typeTexts]);\n}\n\nexport function isStringArrayLikeTypeTexts(typeTexts: readonly string[]): boolean {\n return binding.isStringArrayLikeTypeTexts([...typeTexts]);\n}\n\nexport function isPromiseLikeTypeTexts(\n typeTexts: readonly string[],\n propertyNames: readonly string[] = [],\n): boolean {\n return binding.isPromiseLikeTypeTexts([...typeTexts], [...propertyNames]);\n}\n\nexport function isErrorLikeTypeTexts(\n typeTexts: readonly string[],\n propertyNames: readonly string[] = [],\n): boolean {\n return binding.isErrorLikeTypeTexts([...typeTexts], [...propertyNames]);\n}\n\nexport const Utils = Object.freeze({\n classifyTypeText,\n splitTopLevelTypeText,\n splitTypeText,\n isStringLikeTypeTexts,\n isNumberLikeTypeTexts,\n isBigIntLikeTypeTexts,\n isAnyLikeTypeTexts,\n isUnknownLikeTypeTexts,\n isArrayLikeTypeTexts,\n isStringArrayLikeTypeTexts,\n isPromiseLikeTypeTexts,\n isErrorLikeTypeTexts,\n});\n\nexport class CorsaApiClient {\n readonly #inner: NativeApiClient;\n\n private constructor(inner: NativeApiClient) {\n this.#inner = inner;\n }\n\n static spawn(options: ApiClientOptions): CorsaApiClient {\n return new CorsaApiClient(binding.TsgoApiClient.spawn(toJson(options)));\n }\n\n static async spawnAsync(options: ApiClientOptions): Promise<CorsaApiClient> {\n return new CorsaApiClient(await binding.spawnTsgoApiClientAsync(toJson(options)));\n }\n\n initialize(): InitializeResponse {\n return fromJson(this.#inner.initializeJson());\n }\n\n async initializeAsync(): Promise<InitializeResponse> {\n return fromJson(await this.#inner.initializeJsonAsync());\n }\n\n parseConfigFile(file: string): ConfigResponse {\n return fromJson(this.#inner.parseConfigFileJson(file));\n }\n\n async parseConfigFileAsync(file: string): Promise<ConfigResponse> {\n return fromJson(await this.#inner.parseConfigFileJsonAsync(file));\n }\n\n updateSnapshot(params?: UpdateSnapshotParams): UpdateSnapshotResponse {\n return fromJson(this.#inner.updateSnapshotJson(params ? toJson(params) : undefined));\n }\n\n async updateSnapshotAsync(params?: UpdateSnapshotParams): Promise<UpdateSnapshotResponse> {\n return fromJson(await this.#inner.updateSnapshotJsonAsync(params ? toJson(params) : undefined));\n }\n\n getSourceFile(snapshot: string, project: string, file: string): Uint8Array | null {\n return this.#inner.getSourceFile(snapshot, project, file) ?? null;\n }\n\n async getSourceFileAsync(\n snapshot: string,\n project: string,\n file: string,\n ): Promise<Uint8Array | null> {\n return (await this.#inner.getSourceFileAsync(snapshot, project, file)) ?? null;\n }\n\n getStringType(snapshot: string, project: string): TypeResponse {\n return fromJson(this.#inner.getStringTypeJson(snapshot, project));\n }\n\n async getStringTypeAsync(snapshot: string, project: string): Promise<TypeResponse> {\n return fromJson(await this.#inner.getStringTypeJsonAsync(snapshot, project));\n }\n\n getTypeAtPosition(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(\n this.#inner.getTypeAtPositionJson(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n async getTypeAtPositionAsync(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): Promise<TypeResponse | undefined> {\n return (\n fromJson<TypeResponse | null>(\n await this.#inner.getTypeAtPositionJsonAsync(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n getSymbolAtPosition(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): SymbolResponse | undefined {\n return (\n fromJson<SymbolResponse | null>(\n this.#inner.getSymbolAtPositionJson(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n async getSymbolAtPositionAsync(\n snapshot: string,\n project: string,\n file: string,\n position: number,\n ): Promise<SymbolResponse | undefined> {\n return (\n fromJson<SymbolResponse | null>(\n await this.#inner.getSymbolAtPositionJsonAsync(snapshot, project, file, position),\n ) ?? undefined\n );\n }\n\n getTypeArguments(\n snapshot: string,\n project: string,\n typeHandle: string,\n objectFlags?: number,\n ): TypeResponse[] {\n return fromJson(this.#inner.getTypeArgumentsJson(snapshot, project, typeHandle, objectFlags));\n }\n\n async getTypeArgumentsAsync(\n snapshot: string,\n project: string,\n typeHandle: string,\n objectFlags?: number,\n ): Promise<TypeResponse[]> {\n return fromJson(\n await this.#inner.getTypeArgumentsJsonAsync(snapshot, project, typeHandle, objectFlags),\n );\n }\n\n getTypeOfSymbol(snapshot: string, project: string, symbol: string): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(this.#inner.getTypeOfSymbolJson(snapshot, project, symbol)) ??\n undefined\n );\n }\n\n async getTypeOfSymbolAsync(\n snapshot: string,\n project: string,\n symbol: string,\n ): Promise<TypeResponse | undefined> {\n return (\n fromJson<TypeResponse | null>(\n await this.#inner.getTypeOfSymbolJsonAsync(snapshot, project, symbol),\n ) ?? undefined\n );\n }\n\n getDeclaredTypeOfSymbol(\n snapshot: string,\n project: string,\n symbol: string,\n ): TypeResponse | undefined {\n return (\n fromJson<TypeResponse | null>(\n this.#inner.getDeclaredTypeOfSymbolJson(snapshot, project, symbol),\n ) ?? undefined\n );\n }\n\n async getDeclaredTypeOfSymbolAsync(\n snapshot: string,\n project: string,\n symbol: string,\n ): Promise<TypeResponse | undefined> {\n return (\n fromJson<TypeResponse | null>(\n await this.#inner.getDeclaredTypeOfSymbolJsonAsync(snapshot, project, symbol),\n ) ?? undefined\n );\n }\n\n typeToString(\n snapshot: string,\n project: string,\n typeHandle: string,\n location?: string,\n flags?: number,\n ): string {\n return this.#inner.typeToString(snapshot, project, typeHandle, location, flags);\n }\n\n async typeToStringAsync(\n snapshot: string,\n project: string,\n typeHandle: string,\n location?: string,\n flags?: number,\n ): Promise<string> {\n return this.#inner.typeToStringAsync(snapshot, project, typeHandle, location, flags);\n }\n\n callJson<T>(method: string, params?: unknown): T {\n return fromJson(this.#inner.callJson(method, params ? toJson(params) : undefined));\n }\n\n async callJsonAsync<T>(method: string, params?: unknown): Promise<T> {\n return fromJson(await this.#inner.callJsonAsync(method, params ? toJson(params) : undefined));\n }\n\n callBinary(method: string, params?: unknown): Uint8Array | null {\n return this.#inner.callBinary(method, params ? toJson(params) : undefined) ?? null;\n }\n\n async callBinaryAsync(method: string, params?: unknown): Promise<Uint8Array | null> {\n return (await this.#inner.callBinaryAsync(method, params ? toJson(params) : undefined)) ?? null;\n }\n\n releaseHandle(handle: string): void {\n this.#inner.releaseHandle(handle);\n }\n\n async releaseHandleAsync(handle: string): Promise<void> {\n await this.#inner.releaseHandleAsync(handle);\n }\n\n close(): void {\n this.#inner.close();\n }\n\n async closeAsync(): Promise<void> {\n await this.#inner.closeAsync();\n }\n}\n\nexport class CorsaVirtualDocument {\n readonly #inner: NativeVirtualDocument;\n\n private constructor(inner: NativeVirtualDocument) {\n this.#inner = inner;\n }\n\n static untitled(path: string, languageId: string, text: string): CorsaVirtualDocument {\n return new CorsaVirtualDocument(binding.TsgoVirtualDocument.untitled(path, languageId, text));\n }\n\n static inMemory(\n authority: string,\n path: string,\n languageId: string,\n text: string,\n ): CorsaVirtualDocument {\n return new CorsaVirtualDocument(\n binding.TsgoVirtualDocument.inMemory(authority, path, languageId, text),\n );\n }\n\n get uri(): string {\n return this.#inner.uri;\n }\n\n get languageId(): string {\n return this.#inner.languageId;\n }\n\n get version(): number {\n return this.#inner.version;\n }\n\n get text(): string {\n return this.#inner.text;\n }\n\n state(): VirtualDocumentState {\n return fromJson(this.#inner.stateJson());\n }\n\n replace(text: string): void {\n this.#inner.replace(text);\n }\n\n applyChanges(changes: VirtualChange[]): unknown[] {\n return fromJson(this.#inner.applyChangesJson(toJson(changes)));\n }\n}\n\nexport class CorsaDistributedOrchestrator {\n readonly #inner: NativeDistributedOrchestrator;\n\n constructor(nodeIds: string[]) {\n this.#inner = new binding.TsgoDistributedOrchestrator(nodeIds);\n }\n\n campaign(nodeId: string): number {\n return this.#inner.campaign(nodeId);\n }\n\n leaderId(): string | undefined {\n return this.#inner.leaderId() ?? undefined;\n }\n\n state<T>(): T | undefined {\n const value = this.#inner.stateJson();\n return value ? fromJson<T>(value) : undefined;\n }\n\n nodeState<T>(nodeId: string): T | undefined {\n const value = this.#inner.nodeStateJson(nodeId);\n return value ? fromJson<T>(value) : undefined;\n }\n\n document(nodeId: string, uri: string): VirtualDocumentState | undefined {\n const value = this.#inner.documentJson(nodeId, uri);\n return value ? fromJson<VirtualDocumentState>(value) : undefined;\n }\n\n openVirtualDocument(document: VirtualDocumentState): VirtualDocumentState {\n return fromJson(this.#inner.openVirtualDocumentJson(this.requireLeader(), toJson(document)));\n }\n\n changeVirtualDocument(uri: string, changes: VirtualChange[]): VirtualDocumentState {\n return fromJson(\n this.#inner.changeVirtualDocumentJson(this.requireLeader(), uri, toJson(changes)),\n );\n }\n\n closeVirtualDocument(uri: string): void {\n this.#inner.closeVirtualDocument(this.requireLeader(), uri);\n }\n\n private requireLeader(): string {\n const leaderId = this.leaderId();\n if (!leaderId) {\n throw new Error(\"raft leader has not been elected\");\n }\n return leaderId;\n }\n}\n\nexport {\n CorsaApiClient as TsgoApiClient,\n CorsaDistributedOrchestrator as TsgoDistributedOrchestrator,\n CorsaVirtualDocument as TsgoVirtualDocument,\n};\n\nexport default binding;\nexport const version = binding.version;\nexport type * from \"./types\";\n"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,90 +1,64 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
-
4
1
  /* auto-generated by NAPI-RS */
5
-
6
- export declare function runNativeLintRule(ruleName: string, nodeJson: string): string
7
- export declare function nativeLintRuleMetasJson(): string
8
- export declare function isUnsafeAssignment(inputJson: string): boolean
9
- export declare function isUnsafeReturn(inputJson: string): boolean
10
- export declare function classifyTypeText(text?: string | undefined | null): string
11
- export declare function splitTopLevelTypeText(text: string, delimiter: string): Array<string>
12
- export declare function splitTypeText(text: string): Array<string>
13
- export declare function isStringLikeTypeTexts(typeTexts: Array<string>): boolean
14
- export declare function isNumberLikeTypeTexts(typeTexts: Array<string>): boolean
15
- export declare function isBigIntLikeTypeTexts(typeTexts: Array<string>): boolean
16
- export declare function isAnyLikeTypeTexts(typeTexts: Array<string>): boolean
17
- export declare function isUnknownLikeTypeTexts(typeTexts: Array<string>): boolean
18
- export declare function isArrayLikeTypeTexts(typeTexts: Array<string>): boolean
19
- export declare function isStringArrayLikeTypeTexts(typeTexts: Array<string>): boolean
20
- export declare function isPromiseLikeTypeTexts(typeTexts: Array<string>, propertyNames?: Array<string> | undefined | null): boolean
21
- export declare function isErrorLikeTypeTexts(typeTexts: Array<string>, propertyNames?: Array<string> | undefined | null): boolean
22
- /**
23
- * Returns the package version exposed by the native addon.
24
- *
25
- * # Examples
26
- *
27
- * ```
28
- * assert_eq!(corsa_node::version(), env!("CARGO_PKG_VERSION"));
29
- * ```
30
- */
31
- export declare function version(): string
2
+ /* eslint-disable */
32
3
  /** Thin synchronous wrapper around the Rust stdio API client. */
33
4
  export declare class TsgoApiClient {
34
5
  /** Spawns a new client from a JSON-encoded spawn config. */
35
6
  static spawn(optionsJson: string): TsgoApiClient
36
7
  /** Calls `initialize` and returns the raw JSON response. */
37
8
  initializeJson(): string
9
+ /** Calls `initialize` without blocking the JavaScript event loop. */
10
+ initializeJsonAsync(): Promise<string>
38
11
  /** Parses a `tsconfig` through tsgo and returns the JSON response. */
39
12
  parseConfigFileJson(file: string): string
13
+ /** Parses a `tsconfig` on a libuv worker thread. */
14
+ parseConfigFileJsonAsync(file: string): Promise<string>
40
15
  /** Applies file changes and returns a serialized snapshot record. */
41
16
  updateSnapshotJson(paramsJson?: string | undefined | null): string
17
+ /** Applies file changes on a libuv worker thread. */
18
+ updateSnapshotJsonAsync(paramsJson?: string | undefined | null): Promise<string>
42
19
  /** Fetches a source file through the binary endpoint. */
43
20
  getSourceFile(snapshot: string, project: string, file: string): Buffer | null
21
+ /** Fetches a source file on a libuv worker thread. */
22
+ getSourceFileAsync(snapshot: string, project: string, file: string): Promise<Buffer | null>
44
23
  /** Resolves the intrinsic string type for a project. */
45
24
  getStringTypeJson(snapshot: string, project: string): string
25
+ getStringTypeJsonAsync(snapshot: string, project: string): Promise<string>
46
26
  /** Resolves the checker type visible at a file position. */
47
27
  getTypeAtPositionJson(snapshot: string, project: string, file: string, position: number): string
28
+ getTypeAtPositionJsonAsync(snapshot: string, project: string, file: string, position: number): Promise<string>
48
29
  /** Resolves the checker symbol visible at a file position. */
49
30
  getSymbolAtPositionJson(snapshot: string, project: string, file: string, position: number): string
31
+ getSymbolAtPositionJsonAsync(snapshot: string, project: string, file: string, position: number): Promise<string>
50
32
  /** Resolves type arguments for type-reference objects and returns [] otherwise. */
51
33
  getTypeArgumentsJson(snapshot: string, project: string, typeHandle: string, objectFlags?: number | undefined | null): string
34
+ getTypeArgumentsJsonAsync(snapshot: string, project: string, typeHandle: string, objectFlags?: number | undefined | null): Promise<string>
52
35
  /** Resolves the apparent checker type of a symbol. */
53
36
  getTypeOfSymbolJson(snapshot: string, project: string, symbol: string): string
37
+ getTypeOfSymbolJsonAsync(snapshot: string, project: string, symbol: string): Promise<string>
54
38
  /** Resolves the declared checker type of a symbol. */
55
39
  getDeclaredTypeOfSymbolJson(snapshot: string, project: string, symbol: string): string
40
+ getDeclaredTypeOfSymbolJsonAsync(snapshot: string, project: string, symbol: string): Promise<string>
56
41
  /** Renders a type back to a string representation. */
57
42
  typeToString(snapshot: string, project: string, typeHandle: string, location?: string | undefined | null, flags?: number | undefined | null): string
43
+ typeToStringAsync(snapshot: string, project: string, typeHandle: string, location?: string | undefined | null, flags?: number | undefined | null): Promise<string>
58
44
  /** Sends an arbitrary JSON endpoint request. */
59
45
  callJson(method: string, paramsJson?: string | undefined | null): string
46
+ /** Sends an arbitrary JSON endpoint request on a libuv worker thread. */
47
+ callJsonAsync(method: string, paramsJson?: string | undefined | null): Promise<string>
60
48
  /** Sends an arbitrary binary endpoint request. */
61
49
  callBinary(method: string, paramsJson?: string | undefined | null): Buffer | null
50
+ /** Sends an arbitrary binary endpoint request on a libuv worker thread. */
51
+ callBinaryAsync(method: string, paramsJson?: string | undefined | null): Promise<Buffer | null>
62
52
  /** Releases a tsgo handle explicitly. */
63
53
  releaseHandle(handle: string): void
54
+ /** Releases a tsgo handle on a libuv worker thread. */
55
+ releaseHandleAsync(handle: string): Promise<void>
64
56
  /** Closes the underlying worker process. */
65
57
  close(): void
58
+ /** Closes the underlying worker process on a libuv worker thread. */
59
+ closeAsync(): Promise<void>
66
60
  }
67
- /** Mutable virtual document mirrored through the LSP overlay layer. */
68
- export declare class TsgoVirtualDocument {
69
- /** Creates an `untitled:` document. */
70
- static untitled(path: string, languageId: string, text: string): TsgoVirtualDocument
71
- /** Creates an in-memory `corsa://` document. */
72
- static inMemory(authority: string, path: string, languageId: string, text: string): TsgoVirtualDocument
73
- /** Returns the document URI. */
74
- get uri(): string
75
- /** Returns the language identifier. */
76
- get languageId(): string
77
- /** Returns the current version number. */
78
- get version(): number
79
- /** Returns the current full text. */
80
- get text(): string
81
- /** Serializes the full document state. */
82
- stateJson(): string
83
- /** Replaces the entire document text. */
84
- replace(text: string): void
85
- /** Applies a batch of JSON-encoded LSP changes. */
86
- applyChangesJson(changesJson: string): string
87
- }
61
+
88
62
  /** N-API wrapper for the distributed orchestration layer. */
89
63
  export declare class TsgoDistributedOrchestrator {
90
64
  /** Creates a new in-process Raft cluster. */
@@ -106,3 +80,71 @@ export declare class TsgoDistributedOrchestrator {
106
80
  /** Removes a replicated document. */
107
81
  closeVirtualDocument(leaderId: string, uri: string): void
108
82
  }
83
+
84
+ /** Mutable virtual document mirrored through the LSP overlay layer. */
85
+ export declare class TsgoVirtualDocument {
86
+ /** Creates an `untitled:` document. */
87
+ static untitled(path: string, languageId: string, text: string): TsgoVirtualDocument
88
+ /** Creates an in-memory `corsa://` document. */
89
+ static inMemory(authority: string, path: string, languageId: string, text: string): TsgoVirtualDocument
90
+ /** Returns the document URI. */
91
+ get uri(): string
92
+ /** Returns the language identifier. */
93
+ get languageId(): string
94
+ /** Returns the current version number. */
95
+ get version(): number
96
+ /** Returns the current full text. */
97
+ get text(): string
98
+ /** Serializes the full document state. */
99
+ stateJson(): string
100
+ /** Replaces the entire document text. */
101
+ replace(text: string): void
102
+ /** Applies a batch of JSON-encoded LSP changes. */
103
+ applyChangesJson(changesJson: string): string
104
+ }
105
+
106
+ export declare function classifyTypeText(text?: string | undefined | null): string
107
+
108
+ export declare function isAnyLikeTypeTexts(typeTexts: Array<string>): boolean
109
+
110
+ export declare function isArrayLikeTypeTexts(typeTexts: Array<string>): boolean
111
+
112
+ export declare function isBigIntLikeTypeTexts(typeTexts: Array<string>): boolean
113
+
114
+ export declare function isErrorLikeTypeTexts(typeTexts: Array<string>, propertyNames?: Array<string> | undefined | null): boolean
115
+
116
+ export declare function isNumberLikeTypeTexts(typeTexts: Array<string>): boolean
117
+
118
+ export declare function isPromiseLikeTypeTexts(typeTexts: Array<string>, propertyNames?: Array<string> | undefined | null): boolean
119
+
120
+ export declare function isStringArrayLikeTypeTexts(typeTexts: Array<string>): boolean
121
+
122
+ export declare function isStringLikeTypeTexts(typeTexts: Array<string>): boolean
123
+
124
+ export declare function isUnknownLikeTypeTexts(typeTexts: Array<string>): boolean
125
+
126
+ export declare function isUnsafeAssignment(inputJson: string): boolean
127
+
128
+ export declare function isUnsafeReturn(inputJson: string): boolean
129
+
130
+ export declare function nativeLintRuleMetasJson(): string
131
+
132
+ export declare function runNativeLintRule(ruleName: string, nodeJson: string): string
133
+
134
+ /** Spawns a new client on a libuv worker thread. */
135
+ export declare function spawnTsgoApiClientAsync(optionsJson: string): Promise<TsgoApiClient>
136
+
137
+ export declare function splitTopLevelTypeText(text: string, delimiter: string): Array<string>
138
+
139
+ export declare function splitTypeText(text: string): Array<string>
140
+
141
+ /**
142
+ * Returns the package version exposed by the native addon.
143
+ *
144
+ * # Examples
145
+ *
146
+ * ```
147
+ * assert_eq!(corsa_node::version(), env!("CARGO_PKG_VERSION"));
148
+ * ```
149
+ */
150
+ export declare function version(): string