pareto-core 0.1.256 → 0.1.258
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/dist/implementation/__internal/command/command_statements.d.ts +2 -2
- package/dist/implementation/__internal/command/command_statements.js +2 -3
- package/dist/implementation/__internal/query/decide.d.ts +6 -6
- package/dist/implementation/__internal/query/decide.js +2 -2
- package/dist/implementation/__internal/query/query_expressions.d.ts +10 -10
- package/dist/implementation/__internal/query/query_expressions.js +2 -1
- package/dist/implementation/__internal/query/query_interface.d.ts +2 -2
- package/dist/implementation/__internal/query/query_interface.js +2 -2
- package/dist/implementation/__internal/query/query_result.d.ts +2 -2
- package/dist/implementation/__internal/query/query_result.js +2 -2
- package/dist/implementation/__internal/refiner/from.d.ts +92 -0
- package/dist/implementation/__internal/refiner/from.js +93 -1
- package/dist/implementation/__internal/transformer/from.d.ts +276 -6
- package/dist/implementation/__internal/transformer/from.js +292 -9
- package/dist/implementation/query/super_query_result.d.ts +3 -3
- package/dist/implementation/query/super_query_result.js +2 -2
- package/dist/interface/command_implementation.d.ts +1 -0
- package/dist/interface/command_implementation.js +2 -1
- package/dist/interface/query_implementation.d.ts +1 -1
- package/dist/interface/query_implementation.js +2 -2
- package/package.json +1 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
2
|
import * as p_ti from "../../../interface/transformer.js";
|
|
3
|
-
import * as p_qi from "../../../interface/query_implementation.js";
|
|
4
3
|
import { type Abort } from "../../../interface/__internal/Abort.js";
|
|
5
4
|
import { type Command_Block } from "./Command_Block.js";
|
|
6
5
|
import { type Command_Interface } from "../../../interface/__internal/command/Command_Interface.js";
|
|
6
|
+
import { type Query_Result } from "../../../interface/__internal/query/Query_Result.js";
|
|
7
7
|
import { type Command_Promise } from "../../../interface/__internal/command/Command_Promise.js";
|
|
8
8
|
export declare function execute<Error extends p_di.Value, Dynamic_Parameters extends p_di.Value>(command: Command_Interface<Error, Dynamic_Parameters>, $d: Dynamic_Parameters, error_transformer: p_ti.Transformer<Error, Error>): Command_Promise<Error>;
|
|
9
9
|
export declare function dictionary<Entry_Error extends p_di.Value, T extends p_di.Value, Error extends p_di.Value>(dictionary: p_di.Dictionary<T>, parametrized_command_block: (value: T, id: string) => Command_Block<Entry_Error>, aggregate_errors: p_ti.Transformer<p_di.Dictionary<Entry_Error>, Error>): Command_Promise<Error>;
|
|
10
10
|
export declare function handle_error<Target_Error extends p_di.Value, Block_Error extends p_di.Value>(command_block: Command_Block<Block_Error>, parametrized_command_block: ($v: Block_Error) => Command_Block<Target_Error>, assign_target_error: () => Target_Error): Command_Promise<Target_Error>;
|
|
11
11
|
export declare function block<Error extends p_di.Value>(block: Command_Block<Error>): Command_Promise<Error>;
|
|
12
12
|
export declare function fail<Error extends p_di.Value>(error: Error): Command_Promise<Error>;
|
|
13
|
-
export declare function query<Error extends p_di.Value, Query_Output extends p_di.Value>(query_result:
|
|
13
|
+
export declare function query<Error extends p_di.Value, Query_Output extends p_di.Value>(query_result: Query_Result<Query_Output, Error>, parametrized_command_block: ($v: Query_Output) => Command_Block<Error>): Command_Promise<Error>;
|
|
14
14
|
export declare function refine<Error extends p_di.Value, Staging_Output extends p_di.Value>(callback: (abort: Abort<Error>) => Staging_Output, parametrized_command_block: ($v: Staging_Output) => Command_Block<Error>): Command_Promise<Error>;
|
|
15
15
|
export declare function if_<Error extends p_di.Value>(precondition: boolean, command_block: Command_Block<Error>, else_command_block?: Command_Block<Error>): Command_Promise<Error>;
|
|
16
16
|
export declare function test_for_successful_execution<Target_Error extends p_di.Value, Block_Error extends p_di.Value>(command_block: Command_Block<Block_Error>, on_result: ($: p_di.Optional_Value<Block_Error>) => Command_Block<Target_Error>): Command_Promise<Target_Error>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
2
|
import * as p_ti from "../../../interface/transformer.js";
|
|
3
|
-
import * as p_qi from "../../../interface/query_implementation.js";
|
|
4
|
-
import * as p_ci from "../../../interface/command_implementation.js";
|
|
5
3
|
import {} from "../../../interface/__internal/Abort.js";
|
|
6
4
|
import {} from "./Command_Block.js";
|
|
7
5
|
import {} from "../../../interface/__internal/command/Command_Interface.js";
|
|
6
|
+
import {} from "../../../interface/__internal/query/Query_Result.js";
|
|
8
7
|
import command_promise from "./command_promise.js";
|
|
9
8
|
import handle_command_block from "./handle_command_block.js";
|
|
10
9
|
import create_refinement_context from "../sync/create_refinement_context.js";
|
|
@@ -128,4 +127,4 @@ export function assert(assertion, error_if_failed) {
|
|
|
128
127
|
}
|
|
129
128
|
});
|
|
130
129
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZF9zdGF0ZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL19faW50ZXJuYWwvY29tbWFuZC9jb21tYW5kX3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRCxPQUFPLEtBQUssSUFBSSxNQUFNLG1DQUFtQyxDQUFBO0FBRXpELE9BQU8sRUFBYyxNQUFNLHdDQUF3QyxDQUFBO0FBQ25FLE9BQU8sRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUN2RCxPQUFPLEVBQTBCLE1BQU0sNERBQTRELENBQUE7QUFDbkcsT0FBTyxFQUFxQixNQUFNLHFEQUFxRCxDQUFBO0FBQ3ZGLE9BQU8sZUFBZSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sb0JBQW9CLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyx5QkFBeUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM1RSxPQUFPLHNDQUFzQyxNQUFNLDZDQUE2QyxDQUFBO0FBQ2hHLE9BQU8scUNBQXFDLE1BQU0sbURBQW1ELENBQUE7QUFDckcsT0FBTyxFQUF3QixNQUFNLDBEQUEwRCxDQUFBO0FBQy9GLE9BQU8sS0FBSyxHQUFHLE1BQU0sb0JBQW9CLENBQUE7QUFFekMsTUFBTSxVQUFVLE9BQU8sQ0FJbkIsT0FBcUQsRUFDckQsRUFBc0IsRUFDdEIsaUJBQWlEO0lBRWpELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FLdEIsVUFBOEIsRUFDOUIsMEJBRytCLEVBQy9CLGdCQUdDO0lBRUQsT0FBTyxlQUFlLENBQUM7UUFDbkIsU0FBUyxFQUFFLENBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDVixFQUFFO1lBRUEsTUFBTSxjQUFjLEdBQUcsc0NBQXND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
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
|
-
import
|
|
2
|
+
import { type Query_Result } from "../../../interface/__internal/query/Query_Result.js";
|
|
3
3
|
export type Option<T extends p_di.Value> = readonly [string, T];
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated use 'option' instead
|
|
6
6
|
*/
|
|
7
|
-
export declare function ss<T extends p_di.Value, RT extends
|
|
8
|
-
export declare function option<T extends p_di.Value, RT extends
|
|
7
|
+
export declare function ss<T extends p_di.Value, RT extends Query_Result<any, any>>(option: Option<T>, $c: ($: T) => RT): RT;
|
|
8
|
+
export declare function option<T extends p_di.Value, RT extends Query_Result<any, any>>(option: Option<T>, $c: ($: T) => RT): RT;
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
11
11
|
* @deprecated use exhaustive instead
|
|
12
12
|
*/
|
|
13
|
-
export declare function au<RT extends
|
|
14
|
-
export declare function exhaustive<RT extends
|
|
13
|
+
export declare function au<RT extends Query_Result<any, any>>(_x: never): RT;
|
|
14
|
+
export declare function exhaustive<RT extends Query_Result<any, any>>(_x: never): RT;
|
|
15
15
|
export declare namespace decide {
|
|
16
|
-
const state: <T extends p_di.State, RT extends
|
|
16
|
+
const state: <T extends p_di.State, RT extends Query_Result<any, any>>(state: T, assign: (output: T) => RT) => RT;
|
|
17
17
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
|
-
import
|
|
2
|
+
import {} from "../../../interface/__internal/query/Query_Result.js";
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated use 'option' instead
|
|
5
5
|
*/
|
|
@@ -25,4 +25,4 @@ export var decide;
|
|
|
25
25
|
return assign(state);
|
|
26
26
|
};
|
|
27
27
|
})(decide || (decide = {}));
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL19faW50ZXJuYWwvcXVlcnkvZGVjaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxJQUFJLE1BQU0sNEJBQTRCLENBQUE7QUFFbEQsT0FBTyxFQUFxQixNQUFNLHFEQUFxRCxDQUFBO0FBSXZGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEVBQUUsQ0FDZCxNQUFpQixFQUNqQixFQUFnQjtJQUNoQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FDbEIsTUFBaUIsRUFDakIsRUFBZ0I7SUFDaEIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxFQUFFLENBQ2QsRUFBUztJQUVULE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3RCLEVBQVM7SUFFVCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFFRCxNQUFNLEtBQVcsTUFBTSxDQVl0QjtBQVpELFdBQWlCLE1BQU07SUFFTixZQUFLLEdBQUcsQ0FJakIsS0FBUSxFQUNSLE1BQXlCLEVBQ3ZCLEVBQUU7UUFDSixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QixDQUFDLENBQUE7QUFFTCxDQUFDLEVBWmdCLE1BQU0sS0FBTixNQUFNLFFBWXRCIn0=
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import * as p_qi from "../../../interface/query_implementation.js";
|
|
2
1
|
import * as p_ti from "../../../interface/transformer.js";
|
|
3
2
|
import * as p_di from "../../../interface/data.js";
|
|
4
3
|
import { type Abort } from "../../../interface/__internal/Abort.js";
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
4
|
+
import { type Query_Result } from "../../../interface/__internal/query/Query_Result.js";
|
|
5
|
+
export declare function dictionary<Entry extends p_di.Value, Result extends p_di.Value, Error extends p_di.Value, Entry_Error extends p_di.Value>(dictionary: p_di.Dictionary<Entry>, map_entry: ($: Entry, id: string) => Query_Result<Result, Entry_Error>, aggregate_errors: p_ti.Transformer<p_di.Dictionary<Entry_Error>, Error>): Query_Result<p_di.Dictionary<Result>, Error>;
|
|
6
|
+
export declare function direct_result<Result extends p_di.Value, Error extends p_di.Value>(result: Result): Query_Result<Result, Error>;
|
|
7
|
+
export declare function direct_error<T extends p_di.Value, E extends p_di.Value>($: E): Query_Result<T, E>;
|
|
8
|
+
export declare function refine<T extends p_di.Value, E extends p_di.Value>(callback: (abort: Abort<E>) => T): Query_Result<T, E>;
|
|
9
|
+
export declare function transform<T extends p_di.Value, E extends p_di.Value>(callback: () => T): Query_Result<T, E>;
|
|
10
10
|
/**
|
|
11
11
|
* try the query, handle the succes result and catch the error
|
|
12
12
|
*/
|
|
13
|
-
export declare function observe_behavior<Preparation_Result extends p_di.Value, Preparation_Error extends p_di.Value, Target_Outcome extends p_di.Value, Target_Error extends p_di.Value>(result:
|
|
14
|
-
success: (result: Preparation_Result) =>
|
|
15
|
-
error: (error: Preparation_Error) =>
|
|
16
|
-
}):
|
|
13
|
+
export declare function observe_behavior<Preparation_Result extends p_di.Value, Preparation_Error extends p_di.Value, Target_Outcome extends p_di.Value, Target_Error extends p_di.Value>(result: Query_Result<Preparation_Result, Preparation_Error>, handlers: {
|
|
14
|
+
success: (result: Preparation_Result) => Query_Result<Target_Outcome, Target_Error>;
|
|
15
|
+
error: (error: Preparation_Error) => Query_Result<Target_Outcome, Target_Error>;
|
|
16
|
+
}): Query_Result<Target_Outcome, Target_Error>;
|
|
@@ -5,6 +5,7 @@ import query_result from "./query_result.js";
|
|
|
5
5
|
import create_asynchronous_dictionary_builder from "../async/asynchronous_dictionary_builder.js";
|
|
6
6
|
import create_asynchronous_processes_monitor from "../async/create_asynchronous_processes_monitor.js";
|
|
7
7
|
import {} from "../../../interface/__internal/Abort.js";
|
|
8
|
+
import {} from "../../../interface/__internal/query/Query_Result.js";
|
|
8
9
|
import create_refinement_context from "../sync/create_refinement_context.js";
|
|
9
10
|
export function dictionary(dictionary, map_entry, aggregate_errors) {
|
|
10
11
|
return query_result((on_success, on_error) => {
|
|
@@ -69,4 +70,4 @@ export function observe_behavior(result, handlers) {
|
|
|
69
70
|
});
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlfZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vX19pbnRlcm5hbC9xdWVyeS9xdWVyeV9leHByZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLDRDQUE0QyxDQUFBO0FBQ2xFLE9BQU8sS0FBSyxJQUFJLE1BQU0sbUNBQW1DLENBQUE7QUFDekQsT0FBTyxLQUFLLElBQUksTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRCxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQTtBQUM1QyxPQUFPLHNDQUFzQyxNQUFNLDZDQUE2QyxDQUFBO0FBQ2hHLE9BQU8scUNBQXFDLE1BQU0sbURBQW1ELENBQUE7QUFDckcsT0FBTyxFQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDbkUsT0FBTyxFQUFxQixNQUFNLHFEQUFxRCxDQUFBO0FBQ3ZGLE9BQU8seUJBQXlCLE1BQU0sc0NBQXNDLENBQUE7QUFFNUUsTUFBTSxVQUFVLFVBQVUsQ0FNdEIsVUFBa0MsRUFDbEMsU0FBc0UsRUFDdEUsZ0JBQXVFO0lBR3ZFLE9BQU8sWUFBWSxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3pDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN0QixNQUFNLGNBQWMsR0FBRyxzQ0FBc0MsRUFBZSxDQUFBO1FBQzVFLE1BQU0sZUFBZSxHQUFHLHNDQUFzQyxFQUFVLENBQUE7UUFFeEUscUNBQXFDLENBQUM7WUFDbEMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDMUIsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzNDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUE7b0JBQ25DLFNBQVMsQ0FBQyxLQUFLLEVB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as p_i from "../../../interface/query_implementation.js";
|
|
2
1
|
import * as p_di from "../../../interface/data.js";
|
|
3
2
|
import { type Query_Interface } from "../../../interface/__internal/query/Query_Interface.js";
|
|
4
|
-
|
|
3
|
+
import { type Query_Result } from "../../../interface/__internal/query/Query_Result.js";
|
|
4
|
+
export default function <Result extends p_di.Value, Error extends p_di.Value, Dynamic_Parameters extends p_di.Value>(handler: ($: Dynamic_Parameters) => Query_Result<Result, Error>): Query_Interface<Result, Error, Dynamic_Parameters>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as p_i from "../../../interface/query_implementation.js";
|
|
2
1
|
import * as p_di from "../../../interface/data.js";
|
|
3
2
|
import {} from "../../../interface/__internal/query/Query_Interface.js";
|
|
3
|
+
import {} from "../../../interface/__internal/query/Query_Result.js";
|
|
4
4
|
import query_result from "./query_result.js";
|
|
5
5
|
export default function (handler) {
|
|
6
6
|
return (parameters, error_transformer) => query_result((on_success, on_error) => {
|
|
@@ -9,4 +9,4 @@ export default function (handler) {
|
|
|
9
9
|
});
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlfaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL19faW50ZXJuYWwvcXVlcnkvcXVlcnlfaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sNEJBQTRCLENBQUE7QUFFbEQsT0FBTyxFQUF3QixNQUFNLHdEQUF3RCxDQUFBO0FBQzdGLE9BQU8sRUFBcUIsTUFBTSxxREFBcUQsQ0FBQTtBQUN2RixPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQTtBQUU1QyxNQUFNLENBQUMsT0FBTyxXQUtWLE9BRWdDO0lBTWhDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUM1RSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUM5QixVQUFVLEVBQ1YsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLENBQUMsQ0FDSixDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as p_qi from "../../../interface/query_implementation.js";
|
|
2
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
|
+
import { type Query_Result } from "../../../interface/__internal/query/Query_Result.js";
|
|
3
3
|
/**
|
|
4
4
|
* this function contains the body in which the async value or error is executed
|
|
5
5
|
* after the execution, either the on_result or on_error callback will be called
|
|
@@ -7,5 +7,5 @@ import * as p_di from "../../../interface/data.js";
|
|
|
7
7
|
* @param on_error the callback to call when an error is produced
|
|
8
8
|
*/
|
|
9
9
|
type Executer<Output extends p_di.Value, Error extends p_di.Value> = (on_result: ($: Output) => undefined, on_error: ($: Error) => undefined) => undefined;
|
|
10
|
-
export default function <T extends p_di.Value, E extends p_di.Value>(executer: Executer<T, E>):
|
|
10
|
+
export default function <T extends p_di.Value, E extends p_di.Value>(executer: Executer<T, E>): Query_Result<T, E>;
|
|
11
11
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as p_qi from "../../../interface/query_implementation.js";
|
|
2
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
|
+
import {} from "../../../interface/__internal/query/Query_Result.js";
|
|
3
3
|
class Query_Result_Class {
|
|
4
4
|
constructor(executer) {
|
|
5
5
|
this.__extract_data = executer;
|
|
@@ -8,4 +8,4 @@ class Query_Result_Class {
|
|
|
8
8
|
export default function (executer) {
|
|
9
9
|
return new Query_Result_Class(executer);
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlfcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL19faW50ZXJuYWwvcXVlcnkvcXVlcnlfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sNEJBQTRCLENBQUE7QUFDbEQsT0FBTyxFQUFxQixNQUFNLHFEQUFxRCxDQUFBO0FBZ0J2RixNQUFNLGtCQUFrQjtJQU1wQixZQUFZLFFBQWlDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFBO0lBQ2xDLENBQUM7Q0FDSjtBQUVELE1BQU0sQ0FBQyxPQUFPLFdBSVYsUUFBd0I7SUFFeEIsT0FBTyxJQUFJLGtCQUFrQixDQUFPLFFBQVEsQ0FBQyxDQUFBO0FBRWpELENBQUMifQ==
|
|
@@ -1,30 +1,122 @@
|
|
|
1
1
|
import * as p_di from "../../../interface/data.js";
|
|
2
2
|
import * as p_ri from "../../../interface/refiner.js";
|
|
3
3
|
import { type Abort } from "../../../interface/__internal/Abort.js";
|
|
4
|
+
/**
|
|
5
|
+
* Wraps a dictionary and provides entry lookup and transformation methods.
|
|
6
|
+
*/
|
|
4
7
|
export declare const dictionary: <T extends p_di.Value>(dict: p_di.Dictionary<T>) => {
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves the entry with the given id.
|
|
10
|
+
* Calls `abort.no_such_entry` if no entry with that id exists.
|
|
11
|
+
* @param id the id of the entry to retrieve
|
|
12
|
+
* @param abort callbacks invoked on error; `no_such_entry` is called when the id is not found
|
|
13
|
+
* @returns the value of the entry
|
|
14
|
+
*/
|
|
5
15
|
get_entry(id: string, abort: {
|
|
6
16
|
no_such_entry: Abort<null>;
|
|
7
17
|
}): T;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the entry with the given id if it exists, otherwise returns a not-set optional.
|
|
20
|
+
* @param id the id of the entry to retrieve
|
|
21
|
+
* @returns a set optional containing the entry value, or not-set if the id is not found
|
|
22
|
+
*/
|
|
8
23
|
get_possible_entry(id: string): p_di.Optional_Value<T>;
|
|
24
|
+
/**
|
|
25
|
+
* Converts the values of the dictionary to a new type using the provided assign_entry function.
|
|
26
|
+
* @param assign_entry function to convert each entry; receives the current value and the entry id
|
|
27
|
+
* @returns a new dictionary with the same ids and the converted values
|
|
28
|
+
*/
|
|
9
29
|
map: <New_Type extends p_di.Value>(assign_entry: (value: T, id: string) => New_Type) => p_di.Dictionary<New_Type>;
|
|
30
|
+
/**
|
|
31
|
+
* Maps each entry to a resolved value, supporting cross-entry lookups during resolution.
|
|
32
|
+
*
|
|
33
|
+
* The `acyclic_lookup` allows looking up other entries that should not have any direct or indirect
|
|
34
|
+
* dependency on the current entry; they are resolved on the spot if not yet resolved.
|
|
35
|
+
* A `cycle_detected` abort is triggered if a cycle is found.
|
|
36
|
+
*
|
|
37
|
+
* The `cyclic_lookup` allows referencing entries that may depend on the current entry.
|
|
38
|
+
* It returns a handle whose `get_circular_dependent` must not be called until all entries
|
|
39
|
+
* in the dictionary have been fully resolved; accessing it too early triggers the
|
|
40
|
+
* `accessing_cyclic_sibling_before_it_is_resolved` abort.
|
|
41
|
+
*
|
|
42
|
+
* @param assign_entry function called for each entry with its value, id, and both lookup handles
|
|
43
|
+
* @returns a new dictionary containing the resolved values
|
|
44
|
+
*/
|
|
10
45
|
resolve: <Resolved extends p_di.Value>(assign_entry: (value: T, id: string, acyclic_lookup: p_ri.lookup.Acyclic<Resolved>, cyclic_lookup: p_ri.lookup.Cyclic<Resolved>) => Resolved) => p_di.Dictionary<Resolved>;
|
|
11
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Wraps a list and provides conversion and transformation methods.
|
|
49
|
+
*/
|
|
12
50
|
export declare const list: <T extends p_di.Value>(list: p_di.List<T>) => {
|
|
51
|
+
/**
|
|
52
|
+
* Converts the list to a dictionary using the provided id and value functions.
|
|
53
|
+
* first asks for the id of an item, then for the value of that item.
|
|
54
|
+
* Calls `abort.duplicate_id` if two items produce the same id.
|
|
55
|
+
* @param get_id function to derive the dictionary key from each item
|
|
56
|
+
* @param get_value function to derive the dictionary value from each item
|
|
57
|
+
* @param abort callbacks invoked on error; `duplicate_id` is called with the conflicting id
|
|
58
|
+
* @returns a new dictionary built from the list items
|
|
59
|
+
*/
|
|
13
60
|
convert_to_dictionary: <NT extends p_di.Value>(get_id: (item: T) => string, get_value: (item: T) => NT, abort: {
|
|
14
61
|
duplicate_id: Abort<string>;
|
|
15
62
|
}) => p_di.Dictionary<NT>;
|
|
63
|
+
/**
|
|
64
|
+
* Converts the items in the list to a new type using the provided assign_item function.
|
|
65
|
+
* @param assign_item function to convert each item to a new value
|
|
66
|
+
* @returns a new list containing the converted values
|
|
67
|
+
*/
|
|
16
68
|
map: <New_Type extends p_di.Value>(assign_item: (item: T) => New_Type) => p_di.List<New_Type>;
|
|
69
|
+
/**
|
|
70
|
+
* Maps the items in the list to a new type while maintaining a state that is updated with each item.
|
|
71
|
+
* @param initial_state the initial value of the state before processing any items
|
|
72
|
+
* @param assign_item function to convert each item using the current state
|
|
73
|
+
* @param update_state function to produce the next state from the converted item and the current state
|
|
74
|
+
* @param wrapup function called once with the final converted list and the final state to produce the result
|
|
75
|
+
* @returns the result produced by `wrapup`
|
|
76
|
+
*/
|
|
17
77
|
map_with_state: <Target_Item extends p_di.Value, State, Result_Type extends {
|
|
18
78
|
[id: string]: p_di.Value;
|
|
19
79
|
}>(initial_state: State, assign_item: (item: T, state: State) => Target_Item, update_state: (item: Target_Item, state: State) => State, wrapup: (final_list: p_di.List<Target_Item>, final_state: State) => Result_Type) => Result_Type;
|
|
20
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* Wraps an optional value and provides methods to handle both the set and not-set cases.
|
|
83
|
+
*/
|
|
21
84
|
export declare const optional: <T extends p_di.Value>(optional_value: p_di.Optional_Value<T>) => {
|
|
85
|
+
/**
|
|
86
|
+
* Calls `if_set` with the wrapped value if it is set, otherwise calls `if_not_set`.
|
|
87
|
+
* @param if_set function to call with the value when it is set
|
|
88
|
+
* @param if_not_set function to call when the value is not set
|
|
89
|
+
* @returns the result of whichever function was called
|
|
90
|
+
*/
|
|
22
91
|
decide: <RT extends p_di.Value>(if_set: ($: T) => RT, if_not_set: () => RT) => RT;
|
|
92
|
+
/**
|
|
93
|
+
* Transforms the wrapped value using the provided function if it is set.
|
|
94
|
+
* If the value is not set, returns a not-set optional.
|
|
95
|
+
* @param assign_set_value function to transform the value
|
|
96
|
+
* @returns a new optional containing the transformed value, or not-set if the original was not set
|
|
97
|
+
*/
|
|
23
98
|
map: <New_Type extends p_di.Value>(assign_set_value: (value: T) => New_Type) => p_di.Optional_Value<New_Type>;
|
|
24
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Wraps a state value and provides a method to produce a result from it.
|
|
102
|
+
*/
|
|
25
103
|
export declare const state: <State extends p_di.State>(state: State) => {
|
|
104
|
+
/**
|
|
105
|
+
* Passes the state to the provided function and returns the result.
|
|
106
|
+
* @param assign function to produce a result from the state
|
|
107
|
+
* @returns the result produced by `assign`
|
|
108
|
+
*/
|
|
26
109
|
decide: <RT extends p_di.Value>(assign: (output: State) => RT) => RT;
|
|
27
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* Wraps a string value and provides a method to convert it into a state.
|
|
113
|
+
*/
|
|
28
114
|
export declare const text: (string: string) => {
|
|
115
|
+
/**
|
|
116
|
+
* Converts the string into a state value using the provided function and context.
|
|
117
|
+
* @param context additional context passed to `assign_state`
|
|
118
|
+
* @param assign_state function that receives the context and the string and returns the state
|
|
119
|
+
* @returns the state produced by `assign_state`
|
|
120
|
+
*/
|
|
29
121
|
to_state: <State extends p_di.State, Context extends p_di.Value>(context: Context, assign_state: ($: Context, text: string) => State) => State;
|
|
30
122
|
};
|
|
@@ -3,8 +3,18 @@ import * as p_ri from "../../../interface/refiner.js";
|
|
|
3
3
|
import {} from "../../../interface/__internal/Abort.js";
|
|
4
4
|
import * as lit from "../sync/literal.js";
|
|
5
5
|
import { Dictionary_Class } from "../sync/primitives/Dictionary.js";
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a dictionary and provides entry lookup and transformation methods.
|
|
8
|
+
*/
|
|
6
9
|
export const dictionary = (dict) => {
|
|
7
10
|
return {
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves the entry with the given id.
|
|
13
|
+
* Calls `abort.no_such_entry` if no entry with that id exists.
|
|
14
|
+
* @param id the id of the entry to retrieve
|
|
15
|
+
* @param abort callbacks invoked on error; `no_such_entry` is called when the id is not found
|
|
16
|
+
* @returns the value of the entry
|
|
17
|
+
*/
|
|
8
18
|
get_entry(id, abort) {
|
|
9
19
|
const raw = dict.__get_raw();
|
|
10
20
|
for (let i = 0; i !== raw.length; i += 1) {
|
|
@@ -15,6 +25,11 @@ export const dictionary = (dict) => {
|
|
|
15
25
|
}
|
|
16
26
|
return abort.no_such_entry(null);
|
|
17
27
|
},
|
|
28
|
+
/**
|
|
29
|
+
* Retrieves the entry with the given id if it exists, otherwise returns a not-set optional.
|
|
30
|
+
* @param id the id of the entry to retrieve
|
|
31
|
+
* @returns a set optional containing the entry value, or not-set if the id is not found
|
|
32
|
+
*/
|
|
18
33
|
get_possible_entry(id) {
|
|
19
34
|
const raw = dict.__get_raw();
|
|
20
35
|
for (let i = 0; i !== raw.length; i += 1) {
|
|
@@ -25,6 +40,11 @@ export const dictionary = (dict) => {
|
|
|
25
40
|
}
|
|
26
41
|
return lit.not_set();
|
|
27
42
|
},
|
|
43
|
+
/**
|
|
44
|
+
* Converts the values of the dictionary to a new type using the provided assign_entry function.
|
|
45
|
+
* @param assign_entry function to convert each entry; receives the current value and the entry id
|
|
46
|
+
* @returns a new dictionary with the same ids and the converted values
|
|
47
|
+
*/
|
|
28
48
|
map: (assign_entry) => {
|
|
29
49
|
//this local function helps with type inference
|
|
30
50
|
const temp_d_map = (mapper) => {
|
|
@@ -37,6 +57,21 @@ export const dictionary = (dict) => {
|
|
|
37
57
|
};
|
|
38
58
|
return temp_d_map(assign_entry);
|
|
39
59
|
},
|
|
60
|
+
/**
|
|
61
|
+
* Maps each entry to a resolved value, supporting cross-entry lookups during resolution.
|
|
62
|
+
*
|
|
63
|
+
* The `acyclic_lookup` allows looking up other entries that should not have any direct or indirect
|
|
64
|
+
* dependency on the current entry; they are resolved on the spot if not yet resolved.
|
|
65
|
+
* A `cycle_detected` abort is triggered if a cycle is found.
|
|
66
|
+
*
|
|
67
|
+
* The `cyclic_lookup` allows referencing entries that may depend on the current entry.
|
|
68
|
+
* It returns a handle whose `get_circular_dependent` must not be called until all entries
|
|
69
|
+
* in the dictionary have been fully resolved; accessing it too early triggers the
|
|
70
|
+
* `accessing_cyclic_sibling_before_it_is_resolved` abort.
|
|
71
|
+
*
|
|
72
|
+
* @param assign_entry function called for each entry with its value, id, and both lookup handles
|
|
73
|
+
* @returns a new dictionary containing the resolved values
|
|
74
|
+
*/
|
|
40
75
|
resolve: (assign_entry) => {
|
|
41
76
|
const source = dict;
|
|
42
77
|
const out = {};
|
|
@@ -119,8 +154,20 @@ export const dictionary = (dict) => {
|
|
|
119
154
|
},
|
|
120
155
|
};
|
|
121
156
|
};
|
|
157
|
+
/**
|
|
158
|
+
* Wraps a list and provides conversion and transformation methods.
|
|
159
|
+
*/
|
|
122
160
|
export const list = (list) => {
|
|
123
161
|
return {
|
|
162
|
+
/**
|
|
163
|
+
* Converts the list to a dictionary using the provided id and value functions.
|
|
164
|
+
* first asks for the id of an item, then for the value of that item.
|
|
165
|
+
* Calls `abort.duplicate_id` if two items produce the same id.
|
|
166
|
+
* @param get_id function to derive the dictionary key from each item
|
|
167
|
+
* @param get_value function to derive the dictionary value from each item
|
|
168
|
+
* @param abort callbacks invoked on error; `duplicate_id` is called with the conflicting id
|
|
169
|
+
* @returns a new dictionary built from the list items
|
|
170
|
+
*/
|
|
124
171
|
convert_to_dictionary: (get_id, get_value, abort) => {
|
|
125
172
|
const temp = {};
|
|
126
173
|
list.__get_raw().forEach(($) => {
|
|
@@ -132,11 +179,24 @@ export const list = (list) => {
|
|
|
132
179
|
});
|
|
133
180
|
return lit.dictionary(temp);
|
|
134
181
|
},
|
|
182
|
+
/**
|
|
183
|
+
* Converts the items in the list to a new type using the provided assign_item function.
|
|
184
|
+
* @param assign_item function to convert each item to a new value
|
|
185
|
+
* @returns a new list containing the converted values
|
|
186
|
+
*/
|
|
135
187
|
map: (assign_item) => {
|
|
136
188
|
return lit.list(list.__get_raw().map((entry) => {
|
|
137
189
|
return assign_item(entry);
|
|
138
190
|
}));
|
|
139
191
|
},
|
|
192
|
+
/**
|
|
193
|
+
* Maps the items in the list to a new type while maintaining a state that is updated with each item.
|
|
194
|
+
* @param initial_state the initial value of the state before processing any items
|
|
195
|
+
* @param assign_item function to convert each item using the current state
|
|
196
|
+
* @param update_state function to produce the next state from the converted item and the current state
|
|
197
|
+
* @param wrapup function called once with the final converted list and the final state to produce the result
|
|
198
|
+
* @returns the result produced by `wrapup`
|
|
199
|
+
*/
|
|
140
200
|
map_with_state: (initial_state, assign_item, update_state, wrapup) => {
|
|
141
201
|
let current_state = initial_state;
|
|
142
202
|
return wrapup(lit.list(list.__get_raw().map(($) => {
|
|
@@ -147,14 +207,29 @@ export const list = (list) => {
|
|
|
147
207
|
},
|
|
148
208
|
};
|
|
149
209
|
};
|
|
210
|
+
/**
|
|
211
|
+
* Wraps an optional value and provides methods to handle both the set and not-set cases.
|
|
212
|
+
*/
|
|
150
213
|
export const optional = (optional_value) => {
|
|
151
214
|
return {
|
|
215
|
+
/**
|
|
216
|
+
* Calls `if_set` with the wrapped value if it is set, otherwise calls `if_not_set`.
|
|
217
|
+
* @param if_set function to call with the value when it is set
|
|
218
|
+
* @param if_not_set function to call when the value is not set
|
|
219
|
+
* @returns the result of whichever function was called
|
|
220
|
+
*/
|
|
152
221
|
decide: (if_set, if_not_set) => {
|
|
153
222
|
const raw = optional_value.__get_raw();
|
|
154
223
|
return raw === null
|
|
155
224
|
? if_not_set()
|
|
156
225
|
: if_set(raw[0]);
|
|
157
226
|
},
|
|
227
|
+
/**
|
|
228
|
+
* Transforms the wrapped value using the provided function if it is set.
|
|
229
|
+
* If the value is not set, returns a not-set optional.
|
|
230
|
+
* @param assign_set_value function to transform the value
|
|
231
|
+
* @returns a new optional containing the transformed value, or not-set if the original was not set
|
|
232
|
+
*/
|
|
158
233
|
map: (assign_set_value) => {
|
|
159
234
|
const raw = optional_value.__get_raw();
|
|
160
235
|
return raw === null
|
|
@@ -163,16 +238,33 @@ export const optional = (optional_value) => {
|
|
|
163
238
|
}
|
|
164
239
|
};
|
|
165
240
|
};
|
|
241
|
+
/**
|
|
242
|
+
* Wraps a state value and provides a method to produce a result from it.
|
|
243
|
+
*/
|
|
166
244
|
export const state = (state) => {
|
|
167
245
|
return {
|
|
246
|
+
/**
|
|
247
|
+
* Passes the state to the provided function and returns the result.
|
|
248
|
+
* @param assign function to produce a result from the state
|
|
249
|
+
* @returns the result produced by `assign`
|
|
250
|
+
*/
|
|
168
251
|
decide: (assign) => {
|
|
169
252
|
return assign(state);
|
|
170
253
|
}
|
|
171
254
|
};
|
|
172
255
|
};
|
|
256
|
+
/**
|
|
257
|
+
* Wraps a string value and provides a method to convert it into a state.
|
|
258
|
+
*/
|
|
173
259
|
export const text = (string) => {
|
|
174
260
|
return {
|
|
261
|
+
/**
|
|
262
|
+
* Converts the string into a state value using the provided function and context.
|
|
263
|
+
* @param context additional context passed to `assign_state`
|
|
264
|
+
* @param assign_state function that receives the context and the string and returns the state
|
|
265
|
+
* @returns the state produced by `assign_state`
|
|
266
|
+
*/
|
|
175
267
|
to_state: (context, assign_state) => assign_state(context, string)
|
|
176
268
|
};
|
|
177
269
|
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9fX2ludGVybmFsL3JlZmluZXIvZnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLDRCQUE0QixDQUFBO0FBQ2xELE9BQU8sS0FBSyxJQUFJLE1BQU0sK0JBQStCLENBQUE7QUFDckQsT0FBTyxFQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDbkUsT0FBTyxLQUFLLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUVuRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN0QixJQUF3QixFQUMxQixFQUFFO0lBQ0EsT0FBTztRQUVIOzs7Ozs7V0FNRztRQUNILFNBQVMsQ0FDTCxFQUFVLEVBQ1YsS0FFQztZQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUUsQ0FBQTtnQkFDekIsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBRUQ7Ozs7V0FJRztRQUNILGtCQUFrQixDQUNkLEVBQVU7WUFFVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDNUIsS0FBSyxJQUFJLENB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
|