1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = createPipeline;
|
7 |
|
8 | var _path = require('path');
|
9 |
|
10 | var _file = require('./util/file');
|
11 |
|
12 | function _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 |
|
14 | var keys = Object.keys;
|
15 |
|
16 | function 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( 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 |
|
\ | No newline at end of file |