
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Improved fork of fs-extra with extra [sic] features!
fsxt provides support for Node 16 and above. Node 17 is required for better feature support.
npm install fsxt
pnpm install fsxt
yarn add fsxt
Or install with your preferred package manager (yarn, pnpm, ...)
fsxt is a mostly drop-in replacement for the node.js core fs
module. All methods in fs can be used in their standard forms in fsxt, with some
improvements.
You don't ever need to include the original fs module again:
const fs = require('fs'); // this is no longer necessary
you can now do this:
const fs = require('fsxt');
or if you prefer to make it clear that you're using fsxt and not fs, you may want to name your
fs variable fsxt like so:
const fsxt = require('fsxt');
you can also keep both, but it's redundant:
const fs = require('fs');
const fsxt = require('fsxt');
node:fsThe callback-based implementation of fs.exists now uses a propper error-first callback system like mz/fs.
node:fsAll the improvements from mz/fs are included,
which also includes improvements from graceful-fs.
Most methods are async by default, returning a Promise that resolves to the method's result, or rejects if the operation fails.
Sync methods on the other hand will throw if an error occurs, and directly return the resulting value to the caller if the operation succeeds.
You can also use the methods in the legacy node.js form, passing a callback as the last parameter,
as a function that takes (error, result) parameters.
Example use:
const fs = require('fsxt');
// or
// import * as fs from 'fsxt';
// Async with promises:
fs.copy('/tmp/myfile', '/tmp/mynewfile')
.then(() => console.log('success!'))
.catch(err => console.error(err));
// Async with callbacks:
fs.copy('/tmp/myfile', '/tmp/mynewfile', err => {
if (err) return console.error(err);
console.log('success!');
});
// Sync:
try {
fs.copySync('/tmp/myfile', '/tmp/mynewfile');
console.log('success!');
} catch (err) {
console.error(err);
}
// Async/Await:
async function copyFiles() {
try {
await fs.copy('/tmp/myfile', '/tmp/mynewfile');
console.log('success!');
} catch (err) {
console.error(err);
}
}
copyFiles();
The documentation is available at https://uwx-node-modules.github.io/fsxt/. Also, the package is fully typed with TypeScript.
If you want to watch for changes to files or directories, then you should use chokidar.
Do you want to hack on fsxt? Well, you probably shouldn't. Still, you can go ahead and send a PR.
Please, no changes to anything in the lib folder; the contents of that folder are taken entirely
verbatim from fs-extra, so they should be submitted upstream.
fsxt contains like at least 4 tests that pass.
npm run lint: runs eslintnpm run test: runs the testsnpm run test-no-fse: runs the tests, except for fs-extra testsIf you run the tests on the Windows and receive a lot of symbolic link EPERM permission errors,
it's because on Windows you need elevated privilege to create symbolic links. You can either run the
tests as Administrator or run npm run test-no-fse to test only fsxt-exclusive methods, which doesn't
include symbolic links
Licensed under MIT. Full license text available at LICENSE.txt
fs-extra is copyright (c) 2011-2017 JP Richardson
fsxt is copyright © 2016-2018 uwx, some rights reserved.
Parts of the documentation were taken from other modules and the Node.js fs module.
Relevant licenses are included at the following locations:
fs-extra and fsxt are not endorsed by or affiliated with Joyent or the Node.js Foundation.
fsxt is not endorsed by or affiliated with JP Richardson.
FAQs
fs module extensions. it's fs-extra on fs-extra
We found that fsxt demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.