typescript
Version:
TypeScript is a language for application scale JavaScript development
32 lines • 1.14 kB
JavaScript
/**
* Shared utilities for the TypeScript API client.
*/
import { existsSync } from "node:fs";
import { fileURLToPath } from "node:url";
import getExePath from "../../lib/getExePath.js";
export function isSpawnOptions(options) {
return !("pipe" in options);
}
export function resolveExePath(options) {
return options.tsserverPath ?? getExePath();
}
export function getAPIProcessArgs(options, async) {
const args = ["--api"];
if (async)
args.push("--async");
args.push("--cwd", options.cwd ?? process.cwd());
args.push(`--useCaseSensitiveFileNames=${options.useCaseSensitiveFileNames ?? inferUseCaseSensitiveFileNames()}`);
if (options.runExternalCode)
args.push("--runExternalCode");
if (options.collectTiming)
args.push("--timing");
return args;
}
function inferUseCaseSensitiveFileNames() {
if (process.platform === "win32") {
return false;
}
const fileName = fileURLToPath(import.meta.url);
return !existsSync(fileName.replace(/\w/g, char => char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase()));
}
//# sourceMappingURL=options.js.map