In-memory filesystem with Node's API

Overview

memfs

In-memory file-system with Node's fs API.

  • Node's fs API implemented, see API Status
  • Stores files in memory, in Buffers
  • Throws sameish* errors as Node.js
  • Has concept of i-nodes
  • Implements hard links
  • Implements soft links (aka symlinks, symbolic links)
  • Permissions may* be implemented in the future
  • Can be used in browser, see memfs-webpack

Install

npm install --save memfs

Usage

import { fs } from 'memfs';

fs.writeFileSync('/hello.txt', 'World!');
fs.readFileSync('/hello.txt', 'utf8'); // World!

Create a file system from a plain JSON:

import { fs, vol } from 'memfs';

const json = {
  './README.md': '1',
  './src/index.js': '2',
  './node_modules/debug/index.js': '3',
};
vol.fromJSON(json, '/app');

fs.readFileSync('/app/README.md', 'utf8'); // 1
vol.readFileSync('/app/src/index.js', 'utf8'); // 2

Export to JSON:

vol.writeFileSync('/script.sh', 'sudo rm -rf *');
vol.toJSON(); // {"/script.sh": "sudo rm -rf *"}

Use it for testing:

vol.writeFileSync('/foo', 'bar');
expect(vol.toJSON()).toEqual({ '/foo': 'bar' });

Create as many filesystem volumes as you need:

import { Volume } from 'memfs';

const vol = Volume.fromJSON({ '/foo': 'bar' });
vol.readFileSync('/foo'); // bar

const vol2 = Volume.fromJSON({ '/foo': 'bar 2' });
vol2.readFileSync('/foo'); // bar 2

Use memfs together with unionfs to create one filesystem from your in-memory volumes and the real disk filesystem:

import * as fs from 'fs';
import { ufs } from 'unionfs';

ufs.use(fs).use(vol);

ufs.readFileSync('/foo'); // bar

Use fs-monkey to monkey-patch Node's require function:

import { patchRequire } from 'fs-monkey';

vol.writeFileSync('/index.js', 'console.log("hi world")');
patchRequire(vol);
require('/index'); // hi world

Docs

See also

  • spyfs - spies on filesystem actions
  • unionfs - creates a union of multiple filesystem volumes
  • linkfs - redirects filesystem paths
  • fs-monkey - monkey-patches Node's fs module and require function
  • libfs - real filesystem (that executes UNIX system calls) implemented in JavaScript

License

Unlicense - public domain.

