@dynatrace/devkit
Version:
The Dynatrace App Toolkit utilities for writing and testing migrations.
32 lines (31 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadFileMap = loadFileMap;
const fs_1 = require("fs");
const path_1 = require("path");
const get_files_recursive_1 = require("./get-files-recursive");
/** Loads a set of files or directories recursive into a fileMap */
function loadFileMap(dirsOrFiles, options = {}) {
let fileMap = {};
const getDirName = (file) => options.relativeTo ? (0, path_1.relative)(options.relativeTo, file) : file;
for (const dirOrFile of dirsOrFiles) {
if ((0, fs_1.existsSync)(dirOrFile)) {
if ((0, fs_1.lstatSync)(dirOrFile).isFile()) {
const fileName = options.fileNameVisitor
? options.fileNameVisitor(dirOrFile, options.relativeTo)
: getDirName(dirOrFile);
fileMap[fileName] = {
content: (0, fs_1.readFileSync)(dirOrFile),
filename: fileName,
};
}
else {
fileMap = {
...fileMap,
...loadFileMap((0, get_files_recursive_1.getFilesRecursive)(dirOrFile), options),
};
}
}
}
return fileMap;
}