pareto-core-command 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import * as _pi from 'pareto-core-interface';
2
+ export type Command_Block<Error> = _pi.Command_Promise<Error>[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZF9CbG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21tYW5kX0Jsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,32 @@
1
+ import * as _pi from 'pareto-core-interface';
2
+ import { Command_Block } from "./Command_Block";
3
+ export declare namespace p {
4
+ const assert: <Error>(assertion: boolean, error_if_failed: Error) => _pi.Command_Promise<Error>;
5
+ const fail: <Error>(error: Error) => _pi.Command_Promise<Error>;
6
+ const if_: <Error>(precondition: boolean, command_block: Command_Block<Error>, else_command_block?: Command_Block<Error>) => _pi.Command_Promise<Error>;
7
+ namespace list {
8
+ const parallel: <Error, Element_Error>(the_array: _pi.List<_pi.Command_Promise<Element_Error>>, errors_aggregator: _pi.Transformer<_pi.List<Element_Error>, Error>) => _pi.Command_Promise<Error>;
9
+ const serie: <Error>(array: _pi.List<_pi.Command_Promise<Error>>) => _pi.Command_Promise<Error>;
10
+ }
11
+ namespace dictionary {
12
+ const parallel: <T, Error, Entry_Error>(dictionary: _pi.Dictionary<T>, block: (value: T, key: string) => Command_Block<Entry_Error>, aggregate_errors: _pi.Transformer<_pi.Dictionary<Entry_Error>, Error>) => _pi.Command_Promise<Error>;
13
+ namespace deprecated_parallel {
14
+ const query: <T, Error, Entry_Error>(staging_result: _pi.Query_Result<_pi.Dictionary<T>, Error>, block: (value: T, key: string) => Command_Block<Entry_Error>, aggregate_errors: _pi.Transformer<_pi.Dictionary<Entry_Error>, Error>) => _pi.Command_Promise<Error>;
15
+ }
16
+ const serie: <Error, Entry_Error>(dictionary: _pi.Dictionary<_pi.Command_Promise<Entry_Error>>, error_transformer: _pi.Transformer<_pi.Key_Value_Pair<Entry_Error>, Error>) => _pi.Command_Promise<Error>;
17
+ const deprecated_parallel_without_transforming_the_error: <Error, Entry_Error>(dictionary: _pi.Dictionary<_pi.Command_Promise<Entry_Error>>) => _pi.Command_Promise<_pi.Dictionary<Entry_Error>>;
18
+ }
19
+ const create_error_handling_context: <Target_Error, Block_Error>(command_block: Command_Block<Block_Error>, processor: (error: Block_Error) => _pi.Command_Promise<Target_Error>, new_error: Target_Error) => _pi.Command_Promise<Target_Error>;
20
+ const sequence: <Error>(block: Command_Block<Error>) => _pi.Command_Promise<Error>;
21
+ const query_without_error_transformation: <Error, Staging_Output>(staging_result: _pi.Query_Result<Staging_Output, Error>, command_block: ($v: Staging_Output) => Command_Block<Error>) => _pi.Command_Promise<Error>;
22
+ const query_stacked: <Error, Staging_Output, Parent_Data>(staging_result: _pi.Query_Result<Staging_Output, Error>, parent_data: Parent_Data, command_block: ($v: Staging_Output, $parent: Parent_Data) => Command_Block<Error>) => _pi.Command_Promise<Error>;
23
+ const refine_without_error_transformation: <Error, Staging_Output>(staging_result: _pi.Refinement_Result<Staging_Output, Error>, command_block: ($v: Staging_Output) => Command_Block<Error>) => _pi.Command_Promise<Error>;
24
+ const refine_with_error_transformation: <Error, Staging_Output, Staging_Error>(staging_result: _pi.Refinement_Result<Staging_Output, Staging_Error>, error_transformer: _pi.Transformer<Staging_Error, Error>, command_block: ($v: Staging_Output) => Command_Block<Error>) => _pi.Command_Promise<Error>;
25
+ const refine_stacked: <Error, Staging_Output, Parent_Data>(staging_result: _pi.Refinement_Result<Staging_Output, Error>, parent_data: Parent_Data, command_block: ($v: Staging_Output, $parent: Parent_Data) => Command_Block<Error>) => _pi.Command_Promise<Error>;
26
+ namespace deprecated_conditional {
27
+ const query: <Error>(precondition: _pi.Query_Result<boolean, Error>, command: _pi.Command_Promise<Error>, else_command?: _pi.Command_Promise<Error>) => _pi.Command_Promise<Error>;
28
+ }
29
+ namespace deprecated_assert {
30
+ const query: <Error>(assertion: _pi.Query_Result<boolean, Error>, error_if_failed: Error) => _pi.Command_Promise<Error>;
31
+ }
32
+ }
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.p = void 0;
27
+ const _pinternals = __importStar(require("pareto-core-internals"));
28
+ const create_command_promise_1 = require("./create_command_promise");
29
+ const sequence_1 = require("./sequence");
30
+ var p;
31
+ (function (p) {
32
+ p.assert = (assertion, error_if_failed) => {
33
+ return (0, create_command_promise_1.__create_command_promise)({
34
+ 'execute': (on_success, on_error) => {
35
+ if (!assertion) {
36
+ on_error(error_if_failed);
37
+ return;
38
+ }
39
+ on_success();
40
+ }
41
+ });
42
+ };
43
+ p.fail = (error) => {
44
+ return (0, create_command_promise_1.__create_command_promise)({
45
+ 'execute': (on_success, on_error) => {
46
+ on_error(error);
47
+ }
48
+ });
49
+ };
50
+ p.if_ = (precondition, command_block, else_command_block) => {
51
+ return (0, create_command_promise_1.__create_command_promise)({
52
+ 'execute': (on_success, on_error) => {
53
+ if (precondition) {
54
+ (0, sequence_1.__sequence)(command_block).__start(on_success, on_error);
55
+ }
56
+ else {
57
+ if (else_command_block !== undefined) {
58
+ (0, sequence_1.__sequence)(else_command_block).__start(on_success, on_error);
59
+ }
60
+ else {
61
+ on_success();
62
+ }
63
+ }
64
+ }
65
+ });
66
+ };
67
+ let list;
68
+ (function (list) {
69
+ list.parallel = (the_array, errors_aggregator) => {
70
+ return (0, create_command_promise_1.__create_command_promise)({
71
+ 'execute': (on_success, on_error) => {
72
+ const errors_builder = _pinternals.create_asynchronous_list_builder();
73
+ _pinternals.create_asynchronous_processes_monitor((monitor) => {
74
+ the_array.map(($) => {
75
+ monitor['report process started']();
76
+ $.__start(() => {
77
+ monitor['report process finished']();
78
+ }, (e) => {
79
+ errors_builder['add item'](e);
80
+ monitor['report process finished']();
81
+ });
82
+ });
83
+ }, () => {
84
+ const errors = errors_builder['get list']();
85
+ if (errors.is_empty()) {
86
+ on_success();
87
+ }
88
+ else {
89
+ on_error(errors_aggregator(errors));
90
+ }
91
+ });
92
+ }
93
+ });
94
+ };
95
+ list.serie = (array) => {
96
+ return (0, create_command_promise_1.__create_command_promise)({
97
+ 'execute': (on_success, on_error) => {
98
+ let current = 0;
99
+ const do_next = () => {
100
+ array.__get_element_at(current).transform(($) => {
101
+ current += 1;
102
+ $.__start(() => {
103
+ do_next();
104
+ }, on_error);
105
+ }, () => {
106
+ on_success();
107
+ });
108
+ };
109
+ do_next();
110
+ }
111
+ });
112
+ };
113
+ })(list = p.list || (p.list = {}));
114
+ let dictionary;
115
+ (function (dictionary_1) {
116
+ dictionary_1.parallel = (dictionary, block, aggregate_errors) => {
117
+ return (0, create_command_promise_1.__create_command_promise)({
118
+ 'execute': (on_success, on_error) => {
119
+ const errors_builder = _pinternals.create_asynchronous_dictionary_builder();
120
+ _pinternals.create_asynchronous_processes_monitor((monitor) => {
121
+ dictionary.map(($, key) => {
122
+ monitor['report process started']();
123
+ (0, sequence_1.__sequence)(block($, key)).__start(() => {
124
+ monitor['report process finished']();
125
+ }, (e) => {
126
+ errors_builder['add entry'](key, e);
127
+ monitor['report process finished']();
128
+ });
129
+ });
130
+ }, () => {
131
+ const errors = errors_builder['get dictionary']();
132
+ if (errors.is_empty()) {
133
+ on_success();
134
+ }
135
+ else {
136
+ on_error(aggregate_errors(errors));
137
+ }
138
+ });
139
+ }
140
+ });
141
+ };
142
+ let deprecated_parallel;
143
+ (function (deprecated_parallel) {
144
+ deprecated_parallel.query = (staging_result, block, aggregate_errors) => {
145
+ return (0, create_command_promise_1.__create_command_promise)({
146
+ 'execute': (on_success, on_error) => {
147
+ const errors_builder = _pinternals.create_asynchronous_dictionary_builder();
148
+ staging_result.__extract_data((dictionary) => {
149
+ _pinternals.create_asynchronous_processes_monitor((monitor) => {
150
+ dictionary.map(($, key) => {
151
+ monitor['report process started']();
152
+ (0, sequence_1.__sequence)(block($, key)).__start(() => {
153
+ monitor['report process finished']();
154
+ }, (e) => {
155
+ errors_builder['add entry'](key, e);
156
+ monitor['report process finished']();
157
+ });
158
+ });
159
+ }, () => {
160
+ const errors = errors_builder['get dictionary']();
161
+ if (errors.is_empty()) {
162
+ on_success();
163
+ }
164
+ else {
165
+ on_error(aggregate_errors(errors));
166
+ }
167
+ });
168
+ }, on_error);
169
+ }
170
+ });
171
+ };
172
+ })(deprecated_parallel = dictionary_1.deprecated_parallel || (dictionary_1.deprecated_parallel = {}));
173
+ dictionary_1.serie = (dictionary, error_transformer) => {
174
+ return (0, create_command_promise_1.__create_command_promise)({
175
+ 'execute': (on_success, on_error) => {
176
+ const as_list = dictionary.to_list(($, key) => ({
177
+ 'key': key,
178
+ 'value': $,
179
+ }));
180
+ let current = 0;
181
+ const do_next = () => {
182
+ as_list.__get_element_at(current).transform(($) => {
183
+ const key = $.key;
184
+ current += 1;
185
+ $.value.__start(() => {
186
+ do_next();
187
+ }, ($) => {
188
+ on_error(error_transformer({
189
+ 'value': $,
190
+ 'key': key,
191
+ }));
192
+ });
193
+ }, () => {
194
+ on_success();
195
+ });
196
+ };
197
+ do_next();
198
+ }
199
+ });
200
+ };
201
+ dictionary_1.deprecated_parallel_without_transforming_the_error = (dictionary) => {
202
+ return (0, create_command_promise_1.__create_command_promise)({
203
+ 'execute': (on_success, on_error) => {
204
+ const errors_builder = _pinternals.create_asynchronous_dictionary_builder();
205
+ _pinternals.create_asynchronous_processes_monitor((monitor) => {
206
+ dictionary.map(($, key) => {
207
+ monitor['report process started']();
208
+ $.__start(() => {
209
+ monitor['report process finished']();
210
+ }, (e) => {
211
+ errors_builder['add entry'](key, e);
212
+ monitor['report process finished']();
213
+ });
214
+ });
215
+ }, () => {
216
+ const errors = errors_builder['get dictionary']();
217
+ if (errors.is_empty()) {
218
+ on_success();
219
+ }
220
+ else {
221
+ on_error(errors);
222
+ }
223
+ });
224
+ }
225
+ });
226
+ };
227
+ })(dictionary = p.dictionary || (p.dictionary = {}));
228
+ p.create_error_handling_context = (command_block, processor, new_error) => {
229
+ return (0, create_command_promise_1.__create_command_promise)({
230
+ 'execute': (on_success, on_error) => {
231
+ (0, sequence_1.__sequence)(command_block).__start(on_success, (e) => {
232
+ processor(e).__start(() => {
233
+ on_error(new_error);
234
+ }, on_error);
235
+ });
236
+ }
237
+ });
238
+ };
239
+ // Sequencing function:
240
+ p.sequence = (block) => {
241
+ return (0, create_command_promise_1.__create_command_promise)({
242
+ 'execute': (on_success, on_error) => {
243
+ const length = _pinternals.list_literal(block).get_number_of_elements();
244
+ const runStep = (index) => {
245
+ if (index >= length) {
246
+ on_success();
247
+ return;
248
+ }
249
+ block[index].__start(() => runStep(index + 1), on_error);
250
+ };
251
+ runStep(0);
252
+ }
253
+ });
254
+ };
255
+ p.query_without_error_transformation = (staging_result, command_block) => {
256
+ return (0, create_command_promise_1.__create_command_promise)({
257
+ 'execute': (on_success, on_error) => {
258
+ staging_result.__extract_data((output) => {
259
+ (0, sequence_1.__sequence)(command_block(output)).__start(() => {
260
+ on_success();
261
+ }, (e) => {
262
+ on_error(e);
263
+ });
264
+ }, (e) => {
265
+ on_error(e);
266
+ });
267
+ }
268
+ });
269
+ };
270
+ p.query_stacked = (staging_result, parent_data, command_block) => {
271
+ return (0, create_command_promise_1.__create_command_promise)({
272
+ 'execute': (on_success, on_error) => {
273
+ staging_result.__extract_data((output) => {
274
+ (0, sequence_1.__sequence)(command_block(output, parent_data)).__start(() => {
275
+ on_success();
276
+ }, (e) => {
277
+ on_error(e);
278
+ });
279
+ }, on_error);
280
+ }
281
+ });
282
+ };
283
+ p.refine_without_error_transformation = (staging_result, command_block) => {
284
+ return (0, create_command_promise_1.__create_command_promise)({
285
+ 'execute': (on_success, on_error) => {
286
+ staging_result.__extract_data((output) => {
287
+ (0, sequence_1.__sequence)(command_block(output)).__start(() => {
288
+ on_success();
289
+ }, (e) => {
290
+ on_error(e);
291
+ });
292
+ }, (e) => {
293
+ on_error(e);
294
+ });
295
+ }
296
+ });
297
+ };
298
+ p.refine_with_error_transformation = (staging_result, error_transformer, command_block) => {
299
+ return (0, create_command_promise_1.__create_command_promise)({
300
+ 'execute': (on_success, on_error) => {
301
+ staging_result.__extract_data((output) => {
302
+ (0, sequence_1.__sequence)(command_block(output)).__start(() => {
303
+ on_success();
304
+ }, (e) => {
305
+ on_error(e);
306
+ });
307
+ }, (e) => {
308
+ on_error(error_transformer(e));
309
+ });
310
+ }
311
+ });
312
+ };
313
+ p.refine_stacked = (staging_result, parent_data, command_block) => {
314
+ return (0, create_command_promise_1.__create_command_promise)({
315
+ 'execute': (on_success, on_error) => {
316
+ staging_result.__extract_data((output) => {
317
+ (0, sequence_1.__sequence)(command_block(output, parent_data)).__start(() => {
318
+ on_success();
319
+ }, (e) => {
320
+ on_error(e);
321
+ });
322
+ }, on_error);
323
+ }
324
+ });
325
+ };
326
+ let deprecated_conditional;
327
+ (function (deprecated_conditional) {
328
+ deprecated_conditional.query = (precondition, command, else_command) => {
329
+ return (0, create_command_promise_1.__create_command_promise)({
330
+ 'execute': (on_success, on_error) => {
331
+ precondition.__extract_data(($) => {
332
+ if ($) {
333
+ command.__start(on_success, on_error);
334
+ }
335
+ else {
336
+ if (else_command !== undefined) {
337
+ else_command.__start(on_success, on_error);
338
+ }
339
+ else {
340
+ on_success();
341
+ }
342
+ }
343
+ }, on_error);
344
+ }
345
+ });
346
+ };
347
+ })(deprecated_conditional = p.deprecated_conditional || (p.deprecated_conditional = {}));
348
+ let deprecated_assert;
349
+ (function (deprecated_assert) {
350
+ deprecated_assert.query = (assertion, error_if_failed) => {
351
+ return (0, create_command_promise_1.__create_command_promise)({
352
+ 'execute': (on_success, on_error) => {
353
+ assertion.__extract_data(($) => {
354
+ if ($) {
355
+ on_success();
356
+ }
357
+ else {
358
+ on_error(error_if_failed);
359
+ }
360
+ }, ($) => {
361
+ on_error($);
362
+ });
363
+ }
364
+ });
365
+ };
366
+ })(deprecated_assert = p.deprecated_assert || (p.deprecated_assert = {}));
367
+ })(p || (exports.p = p = {}));
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbUVBQW9EO0FBRXBELHFFQUFtRTtBQUNuRSx5Q0FBdUM7QUFHdkMsSUFBaUIsQ0FBQyxDQW9qQmpCO0FBcGpCRCxXQUFpQixDQUFDO0lBRUQsUUFBTSxHQUFHLENBQ2xCLFNBQWtCLEVBQ2xCLGVBQXNCLEVBQ0ksRUFBRTtRQUM1QixPQUFPLElBQUEsaURBQXdCLEVBQUM7WUFDNUIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2IsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO29CQUN6QixPQUFNO2dCQUNWLENBQUM7Z0JBQ0QsVUFBVSxFQUFFLENBQUE7WUFDaEIsQ0FBQztTQUNKLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQTtJQUVZLE1BQUksR0FBRyxDQUNoQixLQUFZLEVBQ2MsRUFBRTtRQUM1QixPQUFPLElBQUEsaURBQXdCLEVBQUM7WUFDNUIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNoQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDbkIsQ0FBQztTQUNKLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQTtJQUdZLEtBQUcsR0FBRyxDQUNmLFlBQXFCLEVBQ3JCLGFBQW1DLEVBQ25DLGtCQUF5QyxFQUNmLEVBQUU7UUFDNUIsT0FBTyxJQUFBLGlEQUF3QixFQUFDO1lBQzVCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDZixJQUFBLHFCQUFVLEVBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUM3QixVQUFVLEVBQ1YsUUFBUSxDQUNYLENBQUE7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
@@ -0,0 +1,3 @@
1
+ import * as _pi from 'pareto-core-interface';
2
+ import { Command_Block } from "./Command_Block";
3
+ export declare const create_command_procedure: <Error, Parameters, Command_Resources, Query_Resources>(execution_handler: ($p: Parameters, $cr: Command_Resources, $qr: Query_Resources) => Command_Block<Error>) => _pi.Command_Procedure<_pi.Command<Error, Parameters>, Command_Resources, Query_Resources>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.create_command_procedure = void 0;
4
+ const create_command_promise_1 = require("./create_command_promise");
5
+ const sequence_1 = require("./sequence");
6
+ const create_command_procedure = (execution_handler) => {
7
+ return ($cr, $qr) => {
8
+ return {
9
+ 'execute': (parameters, error_transformer) => {
10
+ return (0, create_command_promise_1.__create_command_promise)({
11
+ 'execute': (on_success, on_error) => {
12
+ (0, sequence_1.__sequence)(execution_handler(parameters, $cr, $qr)).__start(on_success, ($) => {
13
+ on_error(error_transformer($));
14
+ });
15
+ }
16
+ });
17
+ },
18
+ };
19
+ };
20
+ };
21
+ exports.create_command_procedure = create_command_procedure;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2NvbW1hbmRfcHJvY2VkdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZV9jb21tYW5kX3Byb2NlZHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxRUFBbUU7QUFDbkUseUNBQXVDO0FBR2hDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDcEMsaUJBSXlCLEVBQ2dFLEVBQUU7SUFDM0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNoQixPQUFPO1lBQ0gsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBQSxpREFBd0IsRUFBQztvQkFDNUIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO3dCQUVoQyxJQUFBLHFCQUFVLEVBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdkQsVUFBVSxFQUNWLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQ0YsUUFBUSxDQUNKLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUFBO3dCQUNMLENBQUMsQ0FDSixDQUFBO29CQUNMLENBQUM7aUJBQ0osQ0FBQyxDQUFBO1lBQ04sQ0FBQztTQUNKLENBQUE7SUFDTCxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUE7QUExQlksUUFBQSx3QkFBd0IsNEJBMEJwQyJ9
@@ -0,0 +1,17 @@
1
+ import * as _pi from "pareto-core-interface";
2
+ /**
3
+ * this function contains the body in which the async value or error is executed
4
+ * after the execution, either the on_value or on_error callback will be called
5
+ * @param on_value the callback to call when a value is produced
6
+ * @param on_error the callback to call when an error is produced
7
+ */
8
+ type Executer<E> = {
9
+ 'execute': (on_success: () => void, on_error: ($: E) => void) => void;
10
+ };
11
+ /**
12
+ * returns an {@link Async_Value }
13
+ * @param executer the function that produces the eventual value
14
+ * @returns
15
+ */
16
+ export declare function __create_command_promise<E>(executer: Executer<E>): _pi.Command_Promise<E>;
17
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__create_command_promise = __create_command_promise;
4
+ class Command_Promise_Class {
5
+ constructor(executer) {
6
+ this.executer = executer;
7
+ }
8
+ __start(on_success, on_error) {
9
+ this.executer.execute(on_success, on_error);
10
+ }
11
+ map_error(handle_error) {
12
+ return new Command_Promise_Class({
13
+ 'execute': (on_success, on_error) => {
14
+ this.executer.execute(on_success, (error) => {
15
+ on_error(handle_error(error));
16
+ });
17
+ }
18
+ });
19
+ }
20
+ }
21
+ /**
22
+ * returns an {@link Async_Value }
23
+ * @param executer the function that produces the eventual value
24
+ * @returns
25
+ */
26
+ function __create_command_promise(executer) {
27
+ return new Command_Promise_Class(executer);
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2NvbW1hbmRfcHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVfY29tbWFuZF9wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbURBLDREQUtDO0FBdkNELE1BQU0scUJBQXFCO0lBRXZCLFlBQVksUUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FDSCxVQUFzQixFQUN0QixRQUF3QjtRQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELFNBQVMsQ0FDTCxZQUE4QjtRQUU5QixPQUFPLElBQUkscUJBQXFCLENBQUs7WUFDakMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDakIsVUFBVSxFQUNWLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ04sUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO2dCQUNqQyxDQUFDLENBQ0osQ0FBQTtZQUNMLENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0o7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3BDLFFBQXFCO0lBRXJCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBSSxRQUFRLENBQUMsQ0FBQTtBQUVqRCxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ import * as _pi from 'pareto-core-interface';
2
+ export declare const __create_resource_command: <Error, Parameters, Query_Resources, Command_Resources>(handler: ($: Parameters) => _pi.Command_Promise<Error>) => _pi.Command<Error, Parameters>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__create_resource_command = void 0;
4
+ const create_command_promise_1 = require("./create_command_promise");
5
+ const __create_resource_command = (handler) => {
6
+ return {
7
+ 'execute': (parameters, error_transformer) => {
8
+ return (0, create_command_promise_1.__create_command_promise)({
9
+ 'execute': (on_success, on_error) => {
10
+ handler(parameters).__start(on_success, (error) => {
11
+ on_error(error_transformer(error));
12
+ });
13
+ }
14
+ });
15
+ },
16
+ };
17
+ };
18
+ exports.__create_resource_command = __create_resource_command;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3Jlc291cmNlX2NvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlX3Jlc291cmNlX2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUVBQW1FO0FBRTVELE1BQU0seUJBQXlCLEdBQUcsQ0FDckMsT0FBc0QsRUFDeEIsRUFBRTtJQUNoQyxPQUFPO1FBRUgsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEVBQUU7WUFDekMsT0FBTyxJQUFBLGlEQUF3QixFQUFDO2dCQUM1QixTQUFTLEVBQUUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUU7b0JBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQ3ZCLFVBQVUsRUFDVixDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNOLFFBQVEsQ0FDSixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQTtvQkFDTCxDQUFDLENBQ0osQ0FBQTtnQkFDTCxDQUFDO2FBQ0osQ0FBQyxDQUFBO1FBQ04sQ0FBQztLQUNKLENBQUE7QUFDTCxDQUFDLENBQUE7QUFwQlksUUFBQSx5QkFBeUIsNkJBb0JyQyJ9
@@ -0,0 +1,4 @@
1
+ /**
2
+ * these functions coming from core-internals should be exposed for query development
3
+ */
4
+ export {} from "pareto-core-internals";
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // export * from "./create_query_function"
4
+ // export * from "./actions"
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSwwQ0FBMEM7QUFDMUMsNEJBQTRCIn0=
@@ -0,0 +1,3 @@
1
+ import * as _pi from 'pareto-core-interface';
2
+ import { Command_Block } from './Command_Block';
3
+ export declare const __sequence: <Error>(block: Command_Block<Error>) => _pi.Command_Promise<Error>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.__sequence = void 0;
27
+ const _pinternals = __importStar(require("pareto-core-internals"));
28
+ const create_command_promise_1 = require("./create_command_promise");
29
+ const __sequence = (block) => {
30
+ return (0, create_command_promise_1.__create_command_promise)({
31
+ 'execute': (on_success, on_error) => {
32
+ const length = _pinternals.list_literal(block).get_number_of_elements();
33
+ const runStep = (index) => {
34
+ if (index >= length) {
35
+ on_success();
36
+ return;
37
+ }
38
+ block[index].__start(() => runStep(index + 1), on_error);
39
+ };
40
+ runStep(0);
41
+ }
42
+ });
43
+ };
44
+ exports.__sequence = __sequence;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxtRUFBb0Q7QUFDcEQscUVBQW1FO0FBRzVELE1BQU0sVUFBVSxHQUFHLENBQ3RCLEtBQTJCLEVBQ0QsRUFBRTtJQUM1QixPQUFPLElBQUEsaURBQXdCLEVBQUM7UUFDNUIsU0FBUyxFQUFFLENBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDVixFQUFFO1lBRUEsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1lBQ3ZFLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNsQixVQUFVLEVBQUUsQ0FBQTtvQkFDWixPQUFNO2dCQUNWLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FDaEIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDeEIsUUFBUSxDQUNYLENBQUE7WUFDTCxDQUFDLENBQUE7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDZCxDQUFDO0tBQ0osQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBdkJZLFFBQUEsVUFBVSxjQXVCdEIifQ==
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "pareto-core-command",
3
+ "version": "0.2.0",
4
+ "license": "ISC",
5
+ "description": "the exupery core package for developing command algorithms",
6
+ "author": "Corno",
7
+ "keywords": [
8
+ "exupery",
9
+ "command algorithm development"
10
+ ],
11
+ "homepage": "https://github.com/corno/pareto-core-command#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/corno/pareto-core-command/issues"
14
+ },
15
+ "main": "./dist/index.js",
16
+ "types": "dist/index.d.ts",
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "dependencies": {
21
+ "pareto-core-internals": "^0.24.7"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/corno/pareto-core-command.git"
26
+ }
27
+ }