@valtech-commerce/fs
Version:
graceful-fs / fs-extra wrapper with goodies
66 lines (45 loc) • 1.18 kB
JavaScript
//--------------------------------------------------------
//-- YAML
//--------------------------------------------------------
;
const { default: ow } = require('ow');
const yaml = require('js-yaml');
const utils = require('./helpers/utils');
const write = (file, object) => {
return new Promise((resolve, reject) => {
try {
utils.writeMaybeCompressedFile(file, yaml.dump(object), resolve, reject);
} catch (error) {
reject(error);
}
});
};
class FspYaml {
read(file) {
ow(file, ow.string.nonEmpty);
return new Promise((resolve, reject) => {
utils.readMaybeCompressedFile(file).then((data) => {
try {
resolve(yaml.load(data));
} catch (error) {
reject(error);
}
}, reject);
});
}
write(file, object) {
ow(file, ow.string.nonEmpty);
ow(object, ow.object);
return write(file, object);
}
output(file, object) {
ow(file, ow.string.nonEmpty);
ow(object, ow.object);
return new Promise((resolve, reject) => {
utils.ensureContainingFolder(file).then(() => {
write(file, object).then(resolve, reject);
}, reject);
});
}
}
module.exports = new FspYaml();