@lesnoypudge/builder
Version:
lesnoypudge-builder
57 lines (56 loc) • 1.55 kB
JavaScript
import fs from "node:fs";
import { invariant } from "@lesnoypudge/utils";
import { parseConfig } from "./utils/parseConfig.js";
import { processJSFiles } from "./utils/processJSFiles.js";
import { processTSFiles } from "./utils/processTSFiles.js";
import { Timer } from "./utils/Timer.js";
import "yargs";
import "yargs/helpers";
import path from "node:path";
const builder = async ({
configName,
verbose,
logTime = false
}) => {
const timer = new Timer();
logTime && timer.start();
const {
configFilePath,
parsedConfig
} = await parseConfig({ configName, verbose });
verbose && console.log({
compilerOptions: parsedConfig.options,
filePathsToProcess: parsedConfig.fileNames,
configFilePath
});
invariant(
parsedConfig.options.outDir,
"outDir not specified in compilerOptions"
);
fs.rmSync(
parsedConfig.options.outDir,
{ force: true, recursive: true }
);
const { jsFilePathToDataMap } = processTSFiles({
compilerOptions: parsedConfig.options,
filePathsToProcess: parsedConfig.fileNames,
beforeTransformers: [],
afterTransformers: []
});
verbose && console.log("post processTSFiles");
await processJSFiles({
jsMap: jsFilePathToDataMap,
compilerOptions: parsedConfig.options,
projectRoot: path.resolve(
path.dirname(configFilePath),
parsedConfig.options.baseUrl ?? ""
)
});
verbose && console.log("post processJSFiles");
logTime && timer.end();
logTime && timer.log();
};
export {
builder
};
//# sourceMappingURL=builder.js.map