@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
37 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.collectFileMetaInfos = collectFileMetaInfos;
const fileinfo_1 = require("./fileinfo");
const filemeta_1 = require("./filemeta");
const log_1 = require("../../../../pkg/log");
const log = (0, log_1.getDomainLogger)('fs', { component: 'incremental-file-collector' });
async function collectFileMetaInfos(paths, fs) {
const result = new Map();
for (const path of paths) {
try {
const fileMetaInfo = await createFileMetaInfo(path, fs);
result.set(path, fileMetaInfo);
}
catch (error) {
log.error(`Failed to create FileMetaInfo for ${path}:`, error);
}
}
return result;
}
/**
* 为单个文件创建 FileMetaInfo,参考 walkRecursive 的实现
*/
async function createFileMetaInfo(filePath, fs) {
try {
// 获取文件信息,参考 walkRecursive 中的实现
const fi = await fs.stat(filePath);
// 创建 FileMetaInfo,参考 walkRecursive 中的实现
const meta = (0, filemeta_1.newFileMeta)(filePath);
meta.setOpenFunc(async () => await fs.open(filePath));
return (0, fileinfo_1.newFileInfoWithMeta)(fi, meta);
}
catch (error) {
throw new Error(`Failed to stat file ${filePath}: ${error.message}`);
}
}
//# sourceMappingURL=incremental-file-collector.js.map