Comments
  • The automated release is failing ๐Ÿšจ

    The automated release is failing ๐Ÿšจ

    :rotating_light: The automated release from the master branch failed. :rotating_light:

    I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

    You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. Iโ€™m sure you can resolve this ๐Ÿ’ช.

    Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

    Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

    If you are not sure how to resolve this, here is some links that can help you:

    If those donโ€™t help, or if this issue is reporting something you think isnโ€™t right, you can always ask the humans behind semantic-release.


    Invalid npm token.

    The npm token configured in the NPM_TOKEN environment variable must be a valid token allowing to publish to the registry https://registry.npmjs.org/.

    If you are using Two-Factor Authentication, make configure the auth-only level is supported. semantic-release cannot publish with the default auth-and-writes level.

    Please make sure to set the NPM_TOKEN environment variable in your CI with the exact value of the npm token.


    Good luck with your project โœจ

    Your semantic-release bot :package::rocket:

    semantic-release 
    opened by streamich 124
  • memfs breaks with fs-extra^10.0.0

    memfs breaks with fs-extra^10.0.0

    memfs does not export fs.realpath.native. It is available since Node.js 9.2.0. https://nodejs.org/api/fs.html#fsrealpathnativepath-options-callback

    fs-extra uses univeralify to create a promise version of fs.realpath.native. Because memfs does not provide it, universalify throws a error:

    TypeError: Cannot read properties of undefined (reading 'name')
    
          at Object.<anonymous>.exports.fromCallback (../../node_modules/fs-extra/node_modules/universalify/index.js:15:26)
          at Object.<anonymous> (../../node_modules/fs-extra/lib/fs/index.js:57:27)
          at Object.<anonymous> (../../node_modules/fs-extra/lib/index.js:5:6)
    

    The error occurs even if realpath.native is not used.

    The line of code: https://github.com/jprichardson/node-fs-extra/blob/a84ef6dd8969f57d16e23267e1790def791e9a82/lib/fs/index.js#L57

    opened by Phillip9587 13
  • Callback was already called.

    Callback was already called.

    Hi, I'm using memfs with webpack and its watcher. After rebuild I want to read a file that was just built, but get this error:

        at throwError (C:\...\node_modules\neo-async\async.js:16:11)
        at C:\...\node_modules\neo-async\async.js:2818:7
        at C:\...\node_modules\neo-async\async.js:2830:7
        at done (C:\...\node_modules\neo-async\async.js:3517:9)
        at C:\...\node_modules\webpack\lib\Compiler.js:548:25
        at Immediate.<anonymous> (C:\...\node_modules\memfs\lib\volume.js:684:17)
        at processImmediate (internal/timers.js:456:21)```
    released 
    opened by mariusrak 10
  • Incompatible with graceful-fs

    Incompatible with graceful-fs

    Iโ€™m trying to make it work with graceful-fs. And it tries to access fs.ReadStream.prototype:

    https://github.com/isaacs/node-graceful-fs/blob/65cf80d1fd3413b823c16c626c1e7c326452bee5/graceful-fs.js#L165-L166

    which doesnโ€™t exist on memfs:

    > const fs = require('fs');
    undefined
    > fs.ReadStream.prototype
    ReadStream {
      open: [Function],
      _read: [Function],
      _destroy: [Function],
      close: [Function] }
    > const memfs = require('memfs');
    undefined
    > memfs.fs.ReadStream.prototype
    undefined
    

    I can make it work by doing this change in index.ts:

    -    fs.WriteStream = (volume as any).WriteStream.bind(null, vol);
    +    fs.WriteStream = (volume as any).WriteStream;
    -    fs.ReadStream = (volume as any).ReadStream.bind(null, vol);
    +    fs.ReadStream = (volume as any).ReadStream;
    

    But I assume it would break other things (though all tests are passing) otherwise you wonโ€™t do that.

    opened by sapegin 10
  • Doesnโ€™t work with relative paths

    Doesnโ€™t work with relative paths

    After updating to 2.x relative paths donโ€™t work:

    > const { fs } = require('memfs');
    undefined
    > fs.writeFileSync('f', 't');
    TypeError: Cannot read property 'createChild' of null
        at Volume.createLink (/Users/sapegin/Dropbox/Projects/_Repos/mrm-core/node_modules/memfs/lib/volume.js:423:22)
        at Volume.openFile (/Users/sapegin/Dropbox/Projects/_Repos/mrm-core/node_modules/memfs/lib/volume.js:690:29)
        at Volume.openBase (/Users/sapegin/Dropbox/Projects/_Repos/mrm-core/node_modules/memfs/lib/volume.js:698:25)
        at Volume.writeFileBase (/Users/sapegin/Dropbox/Projects/_Repos/mrm-core/node_modules/memfs/lib/volume.js:927:23)
        at Volume.writeFileSync (/Users/sapegin/Dropbox/Projects/_Repos/mrm-core/node_modules/memfs/lib/volume.js:952:14)
        at repl:1:4
        at ContextifyScript.Script.runInThisContext (vm.js:44:33)
        at REPLServer.defaultEval (repl.js:239:29)
        at bound (domain.js:301:14)
        at REPLServer.runBound [as eval] (domain.js:314:12)
    > fs.writeFileSync('/f', 't');
    undefined
    
    opened by sapegin 10
  • "utimes" doesn't work for directories: "EISDIR: illegal operation on a directory, open ..." error

    utimes calls utimesBase which uses openSync call internally but openSync call on a directory obviously throws EISDIR error.

    https://github.com/streamich/memfs/blob/674a1e78469e1e9e766db7e3160538e958fdd97b/src/volume.ts#L1771-L1778

    released 
    opened by vladimiry 9
  • Not compatible with strictNullChecks

    Not compatible with strictNullChecks

    The feature implemented by #107 is not compatible when strictNullChecks is true, as it's typings only allow string.

    ss+(2019-04-30+at+04 31 37)

    I think the right typing would be string | null:

        fromJSON(json: {
            [filename: string]: string | null;
        }, cwd?: string): void;
    

    On an aside, I'd love to contribute to this project - I've started using it for my test fixture, and it's working great. I think there's a couple of places that could be improved to make it gel nicer, such as toJSON, which I think could benefit greatly from supporting nesting ala mock-js.

    If you're interested in having a chat, flick me an email :)

    (and if I get the time, I'll make a PR for this myself)

    opened by G-Rath 9
  • How to create a dir with `fromJSON` without using a temp file?

    How to create a dir with `fromJSON` without using a temp file?

    mock-fs supports a nested structure and represents empty dirs as empty objects.

    At present I am using the flat module to take a nested structure into fromJSON, but there seems no way to create dirs without dummy files.

    opened by vjpr 9
  • Cannot find module './getBigInt'

    Cannot find module './getBigInt'

    Apologies if this has been answered before or I'm just not understanding it, but memfs@^3.4.1 as a peer dependency of webpack-dev-middleware has an issue where the lib/Stats.js fails to import ./getBigInt โ€“ looking through node_modules/memfs the getBigInt.js file is located at lib/src/getBigInt.js instead of lib/getBigInt.js

    Again, sorry if this has been addressed before or I'm not doing it right. Just wanted to see if this has been patched somewhere and I'm a little confused. For now I've reverted to 3.4.1 in my project's package-lock.json so we're alright for now, but wanted to post this issue in here in case it was at all helpful. Thanks!

    released 
    opened by mrobit 8
  • feat: add support for nested objects to `fromJSON()`

    feat: add support for nested objects to `fromJSON()`

    This adds support for nested object (literals) to fromJSON(). It reads much nicer and makes tests look cleaner (at least that is my personal opinion). One of the features I miss most not being able to use mock-fs.

    I added this functionality to fromJSON() itself, one could argue having an additional method like fromNestedJSON() might be better regarding to backward compatibility. I don't think this is a problem at all, but the rather exotic corner case of calling fromJSON() with something like {'dir1': {'dir2'}} just created dir1 so far, but would also create dir2 from now on...

    Feedback on this is highly appreciated!

    Additionally this fixes a bug (at least I think it's one): so far fromJSON() only took the cwd parameter into account when creating files, not when creating directories.

    released 
    opened by FlorianLoch 8
  • Unsorted Filenames

    Unsorted Filenames

    Hello!

    First, thank you for your package. I am a Node.js beginner and memfs helps me a lot with testing and mocking.

    I am developing a package to load configuration alphabetically by filenames. Searching for Node.js fs readdir behavior, I just realize this method is always sorted on Linux, but not on Windows (or filesystems, whatever).

    https://github.com/nodejs/node/issues/3232

    https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback http://man7.org/linux/man-pages/man3/readdir.3.html#NOTES

    Thinking about it, currently, I can't simulate a readdir with unsorted filenames in memfs.

    https://github.com/streamich/memfs/blob/master/src/volume.ts#L1486

    Can we improve some configuration to disable that feature, or implement another sort?

    opened by wandersonwhcr 8
  • fix: some metadata changes not follow common unix filesystem lead to node.watchFile not trigger

    fix: some metadata changes not follow common unix filesystem lead to node.watchFile not trigger

    1. folder's nlink default value is 2
    2. add subfolder nlink++
    3. atime updated
    4. ctime updated after uid/gid/atime/mtime/perm/nlink updated

    https://github.com/streamich/memfs/issues/889

    opened by vangie 0
  • Tested function does not get in-memory filesystem

    Tested function does not get in-memory filesystem

    I want to test the following function with memfs

    import fs from 'fs-extra'
    import path from 'path'
    
    async function ensureParent(filepath: string) {
      const absolutePath = path.resolve(filepath)
      const parentDir = path.dirname(absolutePath)
    
      const exists = await fs.pathExists(parentDir)
    
      return exists
    }
    
    export default {
      ensureParent,
    }
    
    

    I have, at the root of the project, the following __mocks__/fs.ts file

    import { fs } from 'memfs'
    
    export default fs
    

    and the following __mocks__/fs/promises.ts file

    import { fs } from 'memfs'
    
    export default fs.promises
    

    Here is the test file file.test.ts

    import { describe, it, expect, vi, beforeAll, beforeEach } from 'vitest'
    import { vol } from 'memfs'
    
    import f from '../file'
    
    vi.mock('fs')
    vi.mock('fs/promises')
    
    const fileSystem = {
      './exists/shiman.txt': 'Hello shiman',
    }
    
    beforeAll(() => {
      vol.fromJSON(fileSystem, '/tmp')
    })
    
    beforeEach(() => {
      vol.reset()
    })
    
    describe.concurrent('file utils', () => {
      it('ensure a directory exists', async () => {
        expect(await f.ensureParent('/tmp/exists/shiman.txt')).toBe(true)
      })
    })
    

    However, the test keeps failing, and I realized that, although the mock is taken into account, the in-memory file system is not because await fs.readdir('/', (err, data) => console.log(err, data)) logs the content of / in my machine.

    Have I done something wrong?

    PS: Same question on stackoverflow

    opened by DavNej 0
  • Creating a file in a directory watchFile does not trigger listener

    Creating a file in a directory watchFile does not trigger listener

    The following is a memfs test I wrote.

        test("memfs watchFile", async () => {
            const fs: FileSystem = createFsFromVolume(new Volume());
            fs.mkdirSync("/test_dir/");
            const watchListener = jest.fn();
            try {
                fs.watchFile("/test_dir/", { persistent: true, interval: 50 }, watchListener);
                fs.writeFileSync("/test_dir/1.txt", "test");
                await delay(60);
                const calls = watchListener.mock.calls;
                expect(calls.length).toBe(1);
                expect(calls[0][0]).toMatchObject({ nlink: 3 });
                expect(calls[0][1]).toMatchObject({ nlink: 2 });
            } finally {
                fs.unwatchFile("/test_dir/");
                // fs.rmSync("/test_dir/", { recursive: true, force: true });
            }
        });
    

    The result is as follows

        expect(received).toBe(expected) // Object.is equality
    
        Expected: 1
        Received: 0
    
          37 |             await delay(60);
          38 |             const calls = watchListener.mock.calls;
        > 39 |             expect(calls.length).toBe(1);
             |                                  ^
          40 |             expect(calls[0][0]).toMatchObject({ nlink: 3 });
          41 |             expect(calls[0][1]).toMatchObject({ nlink: 2 });
          42 |         } finally {
    
          at Object.<anonymous> (test/file-system.spec.ts:39:34)
    

    However, testing with node's fs gives the expected results

    import fs from "fs";
    
        test("fs watchFile", async () => {
            fs.mkdirSync("/tmp/watch_test");
            const watchListener = jest.fn();
            try {
                fs.watchFile("/tmp/watch_test", { persistent: true, interval: 50 }, watchListener);
                fs.writeFileSync("/tmp/watch_test/1.txt", "test");
                await delay(60);
                const calls = watchListener.mock.calls;
                expect(calls.length).toBe(1);
                expect(calls[0][0]).toMatchObject({ nlink: 3 });
                expect(calls[0][1]).toMatchObject({ nlink: 2 });
            } finally {
                fs.unwatchFile("/tmp/watch_test");
                fs.rmSync("/tmp/watch_test", { recursive: true, force: true });
            }
        });
    

    I found that on my mac m1, the number of nlink in the folder increases with the number of subfiles, while in memfs the number is always 1. Neither the ctime nor the mtime of the parent directory has changed.

    /tmp/watch_test  $  stat -s .              
    st_dev=16777230 st_ino=34520400 st_mode=040755 st_nlink=2 st_uid=501 st_gid=0 st_rdev=0 st_size=64 st_atime=1671435803 st_mtime=1671435803 st_ctime=1671435803 st_birthtime=1671435803 st_blksize=4096 st_blocks=0 st_flags=0
    
    /tmp/watch_test $ touch 1.txt                   
    /tmp/watch_test $ stat -s .
    st_dev=16777230 st_ino=34520400 st_mode=040755 st_nlink=3 st_uid=501 st_gid=0 st_rdev=0 st_size=96 st_atime=1671435985 st_mtime=1671435985 st_ctime=1671435985 st_birthtime=1671435803 st_blksize=4096 st_blocks=0 st_flags=0
    
    /tmp/watch_test $ touch 2.txt 
    /tmp/watch_test $  stat -s .
    st_dev=16777230 st_ino=34520400 st_mode=040755 st_nlink=4 st_uid=501 st_gid=0 st_rdev=0 st_size=128 st_atime=1671435997 st_mtime=1671435996 st_ctime=1671435996 st_birthtime=1671435803 st_blksize=4096 st_blocks=0 st_flags=0
    
    opened by vangie 1
  • chore(deps): update node.js to v19

    chore(deps): update node.js to v19

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | node | docker | major | 18 -> 19 |


    Release Notes

    nodejs/node

    v19

    Moved to doc/changelogs/CHANGELOG_IOJS.md#โ€‹1.6.0.


    Configuration

    ๐Ÿ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    ๐Ÿšฆ Automerge: Disabled by config. Please merge this manually once you are satisfied.

    โ™ป Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    ๐Ÿ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update node.js to v18

    chore(deps): update node.js to v18

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | node | | major | 8.17.0 -> 18.12.1 | age | adoption | passing | confidence | | @types/node (source) | devDependencies | major | ^10.17.60 -> ^18.0.0 | age | adoption | passing | confidence |


    Release Notes

    nodejs/node

    v18.12.1: 2022-11-04, Version 18.12.1 'Hydrogen' (LTS), @โ€‹juanarbol

    Compare Source

    This is a security release.

    Notable changes

    The following CVEs are fixed in this release:

    • CVE-2022-3602: X.509 Email Address 4-byte Buffer Overflow (High)
    • CVE-2022-3786: X.509 Email Address Variable Length Buffer Overflow (High)
    • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

    More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.

    Commits

    v18.12.0: 2022-10-25, Version 18.12.0 'Hydrogen' (LTS), @โ€‹ruyadorno and @โ€‹RafaelGSS

    Compare Source

    Notable Changes

    This release marks the transition of Node.js 18.x into Long Term Support (LTS) with the codename 'Hydrogen'. The 18.x release line now moves into "Active LTS" and will remain so until October 2023. After that time, it will move into "Maintenance" until end of life in April 2025.

    v18.11.0: 2022-10-13, Version 18.11.0 (Current), @โ€‹danielleadams

    Compare Source

    Notable changes
    watch mode (experimental)

    Running in 'watch' mode using node --watch restarts the process when an imported file is changed.

    Contributed by Moshe Atlow in #โ€‹44366

    Other notable changes
    • fs:
      • (SEMVER-MINOR) add FileHandle.prototype.readLines (Antoine du Hamel) #โ€‹42590
    • http:
      • (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing) #โ€‹44180
    • http2:
      • (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #โ€‹44820
    • lib:
      • (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #โ€‹44048
    • src:
      • (SEMVER-MINOR) add detailed embedder process initialization API (Anna Henningsen) #โ€‹44121
    • util:
      • (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon) #โ€‹44631
    Commits

    v18.10.0: 2022-09-28, Version 18.10.0 (Current), @โ€‹RafaelGSS

    Compare Source

    Notable changes
    • doc:
      • (SEMVER-MINOR) deprecate modp1, modp2, and modp5 groups (Tobias NieรŸen) #โ€‹44588
      • add legendecas to TSC list (Michael Dawson) #โ€‹44662
      • move policy docs to the permissions scope (Rafael Gonzaga) #โ€‹44222
    • gyp:
    • http:
      • (SEMVER-MINOR) throw error on content-length mismatch (sidwebworks) #โ€‹44588
    • stream:
      • (SEMVER-MINOR) add ReadableByteStream.tee() (Daeyeon Jeong) #โ€‹44505
    Commits

    v18.9.1: 2022-09-23, Version 18.9.1 (Current), @โ€‹RafaelGSS

    Compare Source

    This is a security release.

    Notable changes

    The following CVEs are fixed in this release:

    • CVE-2022-32212: DNS rebinding in --inspect on macOS (High)
      • Insufficient fix for macOS devices on v18.5.0
    • CVE-2022-32222: Node 18 reads openssl.cnf from /home/iojs/build/ upon startup on MacOS (Medium)
    • CVE-2022-32213: HTTP Request Smuggling - Flawed Parsing of Transfer-Encoding (Medium)
      • Insufficient fix on v18.5.0
    • CVE-2022-32215: HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)
      • Insufficient fix on v18.5.0
    • CVE-2022-35256: HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)
    • CVE-2022-35255: Weak randomness in WebCrypto keygen

    More detailed information on each of the vulnerabilities can be found in September 22nd 2022 Security Releases blog post.

    llhttp updated to 6.0.10

    llhttp is updated to 6.0.10 which includes fixes for the following vulnerabilities.

    • HTTP Request Smuggling - CVE-2022-32213 bypass via obs-fold mechanic (Medium)(CVE-2022-32213 ): The llhttp parser in the http module does not correctly parse and validate Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
    • HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)(CVE-2022-32215): The llhttp parser in the http module does not correctly handle multi-line Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
    • HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)(CVE-35256): The llhttp parser in the http does not correctly handle header fields that are not terminated with CLRF. This can lead to HTTP Request Smuggling (HRS).
    Commits

    v18.9.0: 2022-09-08, Version 18.9.0 (Current), @โ€‹RafaelGSS

    Compare Source

    Notable changes
    • doc
    • lib
      • (SEMVER-MINOR) add diagnostics channel for process and worker (theanarkh) #โ€‹44045
    • os
    • report
      • (SEMVER-MINOR) expose report public native apis (Chengzhong Wu) #โ€‹44255
    • src
      • (SEMVER-MINOR) expose environment RequestInterrupt api (Chengzhong Wu) #โ€‹44362
    • vm
      • include vm context in the embedded snapshot (Joyee Cheung) #โ€‹44252
    Commits

    Configuration

    ๐Ÿ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    ๐Ÿšฆ Automerge: Disabled by config. Please merge this manually once you are satisfied.

    โ™ป Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    ๐Ÿ”• Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • using memfs with webpack

    using memfs with webpack

    Hi Team,

    It is possible to use a custom file system with webpack as mentioned in this ( https://webpack.js.org/api/node/#custom-file-systems ) doc. However the doc uses require statements. Could you please share us more details on how to use the import memfs statements with webpack's inputFileSystem and outputFileSystem parameters.

    Thanks, Arun

    opened by arunkumar413 0
Releases(v3.4.12)
Owner
Vadim Dalecky
Tuna tartare with white wine; medium-rare steak with red; crรจme brรปlรฉe with espresso and a glass of water.
Vadim Dalecky
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks

Actionhero The reusable, scalable, and quick node.js API server for stateless and stateful applications NPM | Web Site | Latest Docs | GitHub | Slack

Actionhero 2.3k Dec 29, 2022
๐Ÿš€ A RESTful API generator for Node.js

A RESTful API generator rest-hapi is a hapi plugin that generates RESTful API endpoints based on mongoose schemas. It provides a powerful combination

Justin Headley 1.2k Dec 31, 2022
Linked Data API for JavaScript

rdflib.js Javascript RDF library for browsers and Node.js. Reads and writes RDF/XML, Turtle and N3; Reads RDFa and JSON-LD Read/Write Linked Data clie

Read-Write Linked Data 527 Jan 1, 2023
JCore.FileSystem - File system API based on Node.js

JCore.FileSystem Table of Contents JCore.FileSystem Table of Contents Introduction Installation Uninstall Exposed API Network File Release Package Int

Sniper Code 1 Jan 21, 2022
[WIP] n8n nodes that cover the Zoho "Books" API

n8n-nodes-starter This repo contains example nodes to help you get started building your own custom integrations for n8n. It includes the node linter

Vrishin Patel 6 Nov 26, 2022
โœ๏ธ Extended Writer supercharges Kirby's built-in Writer field with useful marks, nodes and features you wish were built-in

Extended Writer Extended Writer supercharges Kirby's built-in Writer field and block with useful marks, nodes and features you wish were built-in. Fea

coralic 21 Nov 10, 2022
A command line interface for file handling using JCore.FileSystem

JCore.FileSystem.Cli Table of Contents JCore.FileSystem.Cli Table of Contents Introduction Installation Uninstall Usage References Articles Packages T

Sniper Code 1 Jan 21, 2022
A discord bot that monitors the LavaLink nodes given, and updates it via an embed on discord.

LavaLink-Node-Monitor-for-Discord This Bot will help you monitor multiple LavaLink nodes directly on discord [Updates Every 30 Seconds] Setting Up The

Ranjithh K 4 Apr 2, 2022
A boilerplate for Vite, React, Tailwindcss with filesystem based routing

Template This is a React, Vite, Tailwind template. It features filesystem based routing, similar(ish) to Next.js. It also formats and serves markdown

Chris Dzoba 8 Dec 28, 2022
Library for calculating where to draw tree nodes, while avoiding overlap.

Tree Grapher Library for calculating where to draw tree nodes, while avoiding overlap. Installation 1) npm install tree-grapher --save-exact The --sav

Stephen Wicklund 1 Feb 7, 2022
An easy way to discover and manage your cloud like a local filesystem

cfs An easy way to discover and manage your cloud like a local filesystem. The swiss army knife for finding any resource in your AWS account. โฌ instal

Khalid Zoabi 4 Jun 4, 2022
A small application that uses your sats to transmit data to other nodes.

satoshi-read-write Send data to other nodes in the Lightning Network. This project mainly serves as a demonstration to the DataSig and DataStruct spec

George Tsagkarelis 9 Nov 3, 2022
Garfield Whatsapp ๐Ÿผ Userbot is a button ๐Ÿฆ‹ bot that operates 24ร—7 Hour powered By X-nodes server

GARFIELD WHATSAPP USER BOT LATEST VERSION (Button Update ?? And 24ร—7 hour Working ?? ) New Features and upgrades v8.0 ?? ?? Bot continues to work even

๏ผฎ๏ผฏ๏ผฉ๏ผบ ฮž 33 Dec 4, 2022
Run a command, watch the filesystem, stop the process on file change and then run the command again...

hubmon Run a command, watch the filesystem, stop the process on file change and then run the command again... Install You can install this command lin

Hubert SABLONNIรˆRE 7 Jul 30, 2022
A blazingly fast Bun.js filesystem router, with an unpleasantly smooth experience!

Oily A blazingly fast Bun.js filesystem router, with an unpleasantly smooth experience! Installation ยท Usage ยท Examples ยท Discord Installation Once yo

Aries 22 Dec 19, 2022
The bot used for the official Huguitis Nodes server. Simply an entertainment bot.

HuguitisNodesBot The bot used for the official Huguitis Nodes server. Simply an entertainment bot. You can use the bot but remember to follow the lice

Huguitis Nodes 7 Nov 19, 2022
A transparent, in-memory, streaming write-on-update JavaScript database for Small Web applications that persists to a JavaScript transaction log.

JavaScript Database (JSDB) A zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to

Small Technology Foundation 237 Nov 13, 2022
An in memory postgres DB instance for your unit tests

pg-mem is an experimental in-memory emulation of a postgres database. โค It works both in Node or in the browser. โญ this repo if you like this package,

Olivier Guimbal 1.2k Dec 30, 2022
Bluzelle is a smart, in-memory data store. It can be used as a cache or as a database.

SwarmDB ABOUT SWARMDB Bluzelle brings together the sharing economy and token economy. Bluzelle enables people to rent out their computer storage space

Bluzelle 225 Dec 31, 2022
๐Ÿ› Memory leak testing for node.

Leakage - Memory Leak Testing for Node Write leakage tests using Mocha or another test runner of your choice. Does not only support spotting and fixin

Andy Wermke 1.6k Dec 28, 2022