4.10.11 • Published 10 months ago

@jsenv/filesystem v4.10.11

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Jsenv filesystem npm package

Collection of functions to interact with filesystem in Node.js

List files using pattern matching

import { listFilesMatching } from "@jsenv/filesystem";

const jsFiles = await listFilesMatching({
  directoryUrl: new URL("./", import.meta.url),
  patterns: {
    "./**/*.js": true,
    "./**/*.test.js": false,
  },
});
[
  'file:///Users/dmail/docs/demo/a.js',
  'file:///Users/dmail/docs/demo/b.js'
]

Watch a specific file changes

import { readFileSync } from "node:fs";
import { registerFileLifecycle } from "@jsenv/filesystem";

const packageJSONFileUrl = new URL("./package.json", import.meta.url);
let packageJSON = null;
const unregister = registerFileLifecycle(packageJSONFileUrl, {
  added: () => {
    packageJSON = JSON.parse(String(readFileSync(packageJSONFileUrl)));
  },
  updated: () => {
    packageJSON = JSON.parse(String(readFileSync(packageJSONFileUrl)));
  },
  removed: () => {
    packageJSON = null;
  },
  notifyExistent: true,
});
unregister(); // stop watching the file changes

Watch many files changes

import { registerDirectoryLifecycle } from "@jsenv/filesystem";

const directoryContentDescription = {};
const unregister = registerDirectoryLifecycle("file:///directory/", {
  watchPatterns: {
    "./**/*": true,
    "./node_modules/": false,
  },
  added: ({ relativeUrl, type }) => {
    directoryContentDescription[relativeUrl] = type;
  },
  removed: ({ relativeUrl }) => {
    delete directoryContentDescription[relativeUrl];
  },
});
unregister(); // stop watching the directory changes

API

docs/API.md

Installation

npm install @jsenv/filesystem
4.10.9

10 months ago

4.10.5

10 months ago

4.9.8

11 months ago

4.10.6

10 months ago

4.9.7

11 months ago

4.10.7

10 months ago

4.10.8

10 months ago

4.9.9

11 months ago

4.9.4

11 months ago

4.9.3

11 months ago

4.9.6

11 months ago

4.9.5

11 months ago

4.9.0

11 months ago

4.9.2

11 months ago

4.9.1

11 months ago

4.10.1

10 months ago

4.10.2

10 months ago

4.10.3

10 months ago

4.10.4

10 months ago

4.10.0

10 months ago

4.8.1

11 months ago

4.8.0

11 months ago

4.8.2

11 months ago

4.7.0

12 months ago

4.7.5

11 months ago

4.7.2

11 months ago

4.7.1

11 months ago

4.7.4

11 months ago

4.7.3

11 months ago

4.6.7

12 months ago

4.6.6

12 months ago

4.6.9

12 months ago

4.6.8

12 months ago

4.9.10

11 months ago

4.10.10

10 months ago

4.10.11

10 months ago

4.6.5

1 year ago

4.6.4

1 year ago

4.6.3

1 year ago

4.4.0

2 years ago

4.6.1

2 years ago

4.2.5

2 years ago

4.6.0

2 years ago

4.2.4

2 years ago

4.2.6

2 years ago

4.5.0

2 years ago

4.3.2

2 years ago

4.3.1

2 years ago

4.5.1

2 years ago

4.3.0

2 years ago

4.2.3

2 years ago

4.2.2

2 years ago

4.2.1

2 years ago

4.2.0

2 years ago

4.1.8

2 years ago

4.1.7

2 years ago

4.1.9

2 years ago

4.1.6

3 years ago

4.1.4

3 years ago

4.1.5

3 years ago

4.0.9

3 years ago

4.0.8

3 years ago

4.0.5

3 years ago

4.1.3

3 years ago

4.0.4

3 years ago

4.0.10

3 years ago

4.0.7

3 years ago

4.0.6

3 years ago

4.1.0

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

4.1.2

3 years ago

4.0.3

3 years ago

4.1.1

3 years ago

4.0.2

3 years ago

3.2.2

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.0

3 years ago

3.0.0

3 years ago

2.7.2

3 years ago

2.7.0

3 years ago

2.6.1

3 years ago

2.7.1

3 years ago

2.6.0

4 years ago

2.5.0

4 years ago

2.4.0

4 years ago

2.5.1

4 years ago

2.3.0

4 years ago

2.3.1

4 years ago

2.2.0

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.0.0

4 years ago