UNPKG

3.16 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = createPipeline;
7
8var _path = require('path');
9
10var _file = require('./util/file');
11
12function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
13
14var keys = Object.keys;
15
16function createPipeline(pkg, opts, build) {
17 return function pipeline() {
18 var _this = this;
19
20 for (var _len = arguments.length, files = Array(_len), _key = 0; _key < _len; _key++) {
21 files[_key] = arguments[_key];
22 }
23
24 return files.map(function () {
25 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(file) {
26 var name, result, output;
27 return regeneratorRuntime.wrap(function _callee$(_context) {
28 while (1) {
29 switch (_context.prev = _context.next) {
30 case 0:
31 name = (0, _path.basename)(file, (0, _path.extname)(file));
32 result = { input: file }, output = void 0;
33 _context.prev = 2;
34 _context.next = 5;
35 return build(name, file);
36
37 case 5:
38 output = _context.sent;
39 _context.next = 12;
40 break;
41
42 case 8:
43 _context.prev = 8;
44 _context.t0 = _context['catch'](2);
45
46 result.error = _context.t0;
47 return _context.abrupt('return', result);
48
49 case 12:
50
51 result.messages = output.messages;
52 result.files = keys(output.files).map(function (name) {
53 var path = (0, _path.join)(pkg.resolve(opts.lib), (0, _path.dirname)((0, _path.relative)(pkg.resolve(opts.src), (0, _path.resolve)(file))));
54 var outfile = (0, _path.join)(path, name);
55 return outfile;
56 });
57
58 _context.prev = 14;
59 _context.next = 17;
60 return Promise.all(keys(output.files).map(function (name, i) {
61 var outfile = result.files[i];
62 return (0, _file.put)(outfile, output.files[name]);
63 }));
64
65 case 17:
66 _context.next = 22;
67 break;
68
69 case 19:
70 _context.prev = 19;
71 _context.t1 = _context['catch'](14);
72
73 result.error = _context.t1;
74
75 case 22:
76 return _context.abrupt('return', result);
77
78 case 23:
79 case 'end':
80 return _context.stop();
81 }
82 }
83 }, _callee, _this, [[2, 8], [14, 19]]);
84 }));
85
86 return function (_x) {
87 return _ref.apply(this, arguments);
88 };
89 }());
90 };
91}
92//# sourceMappingURL=pipeline.js.map
\No newline at end of file