@azerothjs/language-server 0.4.0-beta.2 → 0.4.0-beta.3

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
@@ -51,8 +51,38 @@ owns code emit), meant to run in CI and pre-commit beside `tsc`:
51
51
  ```sh
52
52
  npx azeroth-tsc # check every .azeroth file under the cwd
53
53
  npx azeroth-tsc -p tsconfig.json
54
+ npx azeroth-tsc --watch # re-check on every .azeroth change (alias: -w)
54
55
  ```
55
56
 
57
+ #### Build wiring
58
+
59
+ `azeroth-tsc` checks `.azeroth`; `tsc` checks the surrounding `.ts`. Run both
60
+ before bundling - the canonical consumer build is:
61
+
62
+ ```jsonc
63
+ // package.json
64
+ {
65
+ "scripts": {
66
+ "build": "tsc --noEmit && azeroth-tsc && vite build",
67
+ "typecheck": "tsc --noEmit && azeroth-tsc",
68
+ "dev:check": "azeroth-tsc --watch"
69
+ }
70
+ }
71
+ ```
72
+
73
+ With `@azerothjs/typescript-plugin` in the editor, `.ts` files importing
74
+ `.azeroth` already get real types live; `azeroth-tsc` provides the matching gate
75
+ on the command line and in CI.
76
+
77
+ #### Follow-up: a single combined checker
78
+
79
+ Today `tsc` and `azeroth-tsc` are two passes. A single `vue-tsc`-style binary
80
+ that builds one program over `.ts` + `.azeroth` together (so a `.ts` barrel
81
+ importing `.azeroth` is checked in the same run, without the editor plugin) is a
82
+ tracked follow-up; the building block - presenting each `.azeroth` as its virtual
83
+ TypeScript twin - is already shared by the language service and the
84
+ typescript-plugin.
85
+
56
86
  ### Settings
57
87
 
58
88
  On initialization the server reads `initializationOptions` and, when the client
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { startServer } from './server.ts';
2
- export { runTsc, parseArgs, type TscOptions, type TscResult } from './tsc.ts';
2
+ export { runTsc, watchTsc, parseArgs, type TscOptions, type TscResult, type TscWatcher } from './tsc.ts';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -5,5 +5,5 @@
5
5
  // re-exports it so the server can also be embedded (e.g. in a web worker host
6
6
  // or an integration test that drives it through an in-memory connection).
7
7
  export { startServer } from "./server.js";
8
- export { runTsc, parseArgs } from "./tsc.js";
8
+ export { runTsc, watchTsc, parseArgs } from "./tsc.js";
9
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,0EAA0E;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAmC,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,0EAA0E;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAoD,MAAM,UAAU,CAAC"}
package/dist/tsc-cli.js CHANGED
@@ -3,7 +3,15 @@
3
3
  // non-zero when any `.azeroth` file has an error, so it drops into CI and
4
4
  // pre-commit the same way `tsc --noEmit` does. All behaviour lives in the
5
5
  // testable `runTsc`.
6
- import { runTsc, parseArgs } from "./tsc.js";
7
- const { errorCount } = runTsc(parseArgs(process.argv.slice(2)));
8
- process.exit(errorCount > 0 ? 1 : 0);
6
+ import { runTsc, watchTsc, parseArgs } from "./tsc.js";
7
+ const options = parseArgs(process.argv.slice(2));
8
+ if (options.watch) {
9
+ // The fs watcher keeps the event loop alive; the process stays up until the
10
+ // user interrupts it. Errors are reported each pass but don't exit the loop.
11
+ watchTsc(options);
12
+ }
13
+ else {
14
+ const { errorCount } = runTsc(options);
15
+ process.exit(errorCount > 0 ? 1 : 0);
16
+ }
9
17
  //# sourceMappingURL=tsc-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsc-cli.js","sourceRoot":"","sources":["../src/tsc-cli.ts"],"names":[],"mappings":";AACA,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,qBAAqB;AAErB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tsc-cli.js","sourceRoot":"","sources":["../src/tsc-cli.ts"],"names":[],"mappings":";AACA,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,qBAAqB;AAErB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjD,IAAI,OAAO,CAAC,KAAK,EACjB,CAAC;IACG,4EAA4E;IAC5E,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;KAED,CAAC;IACG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
package/dist/tsc.d.ts CHANGED
@@ -4,9 +4,18 @@ export interface TscOptions {
4
4
  cwd?: string;
5
5
  /** Explicit tsconfig path; otherwise the nearest one is used. */
6
6
  project?: string;
7
+ /** Re-check on every `.azeroth` change instead of running once. */
8
+ watch?: boolean;
7
9
  /** Sink for formatted output (default: stdout). */
8
10
  write?: (text: string) => void;
9
11
  }
12
+ /** A running watch session. */
13
+ export interface TscWatcher {
14
+ /** Runs one full check pass now (re-reading files from disk). */
15
+ recheck: () => TscResult;
16
+ /** Stops watching and releases the file-system watcher. */
17
+ close: () => void;
18
+ }
10
19
  /** Outcome of a check run. */
