@anatine/esbuildnx
Version:
Esbuild plugin for Nx
58 lines • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyAssetFiles = exports.copyAssets = exports.assetGlobsToFiles = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const fs_extra_1 = require("fs-extra");
const glob = tslib_1.__importStar(require("glob"));
const path_1 = require("path");
function assetGlobsToFiles(assets, rootDir, outDir) {
const files = [];
const globbedFiles = (pattern, input = '', ignore = []) => {
return glob.sync(pattern, {
cwd: input,
nodir: true,
ignore,
});
};
assets.forEach((asset) => {
if (typeof asset === 'string') {
globbedFiles(asset, rootDir).forEach((globbedFile) => {
files.push({
input: (0, path_1.join)(rootDir, globbedFile),
output: (0, path_1.join)(outDir, (0, path_1.basename)(globbedFile)),
});
});
}
else {
globbedFiles(asset.glob, (0, path_1.join)(rootDir, asset.input), asset.ignore).forEach((globbedFile) => {
files.push({
input: (0, path_1.join)(rootDir, asset.input, globbedFile),
output: (0, path_1.join)(outDir, asset.output, globbedFile),
});
});
}
});
return files;
}
exports.assetGlobsToFiles = assetGlobsToFiles;
function copyAssets(assets, rootDir, outDir) {
const files = assetGlobsToFiles(assets, rootDir, outDir);
return copyAssetFiles(files);
}
exports.copyAssets = copyAssets;
function copyAssetFiles(files) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
devkit_1.logger.info('Copying asset files...');
try {
yield Promise.all(files.map((file) => (0, fs_extra_1.copy)(file.input, file.output)));
devkit_1.logger.info('Done copying asset files.');
return { success: true };
}
catch (err) {
return { error: err.message, success: false };
}
});
}
exports.copyAssetFiles = copyAssetFiles;
//# sourceMappingURL=assets.js.map