UNPKG

@rnm/tscx

Version:

A tsc wrapper with many convenient options.

34 lines 5.05 kB
import fs from "node:fs/promises"; import path from "node:path"; /** * Copy non-ts/non-js files to outDir * @param rootDirectory absolute path * @param outDirectory absolute path */ export async function copyfiles(rootDirectory, outDirectory) { const rootDir = path.resolve(rootDirectory); const outDir = path.resolve(outDirectory); const walkDir = async (dir, cb) => { await Promise.all((await fs.readdir(dir)) .map((filepath) => path.resolve(dir, filepath)) .map(async (filepath) => { const stat = await fs.stat(filepath); if (stat.isFile() && !/\.(js|cjs|mjs|jsx|ts|cts|mts|tsx)$/.test(filepath)) { await cb(filepath); } if (stat.isDirectory() && !filepath.startsWith(outDir) && !filepath.endsWith(`${path.sep}node_modules`) && !filepath.endsWith(`${path.sep}.git`)) { await walkDir(filepath, cb); } })); }; await walkDir(rootDir, async (filepath) => { const dest = filepath.replace(rootDir, outDir); await fs.mkdir(path.dirname(dest), { recursive: true }); await fs.copyFile(filepath, dest); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weWZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZC9jb3B5ZmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFxQixFQUFFLFlBQW9CO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQ25CLEdBQVcsRUFDWCxFQUF1QyxFQUN2QyxFQUFFO1FBQ0YsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDOUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsSUFDRSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNwRCxDQUFDO2dCQUNELE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxJQUNFLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2xCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztnQkFDN0MsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQ3JDLENBQUM7Z0JBQ0QsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ0YsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUN4QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbi8qKlxuICogQ29weSBub24tdHMvbm9uLWpzIGZpbGVzIHRvIG91dERpclxuICogQHBhcmFtIHJvb3REaXJlY3RvcnkgYWJzb2x1dGUgcGF0aFxuICogQHBhcmFtIG91dERpcmVjdG9yeSBhYnNvbHV0ZSBwYXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5ZmlsZXMocm9vdERpcmVjdG9yeTogc3RyaW5nLCBvdXREaXJlY3Rvcnk6IHN0cmluZykge1xuICBjb25zdCByb290RGlyID0gcGF0aC5yZXNvbHZlKHJvb3REaXJlY3RvcnkpO1xuICBjb25zdCBvdXREaXIgPSBwYXRoLnJlc29sdmUob3V0RGlyZWN0b3J5KTtcbiAgY29uc3Qgd2Fsa0RpciA9IGFzeW5jIChcbiAgICBkaXI6IHN0cmluZyxcbiAgICBjYjogKGZpbGVwYXRoOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4sXG4gICkgPT4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgKGF3YWl0IGZzLnJlYWRkaXIoZGlyKSlcbiAgICAgICAgLm1hcCgoZmlsZXBhdGgpID0+IHBhdGgucmVzb2x2ZShkaXIsIGZpbGVwYXRoKSlcbiAgICAgICAgLm1hcChhc3luYyAoZmlsZXBhdGgpID0+IHtcbiAgICAgICAgICBjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChmaWxlcGF0aCk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhdC5pc0ZpbGUoKSAmJlxuICAgICAgICAgICAgIS9cXC4oanN8Y2pzfG1qc3xqc3h8dHN8Y3RzfG10c3x0c3gpJC8udGVzdChmaWxlcGF0aClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGF3YWl0IGNiKGZpbGVwYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhdC5pc0RpcmVjdG9yeSgpICYmXG4gICAgICAgICAgICAhZmlsZXBhdGguc3RhcnRzV2l0aChvdXREaXIpICYmXG4gICAgICAgICAgICAhZmlsZXBhdGguZW5kc1dpdGgoYCR7cGF0aC5zZXB9bm9kZV9tb2R1bGVzYCkgJiZcbiAgICAgICAgICAgICFmaWxlcGF0aC5lbmRzV2l0aChgJHtwYXRoLnNlcH0uZ2l0YClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGF3YWl0IHdhbGtEaXIoZmlsZXBhdGgsIGNiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICk7XG4gIH07XG4gIGF3YWl0IHdhbGtEaXIocm9vdERpciwgYXN5bmMgKGZpbGVwYXRoKSA9PiB7XG4gICAgY29uc3QgZGVzdCA9IGZpbGVwYXRoLnJlcGxhY2Uocm9vdERpciwgb3V0RGlyKTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoZGVzdCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGF3YWl0IGZzLmNvcHlGaWxlKGZpbGVwYXRoLCBkZXN0KTtcbiAgfSk7XG59XG4iXX0=