UNPKG

@typed/content-hash

Version:

Content hash a directory of HTML/JS/CSS files and other static assets

20 lines 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fsReadDirectory = void 0; const Env_1 = require("@typed/fp/Env"); const FxEnv_1 = require("@typed/fp/FxEnv"); const fs_1 = require("fs"); const path_1 = require("path"); const logging_1 = require("../application/services/logging"); const readdir = (directory) => (0, Env_1.fromTask)(() => fs_1.promises.readdir(directory).then((paths) => paths.map((p) => path_1.posix.join(directory, p)))); const isFile = (path) => (0, fs_1.statSync)(path).isFile(); const isDirectory = (path) => (0, fs_1.statSync)(path).isDirectory(); const fsReadDirectory = (directory) => (0, FxEnv_1.Do)(function* (_) { yield* _((0, logging_1.debug)(`Reading Directory ${directory}...`)); const paths = yield* _(readdir(directory)); const files = paths.filter(isFile); const directories = yield* _((0, Env_1.zip)(paths.filter(isDirectory).map(exports.fsReadDirectory))); return [...files, ...directories.flat()]; }); exports.fsReadDirectory = fsReadDirectory; //# sourceMappingURL=fsReadDirectory.js.map