blot
Version:
The DRY documentation builder
130 lines (102 loc) • 3.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.log = exports.util = undefined;
var _apib = require('./apib');
var _hazy = require('hazy');
var _hazy2 = _interopRequireDefault(_hazy);
var _protagonist = require('protagonist');
var _protagonist2 = _interopRequireDefault(_protagonist);
var _hercule = require('hercule');
var _hercule2 = _interopRequireDefault(_hercule);
var _glob2 = require('glob');
var _glob3 = _interopRequireDefault(_glob2);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _mkpath = require('mkpath');
var _mkpath2 = _interopRequireDefault(_mkpath);
var _log = require('./log');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Writes UTF-8 data to the provided path
*
* @param {String} filepath
* @param {Object} data
* @returns {Boolean}
*/
// import * as env from './env'
var util = exports.util = {
fs: {
/**
* Reads in UTF-8 data from the provided path
*
* @param {String} filepath
* @param {Object} data
* @returns {Boolean}
*/
src: function src(filepath, andThen) {
return new Promise(function (resolve, reject) {
_fs2.default.readFile(filepath, 'utf-8', function (err, data) {
if (!err) {
if (andThen instanceof Function) {
andThen(data).then(resolve).catch(reject);
} else {
resolve(data);
}
} else {
reject('failed to read file: ' + err);
}
});
});
},
/**
* Writes UTF-8 data to the provided path
*
* @param {String} filepath
* @param {Object} data
* @returns {Boolean}
*/
dest: function dest(filepath, data) {
return new Promise(function (resolve, reject) {
var relDir = _path2.default.dirname(filepath);
(0, _mkpath2.default)(relDir, function (err) {
if (!err) {
_fs2.default.writeFile(filepath, data, 'utf-8', function (err) {
if (!err) {
log().info('exported content to ' + filepath);
resolve(data);
} else {
reject('error occured while writing file: ' + err);
}
});
} else {
reject('error occured while scaffolding destination folders: ${err}');
}
});
});
},
/**
* Determines if a file exists at the provided path
*
* @param {String} filepath
* @returns {Boolean}
*/
existsAt: function existsAt(filepath) {
try {
_fs2.default.accessSync(_path2.default.resolve(filepath), _fs2.default.R_OK);
return true;
} catch (e) {
return false;
}
}
// TODO uri
}
/**
* Module-level bunyan logger
*/
};var log = exports.log = function log() {
return (0, _log.logger)().child({ module: 'io' });
};