38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { MetadataCache } from "./metadata-cache.js";
|
|
import { ContentCache } from "./content-cache.js";
|
|
import { transport } from "./transport.js";
|
|
import { createFsPromises } from "./promises.js";
|
|
import { createFsSync } from "./sync.js";
|
|
import { createFsWatch } from "./watch.js";
|
|
import { constants } from "./constants.js";
|
|
|
|
const metadataCache = new MetadataCache();
|
|
const contentCache = new ContentCache();
|
|
|
|
const fsPromises = createFsPromises(metadataCache, contentCache, transport);
|
|
const fsSync = createFsSync(metadataCache, contentCache, transport);
|
|
const fsWatch = createFsWatch(transport);
|
|
|
|
export const fsShim = {
|
|
promises: fsPromises,
|
|
|
|
existsSync: fsSync.existsSync,
|
|
readFileSync: fsSync.readFileSync,
|
|
writeFileSync: fsSync.writeFileSync,
|
|
unlinkSync: fsSync.unlinkSync,
|
|
accessSync: fsSync.accessSync,
|
|
statSync: fsSync.statSync,
|
|
readdirSync: fsSync.readdirSync,
|
|
|
|
watch: fsWatch.watch,
|
|
constants,
|
|
|
|
_metadataCache: metadataCache,
|
|
_contentCache: contentCache,
|
|
|
|
async _init(basePath) {
|
|
const tree = await transport.fetchTree(basePath);
|
|
metadataCache.populate(tree);
|
|
console.log(`[shim:fs] Initialized with ${metadataCache.size} entries`);
|
|
},
|
|
};
|