@aleung/unionfs
TypeScript icon, indicating that this package has built-in type declarations

4.4.0 • Public • Published

unionfs

Note: This is a fork of streamich/unionfs. It holds my PRs and is published as npm module @aleung/unionfs.

Creates a union of multiple fs file systems.

npm install --save unionfs

This module allows you to use multiple objects that have file system fs API at the same time.

import {ufs} from 'unionfs';
import {fs as fs1} from 'memfs';
import * as fs2 from 'fs';

ufs
    .use(fs1)
    .use(fs2);

ufs.readFileSync(/* ... */);

Use this module with memfs and linkfs. memfs allows you to create virtual in-memory file system. linkfs allows you to redirect fs paths.

You can also use other fs-like objects.

import * as fs from 'fs';
import {Volume} from 'memfs';
import * as MemoryFileSystem from 'memory-fs';
import {ufs} from 'unionfs'


const vol1 = Volume.fromJSON({'/memfs-1': '1'});
const vol2 = Volume.fromJSON({'/memfs-2': '2'});


const memoryFs = new MemoryFileSystem;
memoryFs.writeFileSync('/memory-fs', '3');


ufs
    .use(fs)
    .use(vol1)
    .use(vol2)
    .use(memoryFs);

console.log(ufs.readFileSync('/memfs-1', 'utf8')); // 1
console.log(ufs.readFileSync('/memfs-2', 'utf8')); // 2
console.log(ufs.readFileSync('/memory-fs', 'utf8')); // 3

You can create a Union instance manually:

import {Union} from 'unionfs';

var ufs1 = new Union;
ufs1
    .use(fs)
    .use(vol);

var ufs2 = new Union;
ufs2
    .use(fs)
    .use(/*...*/);

License

Unlicense - public domain.

Package Sidebar

Install

npm i @aleung/unionfs

Weekly Downloads

1

Version

4.4.0

License

SEE LICENSE IN LICENSE

Unpacked Size

41.7 kB

Total Files

12

Last publish

Collaborators

  • aleung