forked from mirrors/Scribe.js
157 lines
4.6 KiB
JavaScript
157 lines
4.6 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.Writer = exports.Transform = exports.Router = exports.Reader = exports.Middleware = undefined;
|
|
|
|
var _keys = require('babel-runtime/core-js/object/keys');
|
|
|
|
var _keys2 = _interopRequireDefault(_keys);
|
|
|
|
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
|
|
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
|
|
var _stringify = require('babel-runtime/core-js/json/stringify');
|
|
|
|
var _stringify2 = _interopRequireDefault(_stringify);
|
|
|
|
var _typeof2 = require('babel-runtime/helpers/typeof');
|
|
|
|
var _typeof3 = _interopRequireDefault(_typeof2);
|
|
|
|
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
|
|
|
|
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
|
|
|
exports.resolvePipeline = resolvePipeline;
|
|
exports.create = create;
|
|
|
|
var _fs = require('fs');
|
|
|
|
var _fs2 = _interopRequireDefault(_fs);
|
|
|
|
var _path = require('path');
|
|
|
|
var _path2 = _interopRequireDefault(_path);
|
|
|
|
var _rc = require('rc');
|
|
|
|
var _rc2 = _interopRequireDefault(_rc);
|
|
|
|
var _middleware = require('./middleware');
|
|
|
|
var Middleware = _interopRequireWildcard(_middleware);
|
|
|
|
var _reader = require('./reader');
|
|
|
|
var Reader = _interopRequireWildcard(_reader);
|
|
|
|
var _router = require('./router');
|
|
|
|
var Router = _interopRequireWildcard(_router);
|
|
|
|
var _transform = require('./transform');
|
|
|
|
var Transform = _interopRequireWildcard(_transform);
|
|
|
|
var _writer = require('./writer');
|
|
|
|
var Writer = _interopRequireWildcard(_writer);
|
|
|
|
var _scriberc = require('../.scriberc.json');
|
|
|
|
var _scriberc2 = _interopRequireDefault(_scriberc);
|
|
|
|
var _configExtend = require('./libs/config-extend');
|
|
|
|
var _configExtend2 = _interopRequireDefault(_configExtend);
|
|
|
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
exports.Middleware = Middleware;
|
|
exports.Reader = Reader;
|
|
exports.Router = Router;
|
|
exports.Transform = Transform;
|
|
exports.Writer = Writer;
|
|
function resolvePipeline(scribe, pipeline) {
|
|
var resolved = [];
|
|
var _iteratorNormalCompletion = true;
|
|
var _didIteratorError = false;
|
|
var _iteratorError = undefined;
|
|
|
|
try {
|
|
for (var _iterator = (0, _getIterator3.default)(pipeline), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
var through = _step.value;
|
|
|
|
if (typeof through === 'function') {
|
|
resolved.push(new through(scribe));
|
|
} else if ((typeof through === 'undefined' ? 'undefined' : (0, _typeof3.default)(through)) === 'object') {
|
|
resolved.push(through);
|
|
} else if (typeof through === 'string') {
|
|
var Class = require(_path2.default.join(__dirname, through)).default;
|
|
resolved.push(new Class(scribe));
|
|
}
|
|
}
|
|
} catch (err) {
|
|
_didIteratorError = true;
|
|
_iteratorError = err;
|
|
} finally {
|
|
try {
|
|
if (!_iteratorNormalCompletion && _iterator.return) {
|
|
_iterator.return();
|
|
}
|
|
} finally {
|
|
if (_didIteratorError) {
|
|
throw _iteratorError;
|
|
}
|
|
}
|
|
}
|
|
|
|
return resolved;
|
|
}
|
|
|
|
function create(opts) {
|
|
opts = (0, _configExtend2.default)(_scriberc2.default, (0, _rc2.default)('scribe', {}), opts);
|
|
|
|
if (opts.debug) {
|
|
process.stdout.write((0, _stringify2.default)(opts, null, 2) + '\n');
|
|
}
|
|
|
|
// create default console
|
|
var console = new Reader.BasicConsole(opts);
|
|
var _opts = opts;
|
|
var exposeMap = _opts.expose;
|
|
var pipelineMap = _opts['expose/pipeline'];
|
|
|
|
|
|
[].concat((0, _toConsumableArray3.default)(console.exposed()), (0, _toConsumableArray3.default)((0, _keys2.default)(exposeMap))).forEach(function (expose) {
|
|
if (expose === 'default') return;
|
|
var pipelines = exposeMap[expose] || exposeMap.default;
|
|
if (Array.isArray(pipelines)) {
|
|
pipelines.forEach(function (pipeline) {
|
|
if (Array.isArray(pipelineMap[pipeline])) {
|
|
if (opts.debug) {
|
|
process.stdout.write('Exposing ' + expose + ' through ' + pipeline + '\n');
|
|
}
|
|
|
|
console.expose(expose);
|
|
console.pipe.apply(console, [expose, pipeline].concat((0, _toConsumableArray3.default)(resolvePipeline(console, pipelineMap[pipeline]))));
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
if (opts.handleUncaughtException) {
|
|
process.on('uncaughtException', function (e) {
|
|
return console.error(e).then(function () {
|
|
return process.exit(1);
|
|
});
|
|
});
|
|
}
|
|
|
|
return console;
|
|
}
|