just-scripts
Version:
Just Stack Scripts
67 lines • 3.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeFiles = exports.copyFilesInDirectory = exports.copyFilesToDestinationDirectoryWithRename = exports.copyFileToDestinationDirectoryWithRename = exports.copyFilesToDestinationDirectory = void 0;
const path_1 = require("path");
const fs_1 = require("fs");
const arrayify_1 = require("../arrayUtils/arrayify");
/**
* Copies files into a destination directory with the same names.
* For example copyFilesToDestinationDirectory(['some/path/foo.js', 'bar.js'], 'dest/target') would result in the creation of
* files 'dest/target/foo.js' and 'dest/target/bar.js'.
*/
function copyFilesToDestinationDirectory(sourceFilePaths, destinationDirectory) {
return arrayify_1.arrayify(sourceFilePaths).map(sourceName => ({
sourceFilePath: path_1.normalize(sourceName),
destinationFilePath: path_1.join(destinationDirectory, path_1.basename(sourceName)),
}));
}
exports.copyFilesToDestinationDirectory = copyFilesToDestinationDirectory;
/**
* Copies a file into a destination directory with a different name.
* For example copyFileToDestinationDirectoryWithRename('some/path/foo.js', 'bar.js', 'dest/target') would result in the creation of
* the file 'dest/target/bar.js'.
*/
function copyFileToDestinationDirectoryWithRename(sourceFilePath, destinationName, destinationDirectory) {
return [{ sourceFilePath, destinationFilePath: path_1.join(destinationDirectory, destinationName) }];
}
exports.copyFileToDestinationDirectoryWithRename = copyFileToDestinationDirectoryWithRename;
/**
* Copies files into a destination directory with different names.
* For example copyFilesToDestinationDirectoryWithRename([{sourceFilePath:'some/path/foo.js', destinationName:'bar.js'}], 'dest/target')
* would result in the creation of the file 'dest/target/bar.js'.
*/
function copyFilesToDestinationDirectoryWithRename(instrs, destinationDirectory) {
return instrs.map(instr => ({
sourceFilePath: instr.sourceFilePath,
destinationFilePath: path_1.join(destinationDirectory, instr.destinationName),
}));
}
exports.copyFilesToDestinationDirectoryWithRename = copyFilesToDestinationDirectoryWithRename;
/**
* Copies all the files in a directory to the output folder.
* You can optionally provide a filter function that determines which files to copy.
*/
function copyFilesInDirectory(sourceDirectoryPath, outputDirectoryPath, filterFunction) {
let files = fs_1.readdirSync(sourceDirectoryPath);
if (filterFunction) {
files = files.filter(filterFunction);
}
return files.map(file => ({
sourceFilePath: path_1.join(sourceDirectoryPath, file),
destinationFilePath: path_1.join(outputDirectoryPath, file),
}));
}
exports.copyFilesInDirectory = copyFilesInDirectory;
/**
* Merges the contents of multiple files and places them in the output folder.
* This should only be used for text files and it should not be used for JavaScript
* files that we care about the sourcemap information since this does not merge sourcemaps.
*/
function mergeFiles(sourceFilePaths, destinationFilePath) {
return {
sourceFilePath: sourceFilePaths,
destinationFilePath,
};
}
exports.mergeFiles = mergeFiles;
//# sourceMappingURL=CopyInstruction.js.map