@jsonjoy.com/fs-node
In-memory filesystem with Node.js fs-compatible API.
Installation
npm install @jsonjoy.com/fs-node
Usage
import { Volume } from '@jsonjoy.com/fs-node';
const vol = new Volume();
vol.writeFileSync('/hello.txt', 'Hello, World!');
console.log(vol.readFileSync('/hello.txt', 'utf8'));
Create filesystem from JSON
import { Volume } from '@jsonjoy.com/fs-node';
const vol = Volume.fromJSON({
'/app/index.js': 'console.log("Hello");',
'/app/package.json': '{"name": "app"}',
});
console.log(vol.readdirSync('/app'));
API
The Volume class implements Node.js fs module's synchronous and callback APIs:
readFile, readFileSync
writeFile, writeFileSync
mkdir, mkdirSync
readdir, readdirSync
stat, statSync
unlink, unlinkSync
- ... and many more
It also exposes a promises property for the Promise-based API:
const data = await vol.promises.readFile('/hello.txt', 'utf8');
License
Apache-2.0