Files
ignis/src/shims/fs/index.js

53 lines
1.6 KiB
JavaScript
Raw Normal View History

2026-03-11 22:08:30 +01:00
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";
2026-03-22 14:56:05 +01:00
import { createWatcherClient } from "./watcher-client.js";
import { createFdOps } from "./fd.js";
2026-03-11 22:08:30 +01:00
import { constants } from "./constants.js";
2026-03-07 15:42:19 +01:00
const metadataCache = new MetadataCache();
const contentCache = new ContentCache();
const fsPromises = createFsPromises(metadataCache, contentCache, transport);
const fsSync = createFsSync(metadataCache, contentCache, transport);
const fsWatch = createFsWatch(transport);
2026-03-22 14:56:05 +01:00
const watcherClient = createWatcherClient(metadataCache, contentCache, fsWatch);
const fdOps = createFdOps(metadataCache, contentCache, transport);
2026-03-07 15:42:19 +01:00
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,
open: fdOps.open,
openSync: fdOps.openSync,
read: fdOps.read,
readSync: fdOps.readSync,
close: fdOps.close,
closeSync: fdOps.closeSync,
fstat: fdOps.fstat,
fstatSync: fdOps.fstatSync,
2026-03-07 15:42:19 +01:00
watch: fsWatch.watch,
constants,
_metadataCache: metadataCache,
_contentCache: contentCache,
2026-03-22 14:56:05 +01:00
_watcherClient: watcherClient,
2026-03-07 15:42:19 +01:00
async _init(basePath) {
const tree = await transport.fetchTree(basePath);
metadataCache.populate(tree);
console.log(`[shim:fs] Initialized with ${metadataCache.size} entries`);
},
};