UNPKG

@dynatrace/devkit

Version:

The Dynatrace App Toolkit utilities for writing and testing migrations.

32 lines (31 loc) 1.24 kB
"use strict"; 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; }