@imqueue/rpc
Version:
RPC-like client-service implementation over messaging queue
66 lines • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fileExists = fileExists;
exports.mkdir = mkdir;
exports.writeFile = writeFile;
/*!
* IMQ-RPC helpers: fs
*
* Copyright (c) 2018, imqueue.com <support@imqueue.com>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
const fs = require("fs");
/**
* Checks if file exists at given path
*
* @param {string} path
* @return {Promise<any>}
*/
function fileExists(path) {
return new Promise(resolve => fs.access(path, err => resolve(!err)));
}
/**
* Async mkdir
*
* @param {string} path
* @return {Promise<any>}
*/
function mkdir(path) {
return new Promise((resolve, reject) => fs.mkdir(path, generalCallback.bind(null, resolve, reject)));
}
/**
* Async writeFile
*
* @param {string} path
* @param {string} content
* @return {Promise<any>}
*/
function writeFile(path, content) {
return new Promise((resolve, reject) => fs.writeFile(path, content, { encoding: 'utf8' }, generalCallback.bind(null, resolve, reject)));
}
/**
* Constructs and return callback which will resolve promise using
* given resolver and reject'or
*
* @param {() => void} resolve
* @param {(err: Error) => void} reject
* @param {Error} err
*/
function generalCallback(resolve, reject, err) {
if (err) {
reject(err);
}
resolve();
}
//# sourceMappingURL=fs.js.map