1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.namespace = exports.task = exports.setOption = exports.strict = exports.option = exports.desc = exports.onerror = exports.after = exports.before = exports.setGlobalOptions = void 0;
|
4 | const utils_1 = require("./utils");
|
5 | const task_manager_1 = require("./task-manager");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | function setGlobalOptions(options) {
|
11 | Object.assign(task_manager_1.getGlobalTaskManager().globalOptions, options);
|
12 | }
|
13 | exports.setGlobalOptions = setGlobalOptions;
|
14 | function appendCallback(name, fn) {
|
15 | let tm = task_manager_1.getGlobalTaskManager();
|
16 | tm.listeners[name].push({
|
17 | namespaces: tm.namespaces,
|
18 | fn,
|
19 | });
|
20 | }
|
21 | exports.before = (fn) => appendCallback('before', fn);
|
22 | exports.after = (fn) => appendCallback('after', fn);
|
23 | exports.onerror = (fn) => appendCallback('onerror', fn);
|
24 | var TaskOptions;
|
25 | (function (TaskOptions) {
|
26 | TaskOptions.last = empty();
|
27 | function empty() {
|
28 | return {
|
29 | desc: undefined,
|
30 | optionDefs: [],
|
31 | strict: task_manager_1.getGlobalTaskManager().globalOptions.strict,
|
32 | loading: undefined,
|
33 | };
|
34 | }
|
35 | TaskOptions.empty = empty;
|
36 | })(TaskOptions || (TaskOptions = {}));
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | function desc(desc) {
|
42 | TaskOptions.last.desc = desc;
|
43 | }
|
44 | exports.desc = desc;
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | function option(rawName, description, config) {
|
52 | TaskOptions.last.optionDefs.push([rawName, description, config]);
|
53 | }
|
54 | exports.option = option;
|
55 |
|
56 |
|
57 |
|
58 | function strict() {
|
59 | TaskOptions.last.strict = true;
|
60 | }
|
61 | exports.strict = strict;
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | function setOption(options) {
|
67 | Object.assign(TaskOptions.last, options);
|
68 | }
|
69 | exports.setOption = setOption;
|
70 |
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 | function task(name, dependencies = [], fn) {
|
77 | if (utils_1.Is.fn(dependencies)) {
|
78 | fn = dependencies;
|
79 | dependencies = [];
|
80 | }
|
81 | const namespaces = task_manager_1.getGlobalTaskManager().namespaces;
|
82 | if (namespaces.length) {
|
83 | name = `${namespaces.join(':')}:${name}`;
|
84 | }
|
85 | const t = {
|
86 | name,
|
87 | namespaces,
|
88 | options: {},
|
89 | optionDefs: TaskOptions.last.optionDefs,
|
90 | desc: TaskOptions.last.desc,
|
91 | strict: TaskOptions.last.strict,
|
92 | loading: TaskOptions.last.loading,
|
93 | rawArgs: [],
|
94 | dependencies: dependencies.map(d => {
|
95 | if (utils_1.Is.str(d)) {
|
96 | return { name: d, options: {} };
|
97 | }
|
98 | else if (d._isDepBuilder) {
|
99 | return d.toTaskDep();
|
100 | }
|
101 | return d;
|
102 | }),
|
103 | fn,
|
104 | };
|
105 | TaskOptions.last = TaskOptions.empty();
|
106 | task_manager_1.getGlobalTaskManager().addTask(t);
|
107 | return t;
|
108 | }
|
109 | exports.task = task;
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 |
|
116 |
|
117 |
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 | function namespace(ns, fn) {
|
133 | const tm = task_manager_1.getGlobalTaskManager();
|
134 | tm.namespaces = tm.namespaces.concat(ns);
|
135 | fn(ns);
|
136 | tm.namespaces = tm.namespaces.slice(0, -1);
|
137 | }
|
138 | exports.namespace = namespace;
|
139 |
|
\ | No newline at end of file |