flowquery 1.0.0 → 1.0.1
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.
- package/.github/workflows/npm-publish.yml +2 -0
- package/.github/workflows/release.yml +18 -9
- package/dist/compute/runner.js +75 -0
- package/dist/compute/runner.js.map +1 -0
- package/dist/flowquery.min.js +1 -0
- package/dist/index.browser.js +119 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.js +123 -0
- package/dist/index.node.js.map +1 -0
- package/dist/io/command_line.js +102 -0
- package/dist/io/command_line.js.map +1 -0
- package/dist/parsing/alias.js +23 -0
- package/dist/parsing/alias.js.map +1 -0
- package/dist/parsing/alias_option.js +11 -0
- package/dist/parsing/alias_option.js.map +1 -0
- package/dist/parsing/ast_node.js +145 -0
- package/dist/parsing/ast_node.js.map +1 -0
- package/dist/parsing/base_parser.js +92 -0
- package/dist/parsing/base_parser.js.map +1 -0
- package/dist/parsing/components/csv.js +13 -0
- package/dist/parsing/components/csv.js.map +1 -0
- package/dist/parsing/components/from.js +16 -0
- package/dist/parsing/components/from.js.map +1 -0
- package/dist/parsing/components/headers.js +16 -0
- package/dist/parsing/components/headers.js.map +1 -0
- package/dist/parsing/components/json.js +13 -0
- package/dist/parsing/components/json.js.map +1 -0
- package/dist/parsing/components/null.js +13 -0
- package/dist/parsing/components/null.js.map +1 -0
- package/dist/parsing/components/post.js +13 -0
- package/dist/parsing/components/post.js.map +1 -0
- package/dist/parsing/components/text.js +13 -0
- package/dist/parsing/components/text.js.map +1 -0
- package/dist/parsing/context.js +47 -0
- package/dist/parsing/context.js.map +1 -0
- package/dist/parsing/data_structures/associative_array.js +45 -0
- package/dist/parsing/data_structures/associative_array.js.map +1 -0
- package/dist/parsing/data_structures/json_array.js +35 -0
- package/dist/parsing/data_structures/json_array.js.map +1 -0
- package/dist/parsing/data_structures/key_value_pair.js +41 -0
- package/dist/parsing/data_structures/key_value_pair.js.map +1 -0
- package/dist/parsing/data_structures/lookup.js +44 -0
- package/dist/parsing/data_structures/lookup.js.map +1 -0
- package/dist/parsing/data_structures/range_lookup.js +40 -0
- package/dist/parsing/data_structures/range_lookup.js.map +1 -0
- package/dist/parsing/expressions/expression.js +142 -0
- package/dist/parsing/expressions/expression.js.map +1 -0
- package/dist/parsing/expressions/f_string.js +29 -0
- package/dist/parsing/expressions/f_string.js.map +1 -0
- package/dist/parsing/expressions/identifier.js +26 -0
- package/dist/parsing/expressions/identifier.js.map +1 -0
- package/dist/parsing/expressions/number.js +41 -0
- package/dist/parsing/expressions/number.js.map +1 -0
- package/dist/parsing/expressions/operator.js +180 -0
- package/dist/parsing/expressions/operator.js.map +1 -0
- package/dist/parsing/expressions/reference.js +45 -0
- package/dist/parsing/expressions/reference.js.map +1 -0
- package/dist/parsing/expressions/string.js +34 -0
- package/dist/parsing/expressions/string.js.map +1 -0
- package/dist/parsing/functions/aggregate_function.js +58 -0
- package/dist/parsing/functions/aggregate_function.js.map +1 -0
- package/dist/parsing/functions/async_function.js +119 -0
- package/dist/parsing/functions/async_function.js.map +1 -0
- package/dist/parsing/functions/avg.js +43 -0
- package/dist/parsing/functions/avg.js.map +1 -0
- package/dist/parsing/functions/collect.js +52 -0
- package/dist/parsing/functions/collect.js.map +1 -0
- package/dist/parsing/functions/function.js +59 -0
- package/dist/parsing/functions/function.js.map +1 -0
- package/dist/parsing/functions/function_factory.js +259 -0
- package/dist/parsing/functions/function_factory.js.map +1 -0
- package/dist/parsing/functions/function_metadata.js +159 -0
- package/dist/parsing/functions/function_metadata.js.map +1 -0
- package/dist/parsing/functions/functions.js +47 -0
- package/dist/parsing/functions/functions.js.map +1 -0
- package/dist/parsing/functions/join.js +29 -0
- package/dist/parsing/functions/join.js.map +1 -0
- package/dist/parsing/functions/predicate_function.js +37 -0
- package/dist/parsing/functions/predicate_function.js.map +1 -0
- package/dist/parsing/functions/predicate_function_factory.js +19 -0
- package/dist/parsing/functions/predicate_function_factory.js.map +1 -0
- package/dist/parsing/functions/predicate_sum.js +33 -0
- package/dist/parsing/functions/predicate_sum.js.map +1 -0
- package/dist/parsing/functions/rand.js +17 -0
- package/dist/parsing/functions/rand.js.map +1 -0
- package/dist/parsing/functions/range.js +22 -0
- package/dist/parsing/functions/range.js.map +1 -0
- package/dist/parsing/functions/reducer_element.js +12 -0
- package/dist/parsing/functions/reducer_element.js.map +1 -0
- package/dist/parsing/functions/replace.js +23 -0
- package/dist/parsing/functions/replace.js.map +1 -0
- package/dist/parsing/functions/round.js +21 -0
- package/dist/parsing/functions/round.js.map +1 -0
- package/dist/parsing/functions/size.js +21 -0
- package/dist/parsing/functions/size.js.map +1 -0
- package/dist/parsing/functions/split.js +29 -0
- package/dist/parsing/functions/split.js.map +1 -0
- package/dist/parsing/functions/stringify.js +29 -0
- package/dist/parsing/functions/stringify.js.map +1 -0
- package/dist/parsing/functions/sum.js +38 -0
- package/dist/parsing/functions/sum.js.map +1 -0
- package/dist/parsing/functions/to_json.js +21 -0
- package/dist/parsing/functions/to_json.js.map +1 -0
- package/dist/parsing/functions/value_holder.js +16 -0
- package/dist/parsing/functions/value_holder.js.map +1 -0
- package/dist/parsing/logic/case.js +27 -0
- package/dist/parsing/logic/case.js.map +1 -0
- package/dist/parsing/logic/else.js +16 -0
- package/dist/parsing/logic/else.js.map +1 -0
- package/dist/parsing/logic/end.js +13 -0
- package/dist/parsing/logic/end.js.map +1 -0
- package/dist/parsing/logic/then.js +16 -0
- package/dist/parsing/logic/then.js.map +1 -0
- package/dist/parsing/logic/when.js +16 -0
- package/dist/parsing/logic/when.js.map +1 -0
- package/dist/parsing/operations/aggregated_return.js +35 -0
- package/dist/parsing/operations/aggregated_return.js.map +1 -0
- package/dist/parsing/operations/aggregated_with.js +41 -0
- package/dist/parsing/operations/aggregated_with.js.map +1 -0
- package/dist/parsing/operations/group_by.js +139 -0
- package/dist/parsing/operations/group_by.js.map +1 -0
- package/dist/parsing/operations/limit.js +38 -0
- package/dist/parsing/operations/limit.js.map +1 -0
- package/dist/parsing/operations/load.js +174 -0
- package/dist/parsing/operations/load.js.map +1 -0
- package/dist/parsing/operations/operation.js +81 -0
- package/dist/parsing/operations/operation.js.map +1 -0
- package/dist/parsing/operations/projection.js +21 -0
- package/dist/parsing/operations/projection.js.map +1 -0
- package/dist/parsing/operations/return.js +60 -0
- package/dist/parsing/operations/return.js.map +1 -0
- package/dist/parsing/operations/unwind.js +46 -0
- package/dist/parsing/operations/unwind.js.map +1 -0
- package/dist/parsing/operations/where.js +53 -0
- package/dist/parsing/operations/where.js.map +1 -0
- package/dist/parsing/operations/with.js +36 -0
- package/dist/parsing/operations/with.js.map +1 -0
- package/dist/parsing/parser.js +812 -0
- package/dist/parsing/parser.js.map +1 -0
- package/dist/parsing/token_to_node.js +121 -0
- package/dist/parsing/token_to_node.js.map +1 -0
- package/dist/tokenization/keyword.js +46 -0
- package/dist/tokenization/keyword.js.map +1 -0
- package/dist/tokenization/operator.js +28 -0
- package/dist/tokenization/operator.js.map +1 -0
- package/dist/tokenization/string_walker.js +165 -0
- package/dist/tokenization/string_walker.js.map +1 -0
- package/dist/tokenization/symbol.js +18 -0
- package/dist/tokenization/symbol.js.map +1 -0
- package/dist/tokenization/token.js +484 -0
- package/dist/tokenization/token.js.map +1 -0
- package/dist/tokenization/token_mapper.js +55 -0
- package/dist/tokenization/token_mapper.js.map +1 -0
- package/dist/tokenization/token_type.js +19 -0
- package/dist/tokenization/token_type.js.map +1 -0
- package/dist/tokenization/tokenizer.js +220 -0
- package/dist/tokenization/tokenizer.js.map +1 -0
- package/dist/tokenization/trie.js +111 -0
- package/dist/tokenization/trie.js.map +1 -0
- package/dist/utils/object_utils.js +19 -0
- package/dist/utils/object_utils.js.map +1 -0
- package/dist/utils/string_utils.js +110 -0
- package/dist/utils/string_utils.js.map +1 -0
- package/docs/flowquery.min.js +1 -1
- package/flowquery-vscode/flowQueryEngine/flowquery.min.js +1 -1
- package/package.json +21 -4
- package/src/compute/runner.ts +45 -0
- package/src/index.browser.ts +118 -0
- package/src/index.node.ts +141 -0
- package/src/parsing/functions/async_function.ts +95 -0
- package/src/parsing/functions/function_factory.ts +230 -1
- package/src/parsing/functions/function_metadata.ts +238 -0
- package/src/parsing/functions/functions.ts +43 -0
- package/src/parsing/operations/load.ts +51 -2
- package/src/parsing/parser.ts +46 -5
- package/tests/parsing/function_plugins.test.ts +369 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const function_1 = __importDefault(require("./function"));
|
|
7
|
+
class ToJson extends function_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super("tojson");
|
|
10
|
+
this._expectedParameterCount = 1;
|
|
11
|
+
}
|
|
12
|
+
value() {
|
|
13
|
+
const str = this.getChildren()[0].value();
|
|
14
|
+
if (typeof str !== "string") {
|
|
15
|
+
throw new Error("Invalid arguments for tojson function");
|
|
16
|
+
}
|
|
17
|
+
return JSON.parse(str);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = ToJson;
|
|
21
|
+
//# sourceMappingURL=to_json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_json.js","sourceRoot":"","sources":["../../../src/parsing/functions/to_json.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,MAAM,MAAO,SAAQ,kBAAQ;IACzB;QACI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,KAAK;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
class ValueHolder extends ast_node_1.default {
|
|
8
|
+
set holder(value) {
|
|
9
|
+
this._holder = value;
|
|
10
|
+
}
|
|
11
|
+
value() {
|
|
12
|
+
return this._holder;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = ValueHolder;
|
|
16
|
+
//# sourceMappingURL=value_holder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value_holder.js","sourceRoot":"","sources":["../../../src/parsing/functions/value_holder.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,MAAM,WAAY,SAAQ,kBAAO;IAE7B,IAAW,MAAM,CAAC,KAAU;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
const when_1 = __importDefault(require("./when"));
|
|
8
|
+
class Case extends ast_node_1.default {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
}
|
|
12
|
+
value() {
|
|
13
|
+
let i = 0;
|
|
14
|
+
let child = this.getChildren()[i];
|
|
15
|
+
while (child instanceof when_1.default) {
|
|
16
|
+
const then = this.getChildren()[i + 1];
|
|
17
|
+
if (child.value()) {
|
|
18
|
+
return then.value();
|
|
19
|
+
}
|
|
20
|
+
i += 2;
|
|
21
|
+
child = this.getChildren()[i];
|
|
22
|
+
}
|
|
23
|
+
return child.value();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.default = Case;
|
|
27
|
+
//# sourceMappingURL=case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case.js","sourceRoot":"","sources":["../../../src/parsing/logic/case.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,kDAA0B;AAG1B,MAAM,IAAK,SAAQ,kBAAO;IACtB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,KAAK,YAAY,cAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,GAAC,CAAC,CAAU,CAAC;YAC/C,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;YACD,CAAC,IAAI,CAAC,CAAC;YACP,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAQ,KAAc,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
class Else extends ast_node_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
}
|
|
11
|
+
value() {
|
|
12
|
+
return this.getChildren()[0].value();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = Else;
|
|
16
|
+
//# sourceMappingURL=else.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"else.js","sourceRoot":"","sources":["../../../src/parsing/logic/else.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,MAAM,IAAK,SAAQ,kBAAO;IACtB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
class End extends ast_node_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = End;
|
|
13
|
+
//# sourceMappingURL=end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/parsing/logic/end.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,MAAM,GAAI,SAAQ,kBAAO;IACrB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;CACJ;AAED,kBAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
class Then extends ast_node_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
}
|
|
11
|
+
value() {
|
|
12
|
+
return this.getChildren()[0].value();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = Then;
|
|
16
|
+
//# sourceMappingURL=then.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"then.js","sourceRoot":"","sources":["../../../src/parsing/logic/then.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,MAAM,IAAK,SAAQ,kBAAO;IACtB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ast_node_1 = __importDefault(require("../ast_node"));
|
|
7
|
+
class When extends ast_node_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
}
|
|
11
|
+
value() {
|
|
12
|
+
return this.getChildren()[0].value();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = When;
|
|
16
|
+
//# sourceMappingURL=when.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when.js","sourceRoot":"","sources":["../../../src/parsing/logic/when.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,MAAM,IAAK,SAAQ,kBAAO;IACtB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const return_1 = __importDefault(require("./return"));
|
|
16
|
+
const group_by_1 = __importDefault(require("./group_by"));
|
|
17
|
+
class AggregatedReturn extends return_1.default {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this._group_by = new group_by_1.default(this.children);
|
|
21
|
+
}
|
|
22
|
+
run() {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
yield this._group_by.run();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
get results() {
|
|
28
|
+
if (this._where !== null) {
|
|
29
|
+
this._group_by.where = this._where;
|
|
30
|
+
}
|
|
31
|
+
return Array.from(this._group_by.generate_results());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = AggregatedReturn;
|
|
35
|
+
//# sourceMappingURL=aggregated_return.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregated_return.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_return.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,0DAAiC;AAGjC,MAAM,gBAAiB,SAAQ,gBAAM;IAArC;;QACY,cAAS,GAAY,IAAI,kBAAO,CAAC,IAAI,CAAC,QAAwB,CAAC,CAAC;IAU5E,CAAC;IATgB,GAAG;;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;KAAA;IACD,IAAW,OAAO;QACd,IAAG,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;CACJ;AAED,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const return_1 = __importDefault(require("./return"));
|
|
16
|
+
const group_by_1 = __importDefault(require("./group_by"));
|
|
17
|
+
class AggregatedWith extends return_1.default {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this._group_by = new group_by_1.default(this.children);
|
|
21
|
+
}
|
|
22
|
+
run() {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
yield this._group_by.run();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
finish() {
|
|
28
|
+
const _super = Object.create(null, {
|
|
29
|
+
finish: { get: () => super.finish }
|
|
30
|
+
});
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
var _a;
|
|
33
|
+
for (const _ of this._group_by.generate_results()) {
|
|
34
|
+
yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
|
|
35
|
+
}
|
|
36
|
+
yield _super.finish.call(this);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.default = AggregatedWith;
|
|
41
|
+
//# sourceMappingURL=aggregated_with.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregated_with.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_with.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAA4B;AAC5B,0DAAiC;AAGjC,MAAM,cAAe,SAAQ,gBAAI;IAAjC;;QACY,cAAS,GAAY,IAAI,kBAAO,CAAC,IAAI,CAAC,QAAwB,CAAC,CAAC;IAU5E,CAAC;IATgB,GAAG;;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;KAAA;IACY,MAAM;;;;;;YACf,KAAI,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBAC/C,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;YAC3B,CAAC;YACD,MAAM,OAAM,MAAM,WAAE,CAAC;QACzB,CAAC;KAAA;CACJ;AAED,kBAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const projection_1 = __importDefault(require("./projection"));
|
|
16
|
+
class Node {
|
|
17
|
+
constructor(value = null) {
|
|
18
|
+
this._children = new Map();
|
|
19
|
+
this._elements = null;
|
|
20
|
+
this._value = value;
|
|
21
|
+
}
|
|
22
|
+
get value() {
|
|
23
|
+
return this._value;
|
|
24
|
+
}
|
|
25
|
+
get children() {
|
|
26
|
+
return this._children;
|
|
27
|
+
}
|
|
28
|
+
get elements() {
|
|
29
|
+
return this._elements;
|
|
30
|
+
}
|
|
31
|
+
set elements(elements) {
|
|
32
|
+
this._elements = elements;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
class GroupBy extends projection_1.default {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
this._root = new Node();
|
|
39
|
+
this._current = this._root;
|
|
40
|
+
this._mappers = null;
|
|
41
|
+
this._reducers = null;
|
|
42
|
+
this._where = null;
|
|
43
|
+
}
|
|
44
|
+
run() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
this.resetTree();
|
|
47
|
+
this.map();
|
|
48
|
+
this.reduce();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
get root() {
|
|
52
|
+
return this._root;
|
|
53
|
+
}
|
|
54
|
+
get current() {
|
|
55
|
+
return this._current;
|
|
56
|
+
}
|
|
57
|
+
set current(node) {
|
|
58
|
+
this._current = node;
|
|
59
|
+
}
|
|
60
|
+
resetTree() {
|
|
61
|
+
this.current = this.root;
|
|
62
|
+
}
|
|
63
|
+
map() {
|
|
64
|
+
let node = this.current;
|
|
65
|
+
for (const mapper of this.mappers) {
|
|
66
|
+
const value = mapper.value();
|
|
67
|
+
let child = node.children.get(value);
|
|
68
|
+
if (child === undefined) {
|
|
69
|
+
child = new Node(value);
|
|
70
|
+
node.children.set(value, child);
|
|
71
|
+
}
|
|
72
|
+
node = child;
|
|
73
|
+
}
|
|
74
|
+
this.current = node;
|
|
75
|
+
}
|
|
76
|
+
reduce() {
|
|
77
|
+
if (this.current.elements === null) {
|
|
78
|
+
this.current.elements = this.reducers.map(reducer => reducer.element());
|
|
79
|
+
}
|
|
80
|
+
const elements = this.current.elements;
|
|
81
|
+
this.reducers.forEach((reducer, index) => {
|
|
82
|
+
reducer.reduce(elements[index]);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
get mappers() {
|
|
86
|
+
if (this._mappers === null) {
|
|
87
|
+
this._mappers = [...this._generate_mappers()];
|
|
88
|
+
}
|
|
89
|
+
return this._mappers;
|
|
90
|
+
}
|
|
91
|
+
*_generate_mappers() {
|
|
92
|
+
for (const [expression, _] of this.expressions()) {
|
|
93
|
+
if (expression.mappable()) {
|
|
94
|
+
yield expression;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
get reducers() {
|
|
99
|
+
if (this._reducers === null) {
|
|
100
|
+
this._reducers = this.children.map((child) => {
|
|
101
|
+
return child.reducers();
|
|
102
|
+
}).flat();
|
|
103
|
+
}
|
|
104
|
+
return this._reducers;
|
|
105
|
+
}
|
|
106
|
+
*generate_results(mapperIndex = 0, node = this.root) {
|
|
107
|
+
var _a;
|
|
108
|
+
if (node.children.size > 0) {
|
|
109
|
+
for (const child of node.children.values()) {
|
|
110
|
+
this.mappers[mapperIndex].overridden = child.value;
|
|
111
|
+
yield* this.generate_results(mapperIndex + 1, child);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
(_a = node.elements) === null || _a === void 0 ? void 0 : _a.forEach((element, reducerIndex) => {
|
|
116
|
+
this.reducers[reducerIndex].overridden = element.value;
|
|
117
|
+
});
|
|
118
|
+
const record = {};
|
|
119
|
+
for (const [expression, alias] of this.expressions()) {
|
|
120
|
+
record[alias] = expression.value();
|
|
121
|
+
}
|
|
122
|
+
if (this.where) {
|
|
123
|
+
yield record;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
set where(where) {
|
|
128
|
+
this._where = where;
|
|
129
|
+
}
|
|
130
|
+
get where() {
|
|
131
|
+
if (this._where === null) {
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
return this._where.value();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
;
|
|
138
|
+
exports.default = GroupBy;
|
|
139
|
+
//# sourceMappingURL=group_by.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const operation_1 = __importDefault(require("./operation"));
|
|
16
|
+
class Limit extends operation_1.default {
|
|
17
|
+
constructor(limit) {
|
|
18
|
+
super();
|
|
19
|
+
this.count = 0;
|
|
20
|
+
this.limit = 0;
|
|
21
|
+
this.limit = limit;
|
|
22
|
+
}
|
|
23
|
+
run() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
var _a;
|
|
26
|
+
if (this.count >= this.limit) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.count++;
|
|
30
|
+
yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
reset() {
|
|
34
|
+
this.count = 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = Limit;
|
|
38
|
+
//# sourceMappingURL=limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAM,KAAM,SAAQ,mBAAS;IAGzB,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QAHJ,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACY,GAAG;;;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
const operation_1 = __importDefault(require("./operation"));
|
|
23
|
+
const json_1 = __importDefault(require("../components/json"));
|
|
24
|
+
const text_1 = __importDefault(require("../components/text"));
|
|
25
|
+
const async_function_1 = __importDefault(require("../functions/async_function"));
|
|
26
|
+
const headers_1 = __importDefault(require("../components/headers"));
|
|
27
|
+
const post_1 = __importDefault(require("../components/post"));
|
|
28
|
+
class Load extends operation_1.default {
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
this._value = null;
|
|
32
|
+
}
|
|
33
|
+
get type() {
|
|
34
|
+
return this.children[0];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Gets the From component which contains either a URL expression or an AsyncFunction.
|
|
38
|
+
*/
|
|
39
|
+
get fromComponent() {
|
|
40
|
+
return this.children[1];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Checks if the data source is an async function.
|
|
44
|
+
*/
|
|
45
|
+
get isAsyncFunction() {
|
|
46
|
+
return this.fromComponent.firstChild() instanceof async_function_1.default;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets the async function if the source is a function, otherwise null.
|
|
50
|
+
*/
|
|
51
|
+
get asyncFunction() {
|
|
52
|
+
const child = this.fromComponent.firstChild();
|
|
53
|
+
return child instanceof async_function_1.default ? child : null;
|
|
54
|
+
}
|
|
55
|
+
get from() {
|
|
56
|
+
return this.children[1].value();
|
|
57
|
+
}
|
|
58
|
+
get headers() {
|
|
59
|
+
if (this.childCount() > 2 && this.children[2] instanceof headers_1.default) {
|
|
60
|
+
return this.children[2].value() || {};
|
|
61
|
+
}
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
get payload() {
|
|
65
|
+
let post = null;
|
|
66
|
+
if (this.childCount() > 2 && this.children[2] instanceof post_1.default) {
|
|
67
|
+
post = this.children[2];
|
|
68
|
+
}
|
|
69
|
+
else if (this.childCount() > 3 && this.children[3] instanceof post_1.default) {
|
|
70
|
+
post = this.children[3];
|
|
71
|
+
}
|
|
72
|
+
return post !== null ? post.firstChild() : null;
|
|
73
|
+
}
|
|
74
|
+
method() {
|
|
75
|
+
if (this.payload === null) {
|
|
76
|
+
return "GET";
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return "POST";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
options() {
|
|
83
|
+
const headers = this.headers;
|
|
84
|
+
const payload = this.payload;
|
|
85
|
+
const data = payload === null || payload === void 0 ? void 0 : payload.value();
|
|
86
|
+
if (data !== null && typeof data === "object" && !(headers.hasOwnProperty("Content-Type"))) {
|
|
87
|
+
headers["Content-Type"] = "application/json";
|
|
88
|
+
}
|
|
89
|
+
return Object.assign({ "method": this.method(), "headers": headers }, (payload !== null ? { "body": JSON.stringify(payload.value()) } : {}));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Loads data from an async function source.
|
|
93
|
+
*/
|
|
94
|
+
loadFromFunction() {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
var _a, e_1, _b, _c;
|
|
97
|
+
var _d;
|
|
98
|
+
const asyncFunc = this.asyncFunction;
|
|
99
|
+
try {
|
|
100
|
+
for (var _e = true, _f = __asyncValues(asyncFunc.execute()), _g; _g = yield _f.next(), _a = _g.done, !_a; _e = true) {
|
|
101
|
+
_c = _g.value;
|
|
102
|
+
_e = false;
|
|
103
|
+
const item = _c;
|
|
104
|
+
this._value = item;
|
|
105
|
+
yield ((_d = this.next) === null || _d === void 0 ? void 0 : _d.run());
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
109
|
+
finally {
|
|
110
|
+
try {
|
|
111
|
+
if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);
|
|
112
|
+
}
|
|
113
|
+
finally { if (e_1) throw e_1.error; }
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Loads data from a URL source (original behavior).
|
|
119
|
+
*/
|
|
120
|
+
loadFromUrl() {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
var _a, _b, _c;
|
|
123
|
+
const result = yield fetch(this.from, this.options());
|
|
124
|
+
let data = null;
|
|
125
|
+
if (this.type instanceof json_1.default) {
|
|
126
|
+
data = yield result.json();
|
|
127
|
+
}
|
|
128
|
+
else if (this.type instanceof text_1.default) {
|
|
129
|
+
data = yield result.text();
|
|
130
|
+
}
|
|
131
|
+
if (Array.isArray(data)) {
|
|
132
|
+
for (const item of data) {
|
|
133
|
+
this._value = item;
|
|
134
|
+
yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (typeof data === "object" && data !== null) {
|
|
138
|
+
this._value = data;
|
|
139
|
+
yield ((_b = this.next) === null || _b === void 0 ? void 0 : _b.run());
|
|
140
|
+
}
|
|
141
|
+
else if (typeof data === "string") {
|
|
142
|
+
this._value = data;
|
|
143
|
+
yield ((_c = this.next) === null || _c === void 0 ? void 0 : _c.run());
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
load() {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
if (this.isAsyncFunction) {
|
|
150
|
+
yield this.loadFromFunction();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
yield this.loadFromUrl();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
run() {
|
|
158
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
var _a;
|
|
160
|
+
try {
|
|
161
|
+
yield this.load();
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
const source = this.isAsyncFunction ? (_a = this.asyncFunction) === null || _a === void 0 ? void 0 : _a.name : this.from;
|
|
165
|
+
throw new Error(`Failed to load data from ${source}. Error: ${e}`);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
value() {
|
|
170
|
+
return this._value;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.default = Load;
|
|
174
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/parsing/operations/load.ts"],"names":[],"mappings":"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"}
|