UNPKG

f2e-server3

Version:

f2e-server 3.0

45 lines (44 loc) 1.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.outputProvider = void 0; const node_path_1 = __importDefault(require("node:path")); const node_fs_1 = __importDefault(require("node:fs")); const logger_1 = __importDefault(require("../utils/logger")); const promises_1 = require("node:fs/promises"); const types_1 = require("node:util/types"); const outputProvider = (options, store) => { const { outputFilter, dest } = options; return async function build(pathname) { // 符合过滤条件且有输出目录执行 if (outputFilter && dest) { // 根目录默认符合条件 if (!pathname || outputFilter(pathname)) { const data = await store.load(pathname); if (typeof data === "undefined" || !outputFilter(pathname, data)) { return; } const absolutePathname = node_path_1.default.join(dest, pathname); if (typeof data === "string" || (0, types_1.isArrayBufferView)(data)) { try { await (0, promises_1.writeFile)(absolutePathname, data); } catch (e) { logger_1.default.error(e); } } else { if (!node_fs_1.default.existsSync(absolutePathname)) { node_fs_1.default.mkdirSync(absolutePathname, { recursive: true }); } await Promise.all(Object.keys(data).map(key => { return build(pathname ? (pathname + '/' + key) : key); })); } } } }; }; exports.outputProvider = outputProvider;