11
20
  export interface TscResult {
12
21
  /** Number of `.azeroth` files checked. */
@@ -28,4 +37,20 @@ export declare function parseArgs(argv: string[]): TscOptions;
28
37
  * ```
29
38
  */
30
39
  export declare function runTsc(options?: TscOptions): TscResult;
40
+ /**
41
+ * Runs an initial check, then re-checks whenever a `.azeroth` file under `cwd`
42
+ * changes. A single language service is reused across passes (each pass re-reads
43
+ * changed files from disk and bumps their version), so unchanged files and the
44
+ * lib/node_modules program are not re-parsed every time. Returns a handle:
45
+ * `recheck()` forces a pass (used by tests and the file watcher); `close()`
46
+ * stops watching. The returned watcher keeps the process alive via the
47
+ * underlying fs watcher.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const w = watchTsc({ cwd: 'app' }); // checks now, then on every change
52
+ * // ... later: w.close();
53
+ * ```
54
+ */
55
+ export declare function watchTsc(options?: TscOptions): TscWatcher;
31
56
  //# sourceMappingURL=tsc.d.ts.map
package/dist/tsc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../src/tsc.ts"],"names":[],"mappings":"AAcA,8CAA8C;AAC9C,MAAM,WAAW,UAAU;IAEvB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IAEtB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoBpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,UAAe,GAAG,SAAS,CAiD1D"}
1
+ {"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../src/tsc.ts"],"names":[],"mappings":"AAeA,8CAA8C;AAC9C,MAAM,WAAW,UAAU;IAEvB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mDAAmD;IACnD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,+BAA+B;AAC/B,MAAM,WAAW,UAAU;IAEvB,iEAAiE;IACjE,OAAO,EAAE,MAAM,SAAS,CAAC;IAEzB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IAEtB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAwBpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,UAAe,GAAG,SAAS,CAU1D;AAoFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU,CAuE7D"}
package/dist/tsc.js CHANGED
@@ -8,6 +8,7 @@
8
8
  // Scope: this reports type errors in `.azeroth` files. It does not emit `.js`
9
9
  // (the Vite plugin / compiler does that) - like `tsc --noEmit`, it is a gate.
10
10
  import path from 'node:path';
11
+ import { watch as fsWatch } from 'node:fs';
11
12
  import ts from 'typescript';
12
13
  import { AzerothLanguageService, pathToUri, DiagnosticSeverity } from '@azerothjs/language-service';
13
14
  /** Parses the argv subset this CLI understands into {@link TscOptions}. */
