promisrFS
promisifies the majority of the functions available in the core fs module.
This module just forwards your arguments to the particular function available on the fs
module, so check out the spec for more information. Additionally, any optional arguments in the spec are optional here also.
Node Version | Build Status |
---|---|
v6.10.2 | TBD |
npm install @keymux/promisrfs
yarn add @keymux/promisrfs
Virtually every asynchronous function has been duplicated here with a predictable name.
fs name |
promisrFS name |
---|---|
mkdir |
mkdirPromise |
readFile |
readFilePromise |
unlink |
unlinkPromise |
writeFile |
writeFilePromise |
fs name |
promisrFS name |
---|---|
realpath |
realpathPromise |
realpath.native |
realpath.nativePromise |
Promises to read a file from disk and return the contents.
const { readFilePromise } = require("@keymux/promisrfs");
const path = require("path");
const filename = path.resolve("path/to/file");
const options = {
encoding: "utf-8",
flag: "r",
};
return readFilePromise(filename, options)
.then(contents => {
console.log(contents);
}).catch(error => {
console.error(error);
});
Promises to write a file to disk
const { writeFilePromise } = require("@keymux/promisrfs");
const path = require("path");
const filename = path.resolve("path/to/file");
const contents = "Some text to write";
const options = {
encoding: "utf-8",
flag: "r",
};
return writeFilePromise(filename, contents, options)
.then(() => {
console.log("Wrote the file successfully to disk");
}).catch(error => {
console.error(error);
});
// This example is meant to read a file, perform some transformation
// and write the result
const { readFilePromise, writeFilePromise } = require("@keymux/promisrfs");
const minimist = require("minimist");
const path = require("path");
const inputFile = "input-file";
const outputFile = "output-file";
const argv = minimist(process.argv.slice(2));
[inputFile, outputFile].forEach(ea => {
if (argv[ea] === undefined) {
console.error(`--${ea} was missing`);
const base = path.basename(process.argv[1]);
console.error("Usage\n" +
` ${base} --input-file=path/to/input --output-file=path/to/output`);
process.exit(-1);
}
});
// Replaces all instances of A or a with a question mark
const transformation = contents => contents.toString().replace(/[Aa]/g, "?");
// Promise chaining fun
return readFilePromise(argv[inputFile])
.then(contents => transformation(contents))
.then(result => writeFilePromise(argv[outputFile], result));