UNPKG

just-scripts

Version:
67 lines 3.32 kB
"use strict"; 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