pareto-core 0.1.60 → 0.1.62

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.
@@ -37,12 +37,13 @@ export declare namespace decide {
37
37
  const boolean: <RT>(boolean_value: boolean, if_true: () => RT, if_false: () => RT) => RT;
38
38
  const dictionary: <T>(dictionary: _pi.Dictionary<T>) => {
39
39
  has_entries: <RT>(if_true: ($: _pi.Dictionary<T>) => RT, if_not_true: () => RT) => RT;
40
+ has_single_entry: <RT>(if_true: ($: T, id: string) => RT, if_multiple: ($: _pi.Dictionary<T>) => RT, if_none: () => RT) => RT;
40
41
  };
41
42
  const list: <T>(list: _pi.List<T>) => {
42
43
  has_first_item: <RT>(if_true: ($: T, rest: _pi.List<T>) => RT, if_not_true: () => RT) => RT;
43
44
  has_items: <RT>(if_true: ($: _pi.List<T>) => RT, if_not_true: () => RT) => RT;
44
45
  has_last_item: <RT>(if_true: ($: T, rest: _pi.List<T>) => RT, if_not_true: () => RT) => RT;
45
- has_match: <RT>(test: ($: T) => _pi.Optional_Value<RT>) => _pi.Optional_Value<RT>;
46
+ has_match: <RT>(test: ($: T) => _pi.Optional_Value<RT>, if_no_match: () => RT) => RT;
46
47
  has_single_item: <RT>(if_true: ($: T) => RT, if_multiple: ($: _pi.List<T>) => RT, if_none: () => RT) => RT;
47
48
  };
48
49
  const optional: <T, RT>(optional: _pi.Optional_Value<T>, if_set: ($: T) => RT, if_not_set: () => RT) => RT;
@@ -4,7 +4,6 @@ exports.decide = void 0;
4
4
  exports.ss = ss;
5
5
  exports.au = au;
6
6
  const List_1 = require("./literals/List");
7
- const Optional_1 = require("./literals/Optional");
8
7
  /**
9
8
  * ss means 'switch state'.
10
9
  * used to make the value T the context variable ('$')
@@ -51,7 +50,10 @@ var decide;
51
50
  return {
52
51
  has_entries: (if_true, if_not_true) => dictionary.__get_number_of_entries() !== 0
53
52
  ? if_true(dictionary)
54
- : if_not_true()
53
+ : if_not_true(),
54
+ has_single_entry: (if_true, if_multiple, if_none) => {
55
+ return decide.list(dictionary.__to_list(($, id) => ({ 'id': id, 'value': $ }))).has_single_item((item) => if_true(item.value, item.id), () => if_multiple(dictionary), if_none);
56
+ }
55
57
  };
56
58
  };
57
59
  decide.list = (list) => {
@@ -61,22 +63,22 @@ var decide;
61
63
  ? if_true(list)
62
64
  : if_not_true(),
63
65
  has_last_item: (if_true, if_not_true) => list.__deprecated_get_possible_item_at(list.__get_number_of_items() - 1).__decide(($) => if_true($, new List_1.List_Class(list.__get_raw_copy().slice(0, -1))), () => if_not_true()),
64
- has_match: (test) => {
66
+ has_match: (test, if_no_match) => {
65
67
  const raw = list.__get_raw_copy();
66
68
  for (let i = 0; i < raw.length; i++) {
67
69
  const item = raw[i];
68
- const result = test(item);
69
- if (result.__get_raw() !== null) {
70
- return result;
70
+ const result = test(item).__get_raw();
71
+ if (result !== null) {
72
+ return result[0];
71
73
  }
72
74
  }
73
- return new Optional_1.Not_Set_Optional_Value();
75
+ return if_no_match();
74
76
  },
75
77
  has_single_item: (if_true, if_multiple, if_none) => {
76
78
  return list.__get_number_of_items() > 2
77
79
  ? if_multiple(list)
78
80
  : list.__deprecated_get_possible_item_at(0).__decide(($) => if_true($), () => if_none());
79
- }
81
+ },
80
82
  };
81
83
  };
82
84
  decide.optional = (optional, if_set, if_not_set) => optional.__decide(if_set, if_not_set);
@@ -87,4 +89,4 @@ var decide;
87
89
  return assign(text);
88
90
  };
89
91
  })(decide || (exports.decide = decide = {}));
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19faW50ZXJuYWxzL3N5bmMvYXNzaWduL2RlY2lkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsZ0JBSUM7QUFnQkQsZ0JBSUM7QUE5Q0QsMENBQTRDO0FBQzVDLGtEQUE0RDtBQUk1RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILFNBQWdCLEVBQUUsQ0FDZCxNQUFpQixFQUNqQixFQUFnQjtJQUNoQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN4QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLEVBQUUsQ0FDZCxFQUFTO0lBRVQsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNsQyxDQUFDO0FBRUQsSUFBaUIsTUFBTSxDQTBHdEI7QUExR0QsV0FBaUIsTUFBTTtJQUVOLGNBQU8sR0FBRyxDQUNuQixhQUFzQixFQUN0QixPQUFpQixFQUNqQixRQUFrQixFQUNoQixFQUFFLENBQUMsYUFBYTtRQUNkLENBQUMsQ0FBQyxPQUFPLEVBQUU7UUFDWCxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFJUCxpQkFBVSxHQUFHLENBQ3RCLFVBQTZCLEVBQy9CLEVBQUU7UUFDQSxPQUFPO1lBRUgsV0FBVyxFQUFFLENBQ1QsT0FBcUMsRUFDckMsV0FBcUIsRUFDbkIsRUFBRSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUNyQixDQUFDLENBQUMsV0FBVyxFQUFFO1NBQzFCLENBQUE7SUFDTCxDQUFDLENBQUE7SUFFWSxXQUFJLEdBQUcsQ0FDaEIsSUFBaUIsRUFDbkIsRUFBRTtRQUNBLE9BQU87WUFFSCxjQUFjLEVBQUUsQ0FDWixPQUF3QyxFQUN4QyxXQUFxQixFQUNuQixF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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19faW50ZXJuYWxzL3N5bmMvYXNzaWduL2RlY2lkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsZ0JBSUM7QUFnQkQsZ0JBSUM7QUE5Q0QsMENBQTRDO0FBSzVDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsU0FBZ0IsRUFBRSxDQUNkLE1BQWlCLEVBQ2pCLEVBQWdCO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsRUFBRSxDQUNkLEVBQVM7SUFFVCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFFRCxJQUFpQixNQUFNLENBd0h0QjtBQXhIRCxXQUFpQixNQUFNO0lBRU4sY0FBTyxHQUFHLENBQ25CLGFBQXNCLEVBQ3RCLE9BQWlCLEVBQ2pCLFFBQWtCLEVBQ2hCLEVBQUUsQ0FBQyxhQUFhO1FBQ2QsQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNYLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUlQLGlCQUFVLEdBQUcsQ0FDdEIsVUFBNkIsRUFDL0IsRUFBRTtRQUNBLE9BQU87WUFFSCxXQUFXLEVBQUUsQ0FDVCxPQUFxQyxFQUNyQyxXQUFxQixFQUNuQixFQUFFLENBQUMsVUFBVSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFFdkIsZ0JBQWdCLEVBQUUsQ0FDZCxPQUFpQyxFQUNqQyxXQUF5QyxFQUN6QyxPQUFpQixFQUNmLEVBQUU7Z0JBQ0osT0FBTyxPQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pareto-core",
3
- "version": "0.1.60",
3
+ "version": "0.1.62",
4
4
  "license": "ISC",
5
5
  "description": "the core language constructs for the Pareto programming language (in TypeScript)",
6
6
  "author": "Corno",