@spec2ts/core
Version:
Core module for @spec2ts modules, includes codegen helpers and common parsing methods
45 lines (44 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findFiles = exports.getOutputFileName = exports.getOutputPath = exports.mkdirp = exports.writeFile = void 0;
const fs_1 = require("fs");
const path = require("path");
const glob_1 = require("glob");
function writeFile(path, content) {
return fs_1.promises.writeFile(path, content, { encoding: "utf8" });
}
exports.writeFile = writeFile;
async function mkdirp(file) {
await fs_1.promises.mkdir(path.dirname(file), { recursive: true });
}
exports.mkdirp = mkdirp;
function getOutputPath(src, { output, ext }) {
if (output) {
return path.join(output, getOutputFileName(src));
}
if (src.startsWith("http")) {
return path.basename(src);
}
return path.join(path.dirname(src), getOutputFileName(src, ext));
}
exports.getOutputPath = getOutputPath;
function getOutputFileName(src, ext = ".d.ts") {
return path.basename(src)
.replace(path.extname(src), "")
+ ext;
}
exports.getOutputFileName = getOutputFileName;
async function findFiles(pattern, options) {
if (!Array.isArray(pattern)) {
return findFilesOne(pattern, options);
}
const res = await Promise.all(pattern.map(p => findFilesOne(p, options)));
return res.flat();
}
exports.findFiles = findFiles;
async function findFilesOne(pattern, options = {}) {
if (pattern.startsWith("http")) {
return [pattern];
}
return await (0, glob_1.glob)(pattern, { ...options, withFileTypes: false });
}