1 | var $, M, gulp, m;
|
2 |
|
3 | $ = {};
|
4 |
|
5 | $.type = require('../dist/type');
|
6 |
|
7 | gulp = require('gulp');
|
8 |
|
9 | M = class M {
|
10 | |
11 |
|
12 |
|
13 |
|
14 |
|
15 | add(name, fn) {
|
16 | var _fn, type;
|
17 | type = $.type(fn);
|
18 | if (type !== 'asyncfunction' && type !== 'function') {
|
19 | throw new Error(`task/error: invalid type of '${name}()': '${type}'`);
|
20 | }
|
21 | if (type !== 'asyncfunction') {
|
22 |
|
23 | _fn = fn;
|
24 | fn = async function() {
|
25 | await new Promise(function(resolve) {
|
26 | return resolve();
|
27 | });
|
28 | return _fn();
|
29 | };
|
30 | }
|
31 | gulp.task(name, fn);
|
32 | return this;
|
33 | }
|
34 |
|
35 | execute(name, fn) {
|
36 | if (!fn) {
|
37 | return this.get(name);
|
38 | }
|
39 | this.add(name, fn);
|
40 |
|
41 |
|
42 |
|
43 | return true;
|
44 | }
|
45 |
|
46 | get(name) {
|
47 | var map, result;
|
48 | map = gulp._registry._tasks;
|
49 | if (!name) {
|
50 | result = {};
|
51 | for (name in map) {
|
52 | result[name] = map[name].unwrap();
|
53 | }
|
54 | return result;
|
55 | }
|
56 | result = map[name];
|
57 | if (!result) {
|
58 | throw new Error(`task/error: invalid task '${name}'`);
|
59 | }
|
60 | return result.unwrap();
|
61 | }
|
62 |
|
63 | };
|
64 |
|
65 | m = new M();
|
66 |
|
67 | module.exports = function(...arg) {
|
68 | var result;
|
69 | result = m.execute(...arg);
|
70 |
|
71 |
|
72 | if (result !== true) {
|
73 | return result;
|
74 | }
|
75 | return this;
|
76 | };
|