@@ -21,6 +22,9 @@ export function parseArgs(argv) {
21
22
  else if (arg.startsWith('--project=')) {
22
23
  options.project = arg.slice('--project='.length);
23
24
  }
25
+ else if (arg === '--watch' || arg === '-w') {
26
+ options.watch = true;
27
+ }
24
28
  else if (!arg.startsWith('-')) {
25
29
  options.cwd = arg;
26
30
  }
@@ -43,8 +47,25 @@ export function runTsc(options = {}) {
43
47
  const write = options.write ?? ((text) => {
44
48
  process.stdout.write(text);
45
49
  });
46
- const files = ts.sys.readDirectory(cwd, ['.azeroth'], ['**/node_modules/**', '**/dist/**', '**/.git/**'], ['**/*.azeroth']);
47
50
  const service = new AzerothLanguageService(cwd, options.project);
51
+ return checkPass(service, cwd, write, new Set());
52
+ }
53
+ /**
54
+ * Runs one diagnostic pass over every `.azeroth` file under `cwd` using the
55
+ * given (possibly long-lived) service. `open` tracks which document URIs were
56
+ * open after the previous pass so files deleted since then are closed - this is
57
+ * what lets a single service be reused across watch passes without leaking
58
+ * stale documents. On return, `open` holds exactly the URIs seen this pass.
59
+ */
60
+ function checkPass(service, cwd, write, open) {
61
+ const files = ts.sys.readDirectory(cwd, ['.azeroth'], ['**/node_modules/**', '**/dist/**', '**/.git/**'], ['**/*.azeroth']);
62
+ // On a reused service (watch), a file created or deleted since the last pass
63
+ // changes the program's root set; refresh discovery so cross-file resolution
64
+ // stays correct. Skipped on the first pass - the constructor just discovered.
65
+ if (open.size > 0 && files.length !== open.size) {
66
+ service.refreshWorkspace();
67
+ }
68
+ const seen = new Set();
48
69
  let errorCount = 0;
49
70
  for (const file of files) {
50
71
  const source = ts.sys.readFile(file);
@@ -52,7 +73,10 @@ export function runTsc(options = {}) {
52
73
  continue;
53
74
  }
54
75
  const uri = pathToUri(file);
55
- service.didOpen(uri, source);
76
+ seen.add(uri);
77
+ // didChange opens-or-updates: it bumps the version and invalidates just
78
+ // this file's virtual cache, so the reused service always reflects disk.
79
+ service.didChange(uri, source);
56
80
  for (const diag of service.getDiagnostics(uri)) {
57
81
  const isError = diag.severity === DiagnosticSeverity.Error;
58
82
  if (isError) {
@@ -61,6 +85,16 @@ export function runTsc(options = {}) {
61
85
  write(formatDiagnostic(cwd, file, diag, isError) + '\n');
62
86
  }
63
87
  }
88
+ // Drop documents whose files vanished since the previous pass.
89
+ for (const uri of open) {
90
+ if (!seen.has(uri)) {
91
+ service.didClose(uri);
92
+ }
93
+ }
94
+ open.clear();
95
+ for (const uri of seen) {
96
+ open.add(uri);
97
+ }
64
98
  if (errorCount === 0) {
65
99
  write(`Checked ${files.length} .azeroth file(s); no type errors.\n`);
66
100
  }
@@ -69,6 +103,76 @@ export function runTsc(options = {}) {
69
103
  }
70
104
  return { fileCount: files.length, errorCount };
71
105
  }
106
+ /**
107
+ * Runs an initial check, then re-checks whenever a `.azeroth` file under `cwd`
108
+ * changes. A single language service is reused across passes (each pass re-reads
109
+ * changed files from disk and bumps their version), so unchanged files and the
110
+ * lib/node_modules program are not re-parsed every time. Returns a handle:
111
+ * `recheck()` forces a pass (used by tests and the file watcher); `close()`
112
+ * stops watching. The returned watcher keeps the process alive via the
113
+ * underlying fs watcher.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const w = watchTsc({ cwd: 'app' }); // checks now, then on every change
118
+ * // ... later: w.close();
119
+ * ```
120
+ */
121
+ export function watchTsc(options = {}) {
122
+ const cwd = path.resolve(options.cwd ?? process.cwd());
123
+ const write = options.write ?? ((text) => {
124
+ process.stdout.write(text);
125
+ });
126
+ // One service for the whole session: lib.d.ts, node_modules and unchanged
127
+ // `.azeroth` files are parsed once and reused across passes via the document
128
+ // registry, instead of building a fresh program on every change. `open`
129
+ // tracks the open document set so deleted files are closed between passes.
130
+ const service = new AzerothLanguageService(cwd, options.project);
131
+ const open = new Set();
132
+ const recheck = () => {
133
+ write('\n[azeroth-tsc] checking .azeroth files...\n');
134
+ try {
135
+ return checkPass(service, cwd, write, open);
136
+ }
137
+ catch (error) {
138
+ // A bad tsconfig or an unreadable file must not kill the watch loop;
139
+ // report it and keep watching.
140
+ const message = error instanceof Error ? error.message : String(error);
141
+ write(`[azeroth-tsc] check failed: ${message}\n`);
142
+ return { fileCount: 0, errorCount: 0 };
143
+ }
144
+ };
145
+ recheck();
146
+ let debounce = null;
147
+ let watcher;
148
+ try {
149
+ watcher = fsWatch(cwd, { recursive: true }, (_event, fileName) => {
150
+ // Recursive watch reports every file; only react to `.azeroth`.
151
+ if (fileName && !String(fileName).endsWith('.azeroth')) {
152
+ return;
153
+ }
154
+ if (debounce) {
155
+ clearTimeout(debounce);
156
+ }
157
+ debounce = setTimeout(recheck, 120);
158
+ });
159
+ write(`[azeroth-tsc] watching ${cwd} for .azeroth changes (Ctrl+C to exit)\n`);
160
+ }
161
+ catch {
162
+ // Recursive watch isn't supported on every platform; fall back to a
163
+ // one-shot check rather than crashing.
164
+ write('[azeroth-tsc] file watching unavailable on this platform; ran a single check\n');
165
+ }
166
+ return {
167
+ recheck,
168
+ close: () => {
169
+ if (debounce) {
170
+ clearTimeout(debounce);
171
+ }
172
+ watcher?.close();
173
+ }
174
+ };
175
+ }
72
176
  /** Formats one diagnostic in `tsc`'s `file(line,col): error TSxxxx: msg` shape. */
73
177
  function formatDiagnostic(cwd, file, diag, isError) {
74
178
  const rel = path.relative(cwd, file).replace(/\\/g, '/');
package/dist/tsc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tsc.js","sourceRoot":"","sources":["../src/tsc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tsc.js","sourceRoot":"","sources":["../src/tsc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azerothjs/language-server",
3
- "version": "0.4.0-beta.2",
3
+ "version": "0.4.0-beta.3",
4
4
  "description": "AzerothJS language server — a Language Server Protocol front-end for .azeroth files",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "dependencies":
30
30
  {
31
- "@azerothjs/language-service": "0.4.0-beta.2",
31
+ "@azerothjs/language-service": "0.4.0-beta.3",
32
32
  "typescript": ">=5",
33
33
  "vscode-languageserver": "^9",
34
34
  "vscode-languageserver-textdocument": "^1"