57 lines
4.4 KiB
JavaScript
57 lines
4.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.async = exports.sync = exports.validateInput = void 0;
|
|
const fs = require("fs");
|
|
const Q = require('q');
|
|
const write_1 = require("./write");
|
|
const validate_1 = require("./utils/validate");
|
|
const validateInput = (methodName, path, data, options) => {
|
|
const methodSignature = methodName + '(path, data, [options])';
|
|
(0, validate_1.validateArgument)(methodSignature, 'path', path, ['string']);
|
|
(0, validate_1.validateArgument)(methodSignature, 'data', data, ['string', 'buffer']);
|
|
(0, validate_1.validateOptions)(methodSignature, 'options', options, {
|
|
mode: ['string', 'number']
|
|
});
|
|
};
|
|
exports.validateInput = validateInput;
|
|
// ---------------------------------------------------------
|
|
// SYNC
|
|
// ---------------------------------------------------------
|
|
const sync = (path, data, options) => {
|
|
try {
|
|
fs.appendFileSync(path, data, options ? { encoding: options.encoding, mode: options.mode } : {});
|
|
}
|
|
catch (err) {
|
|
if (err.code === 'ENOENT') {
|
|
// Parent directory doesn't exist, so just pass the task to `write`,
|
|
// which will create the folder and file.
|
|
(0, write_1.sync)(path, data, options);
|
|
}
|
|
else {
|
|
throw err;
|
|
}
|
|
}
|
|
};
|
|
exports.sync = sync;
|
|
// ---------------------------------------------------------
|
|
// ASYNC
|
|
// ---------------------------------------------------------
|
|
const promisedAppendFile = Q.denodeify(fs.appendFile);
|
|
const async = (path, data, options) => {
|
|
return new Promise((resolve, reject) => {
|
|
promisedAppendFile(path, data, options)
|
|
.then(resolve)
|
|
.catch((err) => {
|
|
if (err.code === 'ENOENT') {
|
|
// Parent directory doesn't exist, so just pass the task to `write`,
|
|
// which will create the folder and file.
|
|
(0, write_1.async)(path, data, options).then(resolve, reject);
|
|
}
|
|
else {
|
|
reject(err);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
exports.async = async;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2FwcGVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLG1DQUFpRTtBQUNqRSwrQ0FBcUU7QUFPOUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFrQixFQUFFLElBQVksRUFBRSxJQUFTLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQzlGLE1BQU0sZUFBZSxHQUFHLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQztJQUMvRCxJQUFBLDJCQUFnQixFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxJQUFBLDJCQUFnQixFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsSUFBQSwwQkFBZSxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO1FBQ25ELElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDM0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBUFcsUUFBQSxhQUFhLGlCQU94QjtBQUNGLDREQUE0RDtBQUM1RCxPQUFPO0FBQ1AsNERBQTREO0FBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLElBQVMsRUFBRSxPQUFnQixFQUFRLEVBQUU7SUFDdEUsSUFBSSxDQUFDO1FBQ0gsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQTBCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsb0VBQW9FO1lBQ3BFLHlDQUF5QztZQUN6QyxJQUFBLFlBQVMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQVpXLFFBQUEsSUFBSSxRQVlmO0FBRUYsNERBQTREO0FBQzVELFFBQVE7QUFDUiw0REFBNEQ7QUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxJQUE4QixFQUFFLE9BQWlCLEVBQWlCLEVBQUU7SUFDdEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2IsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixvRUFBb0U7Z0JBQ3BFLHlDQUF5QztnQkFDekMsSUFBQSxhQUFVLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQWRXLFFBQUEsS0FBSyxTQWNoQiJ9
|