UNPKG

@rnm/tscx

Version:

A tsc wrapper with many convenient options.

27 lines 4.17 kB
import childProcess from "node:child_process"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { tscPath } from "../common.js"; import { debug } from "../debug.js"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const REMOVE_PATH = path.resolve(__dirname, "remove.cli.mjs"); const COPYFILES_PATH = path.resolve(__dirname, "copyfiles.cli.mjs"); const TSC_PATH = tscPath; function spawn(args) { // TODO: use util.styleText when dropping node 18 support debug(`👕 [${new Date().toLocaleString()}] node`, ...args); return childProcess.spawn("node", args, { stdio: "inherit" }); } export function remove({ filepath }) { return spawn([REMOVE_PATH, filepath]); } export function tsc(options) { return spawn([TSC_PATH, ...options]); } export function copyfiles({ rootDir, outDir, }) { return spawn([COPYFILES_PATH, rootDir, outDir]); } export function exec({ filepath }) { return spawn([filepath]); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUM5RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3BFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUV6QixTQUFTLEtBQUssQ0FBQyxJQUFjO0lBQzNCLHlEQUF5RDtJQUN6RCxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMzRCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUF3QjtJQUN2RCxPQUFPLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWlCO0lBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxFQUN4QixPQUFPLEVBQ1AsTUFBTSxHQUlQO0lBQ0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQXdCO0lBQ3JELE9BQU8sS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoaWxkUHJvY2VzcyBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyB0c2NQYXRoIH0gZnJvbSBcIi4uL2NvbW1vbi50c1wiO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tIFwiLi4vZGVidWcudHNcIjtcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5jb25zdCBSRU1PVkVfUEFUSCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicmVtb3ZlLmNsaS5tanNcIik7XG5jb25zdCBDT1BZRklMRVNfUEFUSCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwiY29weWZpbGVzLmNsaS5tanNcIik7XG5jb25zdCBUU0NfUEFUSCA9IHRzY1BhdGg7XG5cbmZ1bmN0aW9uIHNwYXduKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIC8vIFRPRE86IHVzZSB1dGlsLnN0eWxlVGV4dCB3aGVuIGRyb3BwaW5nIG5vZGUgMTggc3VwcG9ydFxuICBkZWJ1Zyhg8J+RlSBbJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9XSBub2RlYCwgLi4uYXJncyk7XG4gIHJldHVybiBjaGlsZFByb2Nlc3Muc3Bhd24oXCJub2RlXCIsIGFyZ3MsIHsgc3RkaW86IFwiaW5oZXJpdFwiIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKHsgZmlsZXBhdGggfTogeyBmaWxlcGF0aDogc3RyaW5nIH0pIHtcbiAgcmV0dXJuIHNwYXduKFtSRU1PVkVfUEFUSCwgZmlsZXBhdGhdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzYyhvcHRpb25zOiBzdHJpbmdbXSkge1xuICByZXR1cm4gc3Bhd24oW1RTQ19QQVRILCAuLi5vcHRpb25zXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3B5ZmlsZXMoe1xuICByb290RGlyLFxuICBvdXREaXIsXG59OiB7XG4gIHJvb3REaXI6IHN0cmluZztcbiAgb3V0RGlyOiBzdHJpbmc7XG59KSB7XG4gIHJldHVybiBzcGF3bihbQ09QWUZJTEVTX1BBVEgsIHJvb3REaXIsIG91dERpcl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlYyh7IGZpbGVwYXRoIH06IHsgZmlsZXBhdGg6IHN0cmluZyB9KSB7XG4gIHJldHVybiBzcGF3bihbZmlsZXBhdGhdKTtcbn1cbiJdfQ==