effect-app 1.32.0 → 2.0.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.
- package/CHANGELOG.md +6 -0
- package/_cjs/Array.cjs +132 -0
- package/_cjs/Array.cjs.map +1 -0
- package/_cjs/Chunk.cjs +128 -0
- package/_cjs/Chunk.cjs.map +1 -0
- package/_cjs/Config/SecretURL.cjs +3 -3
- package/_cjs/Config/SecretURL.cjs.map +1 -1
- package/_cjs/Config/internal/configSecretURL.cjs +2 -2
- package/_cjs/Config/internal/configSecretURL.cjs.map +1 -1
- package/_cjs/Context.cjs +243 -0
- package/_cjs/Context.cjs.map +1 -0
- package/_cjs/Dictionary.cjs +522 -0
- package/_cjs/Dictionary.cjs.map +1 -0
- package/_cjs/Effect.cjs +202 -0
- package/_cjs/Effect.cjs.map +1 -0
- package/_cjs/Function.cjs +107 -0
- package/_cjs/Function.cjs.map +1 -0
- package/_cjs/NonEmptySet.cjs +26 -0
- package/_cjs/NonEmptySet.cjs.map +1 -0
- package/_cjs/NonEmptySetAspects.cjs +17 -0
- package/_cjs/NonEmptySetAspects.cjs.map +1 -0
- package/_cjs/NonEmptySetBase.cjs +82 -0
- package/_cjs/NonEmptySetBase.cjs.map +1 -0
- package/_cjs/Object.cjs +24 -0
- package/_cjs/Object.cjs.map +1 -0
- package/_cjs/Operations.cjs +1 -1
- package/_cjs/Option.cjs +88 -0
- package/_cjs/Option.cjs.map +1 -0
- package/_cjs/Prelude.cjs +51 -0
- package/_cjs/Prelude.cjs.map +1 -0
- package/_cjs/Prelude.code.cjs +51 -0
- package/_cjs/Prelude.code.cjs.map +1 -0
- package/_cjs/Pure.cjs +39 -36
- package/_cjs/Pure.cjs.map +1 -1
- package/_cjs/Schema/Class.cjs +61 -0
- package/_cjs/Schema/Class.cjs.map +1 -0
- package/_cjs/Schema/FastCheck.cjs +39 -0
- package/_cjs/Schema/FastCheck.cjs.map +1 -0
- package/_cjs/Schema/Methods.cjs +6 -0
- package/_cjs/Schema/Methods.cjs.map +1 -0
- package/_cjs/Schema/brand.cjs +17 -0
- package/_cjs/Schema/brand.cjs.map +1 -0
- package/_cjs/Schema/email.cjs +20 -0
- package/_cjs/Schema/email.cjs.map +1 -0
- package/_cjs/Schema/ext.cjs +174 -0
- package/_cjs/Schema/ext.cjs.map +1 -0
- package/_cjs/Schema/moreStrings.cjs +124 -0
- package/_cjs/Schema/moreStrings.cjs.map +1 -0
- package/_cjs/Schema/numbers.cjs +52 -0
- package/_cjs/Schema/numbers.cjs.map +1 -0
- package/_cjs/Schema/phoneNumber.cjs +22 -0
- package/_cjs/Schema/phoneNumber.cjs.map +1 -0
- package/_cjs/Schema/schema.cjs +15 -0
- package/_cjs/Schema/schema.cjs.map +1 -0
- package/_cjs/Schema/strings.cjs +32 -0
- package/_cjs/Schema/strings.cjs.map +1 -0
- package/_cjs/Schema.cjs +334 -0
- package/_cjs/Schema.cjs.map +1 -0
- package/_cjs/Set.cjs +567 -0
- package/_cjs/Set.cjs.map +1 -0
- package/_cjs/Struct.cjs +51 -0
- package/_cjs/Struct.cjs.map +1 -0
- package/_cjs/Tag.cjs +25 -0
- package/_cjs/Tag.cjs.map +1 -0
- package/_cjs/Unify.cjs +40 -0
- package/_cjs/Unify.cjs.map +1 -0
- package/_cjs/_ext/misc.cjs +16 -16
- package/_cjs/_ext/misc.cjs.map +1 -1
- package/_cjs/_ext/ord.ext.cjs +52 -0
- package/_cjs/_ext/ord.ext.cjs.map +1 -0
- package/_cjs/builtin.cjs +6 -0
- package/_cjs/builtin.cjs.map +1 -0
- package/_cjs/client/clientFor.cjs +5 -3
- package/_cjs/client/clientFor.cjs.map +1 -1
- package/_cjs/client/config.cjs +4 -4
- package/_cjs/client/config.cjs.map +1 -1
- package/_cjs/client/errors.cjs +9 -9
- package/_cjs/client/errors.cjs.map +1 -1
- package/_cjs/http/http-client.cjs +35 -0
- package/_cjs/http/http-client.cjs.map +1 -0
- package/_cjs/ids.cjs +5 -5
- package/_cjs/ids.cjs.map +1 -1
- package/_cjs/index.cjs +1 -1
- package/_cjs/lib.cjs +178 -9
- package/_cjs/lib.cjs.map +1 -1
- package/_cjs/logger.cjs +1 -1
- package/_cjs/transform.cjs +45 -0
- package/_cjs/transform.cjs.map +1 -0
- package/_cjs/utils/effectify.cjs +25 -0
- package/_cjs/utils/effectify.cjs.map +1 -0
- package/_cjs/utils/extend.cjs +17 -0
- package/_cjs/utils/extend.cjs.map +1 -0
- package/_cjs/utils/logger.cjs +23 -0
- package/_cjs/utils/logger.cjs.map +1 -0
- package/_cjs/utils.cjs +431 -4
- package/_cjs/utils.cjs.map +1 -1
- package/_cjs/validation/validators.cjs +32 -0
- package/_cjs/validation/validators.cjs.map +1 -0
- package/_cjs/validation.cjs +45 -0
- package/_cjs/validation.cjs.map +1 -0
- package/dist/Array.d.ts +64 -0
- package/dist/Array.d.ts.map +1 -0
- package/dist/Array.js +89 -0
- package/dist/Chunk.d.ts +68 -0
- package/dist/Chunk.d.ts.map +1 -0
- package/dist/Chunk.js +93 -0
- package/dist/Config/SecretURL.d.ts +3 -3
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config/internal/configSecretURL.js +2 -2
- package/dist/Context.d.ts +55 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +204 -0
- package/dist/Dictionary.d.ts +260 -0
- package/dist/Dictionary.d.ts.map +1 -0
- package/dist/Dictionary.js +448 -0
- package/dist/Effect.d.ts +115 -0
- package/dist/Effect.d.ts.map +1 -0
- package/dist/Effect.js +153 -0
- package/dist/Function.d.ts +72 -0
- package/dist/Function.d.ts.map +1 -0
- package/dist/Function.js +71 -0
- package/dist/Inputify.type.d.ts +1 -1
- package/dist/Inputify.type.d.ts.map +1 -1
- package/dist/NonEmptySet.d.ts +3 -0
- package/dist/NonEmptySet.d.ts.map +1 -0
- package/dist/NonEmptySet.js +3 -0
- package/dist/NonEmptySetAspects.d.ts +2 -0
- package/dist/NonEmptySetAspects.d.ts.map +1 -0
- package/dist/NonEmptySetAspects.js +2 -0
- package/dist/NonEmptySetBase.d.ts +39 -0
- package/dist/NonEmptySetBase.d.ts.map +1 -0
- package/dist/NonEmptySetBase.js +63 -0
- package/dist/Object.d.ts +7 -0
- package/dist/Object.d.ts.map +1 -0
- package/dist/Object.js +7 -0
- package/dist/Operations.d.ts +2 -2
- package/dist/Operations.js +1 -1
- package/dist/Option.d.ts +39 -0
- package/dist/Option.d.ts.map +1 -0
- package/dist/Option.js +55 -0
- package/dist/Prelude.code.d.ts +24 -0
- package/dist/Prelude.code.d.ts.map +1 -0
- package/dist/Prelude.code.js +23 -0
- package/dist/Prelude.d.ts +163 -0
- package/dist/Prelude.d.ts.map +1 -0
- package/dist/Prelude.js +23 -0
- package/dist/Pure.d.ts +13 -12
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +18 -17
- package/dist/Schema/Class.d.ts +45 -0
- package/dist/Schema/Class.d.ts.map +1 -0
- package/dist/Schema/Class.js +50 -0
- package/dist/Schema/FastCheck.d.ts +10 -0
- package/dist/Schema/FastCheck.d.ts.map +1 -0
- package/dist/Schema/FastCheck.js +12 -0
- package/dist/Schema/Methods.d.ts +6 -0
- package/dist/Schema/Methods.d.ts.map +1 -0
- package/dist/Schema/Methods.js +2 -0
- package/dist/Schema/brand.d.ts +35 -0
- package/dist/Schema/brand.d.ts.map +1 -0
- package/dist/Schema/brand.js +7 -0
- package/dist/Schema/email.d.ts +9 -0
- package/dist/Schema/email.d.ts.map +1 -0
- package/dist/Schema/email.js +12 -0
- package/dist/Schema/ext.d.ts +89 -0
- package/dist/Schema/ext.d.ts.map +1 -0
- package/dist/Schema/ext.js +111 -0
- package/dist/Schema/moreStrings.d.ts +109 -0
- package/dist/Schema/moreStrings.d.ts.map +1 -0
- package/dist/Schema/moreStrings.js +108 -0
- package/dist/Schema/numbers.d.ts +46 -0
- package/dist/Schema/numbers.d.ts.map +1 -0
- package/dist/Schema/numbers.js +28 -0
- package/dist/Schema/phoneNumber.d.ts +9 -0
- package/dist/Schema/phoneNumber.d.ts.map +1 -0
- package/dist/Schema/phoneNumber.js +14 -0
- package/dist/Schema/schema.d.ts +6 -0
- package/dist/Schema/schema.d.ts.map +1 -0
- package/dist/Schema/schema.js +5 -0
- package/dist/Schema/strings.d.ts +19 -0
- package/dist/Schema/strings.d.ts.map +1 -0
- package/dist/Schema/strings.js +32 -0
- package/dist/{schema.d.ts → Schema.d.ts} +25 -9
- package/dist/Schema.d.ts.map +1 -0
- package/dist/Schema.js +89 -0
- package/dist/Set.d.ts +221 -0
- package/dist/Set.d.ts.map +1 -0
- package/dist/Set.js +516 -0
- package/dist/Struct.d.ts +44 -0
- package/dist/Struct.d.ts.map +1 -0
- package/dist/Struct.js +29 -0
- package/dist/Tag.d.ts +9 -0
- package/dist/Tag.d.ts.map +1 -0
- package/dist/Tag.js +18 -0
- package/dist/Unify.d.ts +43 -0
- package/dist/Unify.d.ts.map +1 -0
- package/dist/Unify.js +31 -0
- package/dist/Widen.type.d.ts +1 -1
- package/dist/Widen.type.d.ts.map +1 -1
- package/dist/_ext/misc.d.ts +11 -11
- package/dist/_ext/misc.d.ts.map +1 -1
- package/dist/_ext/misc.js +8 -8
- package/dist/_ext/ord.ext.d.ts +23 -0
- package/dist/_ext/ord.ext.d.ts.map +1 -0
- package/dist/_ext/ord.ext.js +44 -0
- package/dist/builtin.d.ts +51 -0
- package/dist/builtin.d.ts.map +1 -0
- package/dist/builtin.js +2 -0
- package/dist/client/clientFor.d.ts +1 -1
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +2 -2
- package/dist/client/config.d.ts +1 -1
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +2 -2
- package/dist/client/errors.js +1 -1
- package/dist/http/http-client.d.ts +43 -0
- package/dist/http/http-client.d.ts.map +1 -0
- package/dist/http/http-client.js +30 -0
- package/dist/ids.d.ts +3 -3
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib.d.ts +22 -4
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +20 -5
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +2 -2
- package/dist/transform.d.ts +12 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +39 -0
- package/dist/utils/effectify.d.ts +210 -0
- package/dist/utils/effectify.d.ts.map +1 -0
- package/dist/utils/effectify.js +19 -0
- package/dist/utils/extend.d.ts +3 -0
- package/dist/utils/extend.d.ts.map +1 -0
- package/dist/utils/extend.js +9 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +15 -0
- package/dist/utils.d.ts +192 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +332 -2
- package/dist/validation/validators.d.ts +11 -0
- package/dist/validation/validators.d.ts.map +1 -0
- package/dist/validation/validators.js +26 -0
- package/dist/validation.d.ts +13 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +14 -0
- package/package.json +360 -9
- package/src/Array.ts +127 -0
- package/src/Chunk.ts +112 -0
- package/src/Config/SecretURL.ts +3 -3
- package/src/Config/internal/configSecretURL.ts +1 -1
- package/src/Context.ts +293 -0
- package/src/Dictionary.ts +669 -0
- package/src/Effect.ts +265 -0
- package/src/Function.ts +175 -0
- package/src/Inputify.type.ts +1 -1
- package/src/NonEmptySet.ts +3 -0
- package/src/NonEmptySetAspects.ts +1 -0
- package/src/NonEmptySetBase.ts +109 -0
- package/src/Object.ts +19 -0
- package/src/Operations.ts +1 -1
- package/src/Option.ts +82 -0
- package/src/Prelude.code.ts +26 -0
- package/src/Prelude.ts +220 -0
- package/src/Pure.ts +37 -30
- package/src/Schema/Class.ts +225 -0
- package/src/Schema/FastCheck.ts +23 -0
- package/src/Schema/Methods.ts +8 -0
- package/src/Schema/brand.ts +50 -0
- package/src/Schema/email.ts +22 -0
- package/src/Schema/ext.ts +273 -0
- package/src/Schema/moreStrings.ts +260 -0
- package/src/Schema/numbers.ts +83 -0
- package/src/Schema/phoneNumber.ts +24 -0
- package/src/Schema/schema.ts +6 -0
- package/src/Schema/strings.ts +60 -0
- package/src/{schema.ts → Schema.ts} +52 -20
- package/src/Set.ts +674 -0
- package/src/Struct.ts +54 -0
- package/src/Tag.ts +20 -0
- package/src/Unify.ts +56 -0
- package/src/Widen.type.ts +1 -1
- package/src/_ext/misc.ts +22 -22
- package/src/_ext/ord.ext.ts +49 -0
- package/src/builtin.ts +64 -0
- package/src/client/clientFor.ts +1 -1
- package/src/client/config.ts +1 -1
- package/src/client/errors.ts +1 -1
- package/src/http/http-client.ts +73 -0
- package/src/ids.ts +3 -3
- package/src/index.ts +1 -1
- package/src/lib.ts +88 -4
- package/src/logger.ts +1 -1
- package/src/transform.ts +80 -0
- package/src/utils/effectify.ts +259 -0
- package/src/utils/extend.ts +9 -0
- package/src/utils/logger.ts +24 -0
- package/src/utils.ts +805 -1
- package/src/validation/validators.ts +32 -0
- package/src/validation.ts +18 -0
- package/tsconfig.src.json +1 -5
- package/_cjs/schema.cjs +0 -110
- package/_cjs/schema.cjs.map +0 -1
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -73
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
// ets_tracing: off
|
|
2
|
+
import * as A from "./Array.js";
|
|
3
|
+
import { pipe, tuple } from "./Function.js";
|
|
4
|
+
import * as O from "./Option.js";
|
|
5
|
+
// /**
|
|
6
|
+
// * Build a readonly record from a mutable version
|
|
7
|
+
// */
|
|
8
|
+
// export function fromMutable<A>(r: MutableRecord<string, A>): Dictionary<A> {
|
|
9
|
+
// return Object.assign({}, r)
|
|
10
|
+
// }
|
|
11
|
+
// /**
|
|
12
|
+
// * Converts the record to a mutable version
|
|
13
|
+
// */
|
|
14
|
+
// export function toMutable<A>(r: Dictionary<A>): MutableRecord<string, A> {
|
|
15
|
+
// return Object.assign({}, r)
|
|
16
|
+
// }
|
|
17
|
+
/**
|
|
18
|
+
* Calculate the number of key/value pairs in a record
|
|
19
|
+
*/
|
|
20
|
+
export function size(r) {
|
|
21
|
+
return Object.keys(r).length;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Test whether a record is empty
|
|
25
|
+
*/
|
|
26
|
+
export function isEmpty(r) {
|
|
27
|
+
return Object.keys(r).length === 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Extract record keys
|
|
31
|
+
*/
|
|
32
|
+
export function keys(r) {
|
|
33
|
+
return Object.keys(r).sort();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Extract record values
|
|
37
|
+
*/
|
|
38
|
+
export function values(r) {
|
|
39
|
+
return Object
|
|
40
|
+
.keys(r)
|
|
41
|
+
.sort()
|
|
42
|
+
.map((s) => r[s]);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Map a record into an array
|
|
46
|
+
*/
|
|
47
|
+
export function collect(f) {
|
|
48
|
+
return (r) => collect_(r, f);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Map a record into an array
|
|
52
|
+
*/
|
|
53
|
+
export function collect_(r, f) {
|
|
54
|
+
const out = [];
|
|
55
|
+
for (const key of keys(r)) {
|
|
56
|
+
out.push(f(key, r[key]));
|
|
57
|
+
}
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Insert or replace a key/value pair in a record
|
|
62
|
+
*/
|
|
63
|
+
export function insertAt(k, a) {
|
|
64
|
+
return (r) => insertAt_(r, k, a);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Insert or replace a key/value pair in a record
|
|
68
|
+
*/
|
|
69
|
+
export function insertAt_(r, k, a) {
|
|
70
|
+
if (r[k] === a) {
|
|
71
|
+
return r;
|
|
72
|
+
}
|
|
73
|
+
const out = Object.assign({}, r);
|
|
74
|
+
out[k] = a;
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if k is a key
|
|
79
|
+
*/
|
|
80
|
+
export function hasOwnProperty(r, k) {
|
|
81
|
+
return Object.prototype.hasOwnProperty.call(r, k);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Delete a key
|
|
85
|
+
*/
|
|
86
|
+
export function deleteAt(k) {
|
|
87
|
+
return (r) => deleteAt_(r, k);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Delete a key
|
|
91
|
+
*/
|
|
92
|
+
export function deleteAt_(r, k) {
|
|
93
|
+
if (!Object.prototype.hasOwnProperty.call(r, k)) {
|
|
94
|
+
return r;
|
|
95
|
+
}
|
|
96
|
+
const out = Object.assign({}, r);
|
|
97
|
+
delete out[k];
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Update a key value pair
|
|
102
|
+
*/
|
|
103
|
+
export function updateAt(k, a) {
|
|
104
|
+
return (r) => updateAt_(r, k, a);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Update a key value pair
|
|
108
|
+
*/
|
|
109
|
+
export function updateAt_(r, k, a) {
|
|
110
|
+
if (!hasOwnProperty(r, k)) {
|
|
111
|
+
return O.none();
|
|
112
|
+
}
|
|
113
|
+
if (r[k] === a) {
|
|
114
|
+
return O.some(r);
|
|
115
|
+
}
|
|
116
|
+
const out = Object.assign({}, r);
|
|
117
|
+
out[k] = a;
|
|
118
|
+
return O.some(out);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Modify the value at key k with f
|
|
122
|
+
*/
|
|
123
|
+
export function modifyAt(k, f) {
|
|
124
|
+
return (r) => modifyAt_(r, k, f);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Modify the value at key k with f
|
|
128
|
+
*/
|
|
129
|
+
export function modifyAt_(r, k, f) {
|
|
130
|
+
if (!hasOwnProperty(r, k)) {
|
|
131
|
+
return O.none();
|
|
132
|
+
}
|
|
133
|
+
const out = Object.assign({}, r);
|
|
134
|
+
out[k] = f(r[k]);
|
|
135
|
+
return O.some(out);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Delete a key and value from a map, returning the value as well as the subsequent map
|
|
139
|
+
*/
|
|
140
|
+
export function pop(k) {
|
|
141
|
+
return (r) => pop_(r, k);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Delete a key and value from a map, returning the value as well as the subsequent map
|
|
145
|
+
*/
|
|
146
|
+
export function pop_(r, k) {
|
|
147
|
+
const deleteAtk = deleteAt(k);
|
|
148
|
+
const oa = lookup_(r, k);
|
|
149
|
+
return O.isNone(oa) ? O.none() : O.some(tuple(oa.value, deleteAtk(r)));
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Lookup the value for a key in a record
|
|
153
|
+
*/
|
|
154
|
+
export function lookup_(r, k) {
|
|
155
|
+
return Object.prototype.hasOwnProperty.call(r, k) ? O.some(r[k]) : O.none();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Lookup the value for a key in a record
|
|
159
|
+
*/
|
|
160
|
+
export function lookup(k) {
|
|
161
|
+
return (r) => (Object.prototype.hasOwnProperty.call(r, k) ? O.some(r[k]) : O.none());
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Empty record
|
|
165
|
+
*/
|
|
166
|
+
export const empty = {};
|
|
167
|
+
/**
|
|
168
|
+
* Map a record passing the keys to the iterating function
|
|
169
|
+
*/
|
|
170
|
+
export function mapWithIndex(f) {
|
|
171
|
+
return (fa) => mapWithIndex_(fa, f);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Map a record passing the keys to the iterating function
|
|
175
|
+
*/
|
|
176
|
+
export function mapWithIndex_(fa, f) {
|
|
177
|
+
const out = {};
|
|
178
|
+
const keys = Object.keys(fa);
|
|
179
|
+
for (const key of keys) {
|
|
180
|
+
out[key] = f(key, fa[key]);
|
|
181
|
+
}
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Map a record passing the values to the iterating function
|
|
186
|
+
*/
|
|
187
|
+
export function map(f) {
|
|
188
|
+
return (fa) => map_(fa, f);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Map a record passing the values to the iterating function
|
|
192
|
+
*/
|
|
193
|
+
export function map_(fa, f) {
|
|
194
|
+
return mapWithIndex_(fa, (_, a) => f(a));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Reduce the record passing the index toghether with the value to f
|
|
198
|
+
*/
|
|
199
|
+
export function reduceWithIndex(b, f) {
|
|
200
|
+
return (fa) => reduceWithIndex_(fa, b, f);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Reduce the record passing the index toghether with the value to f
|
|
204
|
+
*/
|
|
205
|
+
export function reduceWithIndex_(fa, b, f) {
|
|
206
|
+
let out = b;
|
|
207
|
+
const keys = Object.keys(fa).sort();
|
|
208
|
+
const len = keys.length;
|
|
209
|
+
for (let i = 0; i < len; i++) {
|
|
210
|
+
const k = keys[i];
|
|
211
|
+
out = f(k, out, fa[k]);
|
|
212
|
+
}
|
|
213
|
+
return out;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Reduce the record passing the index toghether with the value to f
|
|
217
|
+
*
|
|
218
|
+
* Inverted order
|
|
219
|
+
*/
|
|
220
|
+
export function reduceRightWithIndex(b, f) {
|
|
221
|
+
return (fa) => reduceRightWithIndex_(fa, b, f);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Reduce the record passing the index toghether with the value to f
|
|
225
|
+
*
|
|
226
|
+
* Inverted order
|
|
227
|
+
*/
|
|
228
|
+
export function reduceRightWithIndex_(fa, b, f) {
|
|
229
|
+
let out = b;
|
|
230
|
+
const keys = Object.keys(fa).sort();
|
|
231
|
+
const len = keys.length;
|
|
232
|
+
for (let i = len - 1; i >= 0; i--) {
|
|
233
|
+
const k = keys[i];
|
|
234
|
+
out = f(k, fa[k], out);
|
|
235
|
+
}
|
|
236
|
+
return out;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Create a record with one key/value pair
|
|
240
|
+
*/
|
|
241
|
+
export function singleton(k, a) {
|
|
242
|
+
return { [k]: a };
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Partition a record using f that also consumes the entry key
|
|
246
|
+
*/
|
|
247
|
+
export function partitionMapWithIndex(f) {
|
|
248
|
+
return (fa) => partitionMapWithIndex_(fa, f);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Partition a record using f that also consumes the entry key
|
|
252
|
+
*/
|
|
253
|
+
export function partitionMapWithIndex_(fa, f) {
|
|
254
|
+
const left = {};
|
|
255
|
+
const right = {};
|
|
256
|
+
const keys = Object.keys(fa);
|
|
257
|
+
for (const key of keys) {
|
|
258
|
+
const e = f(key, fa[key]);
|
|
259
|
+
switch (e._tag) {
|
|
260
|
+
case "Left":
|
|
261
|
+
left[key] = e.left;
|
|
262
|
+
break;
|
|
263
|
+
case "Right":
|
|
264
|
+
right[key] = e.right;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return tuple(left, right);
|
|
269
|
+
}
|
|
270
|
+
export function partitionWithIndex(predicateWithIndex) {
|
|
271
|
+
return (fa) => partitionWithIndex_(fa, predicateWithIndex);
|
|
272
|
+
}
|
|
273
|
+
export function partitionWithIndex_(fa, predicateWithIndex) {
|
|
274
|
+
const left = {};
|
|
275
|
+
const right = {};
|
|
276
|
+
const keys = Object.keys(fa);
|
|
277
|
+
for (const key of keys) {
|
|
278
|
+
const a = fa[key];
|
|
279
|
+
if (predicateWithIndex(key, a)) {
|
|
280
|
+
right[key] = a;
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
left[key] = a;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return tuple(left, right);
|
|
287
|
+
}
|
|
288
|
+
export function filterMapWithIndex(f) {
|
|
289
|
+
return (fa) => filterMapWithIndex_(fa, f);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Filter & map the record entries with f that consumes also the entry index
|
|
293
|
+
*/
|
|
294
|
+
export function filterMapWithIndex_(fa, f) {
|
|
295
|
+
const r = {};
|
|
296
|
+
const keys = Object.keys(fa);
|
|
297
|
+
for (const key of keys) {
|
|
298
|
+
const optionB = f(key, fa[key]);
|
|
299
|
+
if (O.isSome(optionB)) {
|
|
300
|
+
r[key] = optionB.value;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return r;
|
|
304
|
+
}
|
|
305
|
+
export function filterWithIndex(predicateWithIndex) {
|
|
306
|
+
return (fa) => filterWithIndex_(fa, predicateWithIndex);
|
|
307
|
+
}
|
|
308
|
+
export function filterWithIndex_(fa, predicateWithIndex) {
|
|
309
|
+
const out = {};
|
|
310
|
+
let changed = false;
|
|
311
|
+
for (const key in fa) {
|
|
312
|
+
if (Object.prototype.hasOwnProperty.call(fa, key)) {
|
|
313
|
+
const a = fa[key];
|
|
314
|
+
if (predicateWithIndex(key, a)) {
|
|
315
|
+
out[key] = a;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
changed = true;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return changed ? out : fa;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Checks a predicate against all the record entries
|
|
326
|
+
*/
|
|
327
|
+
export function every(predicate) {
|
|
328
|
+
return (r) => every_(r, predicate);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Checks a predicate against all the record entries
|
|
332
|
+
*/
|
|
333
|
+
export function every_(r, predicate) {
|
|
334
|
+
for (const k in r) {
|
|
335
|
+
if (!predicate(r[k])) {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Checks a predicate against some of the record entries
|
|
343
|
+
*/
|
|
344
|
+
export function some(predicate) {
|
|
345
|
+
return (r) => some_(r, predicate);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Checks a predicate against some of the record entries
|
|
349
|
+
*/
|
|
350
|
+
export function some_(r, predicate) {
|
|
351
|
+
for (const k in r) {
|
|
352
|
+
if (predicate(r[k])) {
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Drop the None entries
|
|
360
|
+
*/
|
|
361
|
+
export const compact = (fa) => {
|
|
362
|
+
const r = {};
|
|
363
|
+
const keys = Object.keys(fa);
|
|
364
|
+
for (const key of keys) {
|
|
365
|
+
const optionA = fa[key];
|
|
366
|
+
if (O.isSome(optionA)) {
|
|
367
|
+
r[key] = optionA.value;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return r;
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* Separate the record entries
|
|
374
|
+
*/
|
|
375
|
+
export const separate = (fa) => {
|
|
376
|
+
const left = {};
|
|
377
|
+
const right = {};
|
|
378
|
+
const keys = Object.keys(fa);
|
|
379
|
+
for (const key of keys) {
|
|
380
|
+
const e = fa[key];
|
|
381
|
+
switch (e._tag) {
|
|
382
|
+
case "Left":
|
|
383
|
+
left[key] = e.left;
|
|
384
|
+
break;
|
|
385
|
+
case "Right":
|
|
386
|
+
right[key] = e.right;
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return tuple(left, right);
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* Filter record entries according to a predicate
|
|
394
|
+
*/
|
|
395
|
+
export const filter = (predicate) => (fa) => filter_(fa, predicate);
|
|
396
|
+
/**
|
|
397
|
+
* Filter record entries according to a predicate
|
|
398
|
+
*/
|
|
399
|
+
export const filter_ = (fa, predicate) => filterWithIndex_(fa, (_, a) => predicate(a));
|
|
400
|
+
/**
|
|
401
|
+
* Filter & map record entries according to a predicate
|
|
402
|
+
*/
|
|
403
|
+
export const filterMap = (f) => (fa) => filterMap_(fa, f);
|
|
404
|
+
/**
|
|
405
|
+
* Filter & map record entries according to a predicate
|
|
406
|
+
*/
|
|
407
|
+
export const filterMap_ = (fa, f) => filterMapWithIndex_(fa, (_, a) => f(a));
|
|
408
|
+
/**
|
|
409
|
+
* Partition record entries according to a predicate
|
|
410
|
+
*/
|
|
411
|
+
export const partition = (predicate) => (fa) => partition_(fa, predicate);
|
|
412
|
+
/**
|
|
413
|
+
* Partition record entries according to a predicate
|
|
414
|
+
*/
|
|
415
|
+
export const partition_ = (fa, predicate) => partitionWithIndex_(fa, (_, a) => predicate(a));
|
|
416
|
+
/**
|
|
417
|
+
* Partition & map record entries
|
|
418
|
+
*/
|
|
419
|
+
export const partitionMap = (f) => (fa) => partitionMap_(fa, f);
|
|
420
|
+
/**
|
|
421
|
+
* Partition & map record entries
|
|
422
|
+
*/
|
|
423
|
+
export const partitionMap_ = (fa, f) => partitionMapWithIndex_(fa, (_, a) => f(a));
|
|
424
|
+
/**
|
|
425
|
+
* Reduce record entries
|
|
426
|
+
*/
|
|
427
|
+
export const reduce = (b, f) => (fa) => reduce_(fa, b, f);
|
|
428
|
+
/**
|
|
429
|
+
* Reduce record entries
|
|
430
|
+
*/
|
|
431
|
+
export const reduce_ = (fa, b, f) => reduceWithIndex_(fa, b, (_, b, a) => f(b, a));
|
|
432
|
+
/**
|
|
433
|
+
* Reduce record entries in inverted order
|
|
434
|
+
*/
|
|
435
|
+
export const reduceRight = (b, f) => (fa) => reduceRight_(fa, b, f);
|
|
436
|
+
/**
|
|
437
|
+
* Reduce record entries in inverted order
|
|
438
|
+
*/
|
|
439
|
+
export const reduceRight_ = (fa, b, f) => reduceRightWithIndex_(fa, b, (_, a, b) => f(a, b));
|
|
440
|
+
/**
|
|
441
|
+
* Converts a record into an array of [key, value]
|
|
442
|
+
*/
|
|
443
|
+
export const toArray = collect(tuple);
|
|
444
|
+
/**
|
|
445
|
+
* Converts an array of [key, value] into a record
|
|
446
|
+
*/
|
|
447
|
+
export const fromArray = (_) => pipe(_, A.reduce({}, (b, [k, v]) => Object.assign(b, { [k]: v })));
|
|
448
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9EaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQjtBQUduQixPQUFPLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQTtBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFtQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUUsT0FBTyxLQUFLLENBQUMsTUFBTSxhQUFhLENBQUE7QUFXaEMsTUFBTTtBQUNOLG9EQUFvRDtBQUNwRCxNQUFNO0FBQ04sK0VBQStFO0FBQy9FLGdDQUFnQztBQUNoQyxJQUFJO0FBRUosTUFBTTtBQUNOLDhDQUE4QztBQUM5QyxNQUFNO0FBQ04sNkVBQTZFO0FBQzdFLGdDQUFnQztBQUNoQyxJQUFJO0FBRUo7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLENBQXNCO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7QUFDOUIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxDQUFzQjtJQUM1QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtBQUNwQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLENBQXNCO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQVMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFJLENBQWdCO0lBQ3hDLE9BQU8sTUFBTTtTQUNWLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDUCxJQUFJLEVBQUU7U0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFBO0FBQ3RC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
|
package/dist/Effect.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Effect, Option, Ref } from "effect";
|
|
2
|
+
import * as Def from "effect/Deferred";
|
|
3
|
+
import type { Semaphore } from "effect/Effect";
|
|
4
|
+
import * as Fiber from "effect/Fiber";
|
|
5
|
+
import { type Context } from "./index.js";
|
|
6
|
+
export * from "effect/Effect";
|
|
7
|
+
/**
|
|
8
|
+
* @macro traced
|
|
9
|
+
* @tsplus fluent effect/io/Effect flatMapOpt
|
|
10
|
+
*/
|
|
11
|
+
export declare function flatMapOption<R, E, A, R2, E2, A2>(self: Effect.Effect<Option.Option<A>, E, R>, fm: (a: A) => Effect.Effect<A2, E2, R2>): Effect.Effect<Option.Option<A2>, E | E2, R | R2>;
|
|
12
|
+
/**
|
|
13
|
+
* @macro traced
|
|
14
|
+
* @tsplus fluent effect/io/Effect tapOpt
|
|
15
|
+
*/
|
|
16
|
+
export declare function tapOption<R, E, A, R2, E2, A2>(self: Effect.Effect<Option.Option<A>, E, R>, fm: (a: A) => Effect.Effect<A2, E2, R2>): Effect.Effect<Option.Option<A>, E | E2, R | R2>;
|
|
17
|
+
/**
|
|
18
|
+
* @macro traced
|
|
19
|
+
* @tsplus fluent effect/io/Effect zipRightOpt
|
|
20
|
+
*/
|
|
21
|
+
export declare function zipRightOption<R, E, A, R2, E2, A2>(self: Effect.Effect<Option.Option<A>, E, R>, fm: Effect.Effect<A2, E2, R2>): Effect.Effect<Option.Option<A>, E | E2, R | R2>;
|
|
22
|
+
/**
|
|
23
|
+
* @macro traced
|
|
24
|
+
* @tsplus fluent effect/io/Effect mapOpt
|
|
25
|
+
*/
|
|
26
|
+
export declare function mapOption<R, E, A, A2>(self: Effect.Effect<Option.Option<A>, E, R>, fm: (a: A) => A2): Effect.Effect<Option.Option<A2>, E, R>;
|
|
27
|
+
/**
|
|
28
|
+
* Takes [A, B], applies it to a curried Effect function,
|
|
29
|
+
* taps the Effect, returning A.
|
|
30
|
+
*/
|
|
31
|
+
export declare function tupleTap<A, B, R, E, C>(f: (b: B) => (a: A) => Effect.Effect<C, E, R>): (t: readonly [A, B]) => Effect.Effect<A, E, R>;
|
|
32
|
+
/**
|
|
33
|
+
* Takes [A, B], applies it to an Effect function,
|
|
34
|
+
* taps the Effect, returning A.
|
|
35
|
+
*/
|
|
36
|
+
export declare function tupleTap_<A, B, R, E, C>(f: (a: A, b: B) => Effect.Effect<C, E, R>): (t: readonly [A, B]) => Effect.Effect<A, E, R>;
|
|
37
|
+
export declare function ifDiffR<I, R, E, A>(f: (i: I) => Effect.Effect<A, E, R>): (n: I, orig: I) => Effect.Effect<void, never, never> | Effect.Effect<A, E, R>;
|
|
38
|
+
export declare function ifDiff_<I, R, E, A>(n: I, orig: I, f: (i: I) => Effect.Effect<A, E, R>): Effect.Effect<void, never, never> | Effect.Effect<A, E, R>;
|
|
39
|
+
export declare function ifDiff<I, R, E, A>(n: I, orig: I): (f: (i: I) => Effect.Effect<A, E, R>) => Effect.Effect<void, never, never> | Effect.Effect<A, E, R>;
|
|
40
|
+
/**
|
|
41
|
+
* @tsplus static effect/io/Deferred.Ops await
|
|
42
|
+
* @tsplus getter effect/io/Deferred await
|
|
43
|
+
*/
|
|
44
|
+
export declare const await_: <A, E>(self: Def.Deferred<A, E>) => Effect.Effect<A, E>;
|
|
45
|
+
/**
|
|
46
|
+
* Ref has atomic modify support if synchronous, for Effect we need a Semaphore.
|
|
47
|
+
* @tsplus fluent effect/io/Ref modifyWithEffect
|
|
48
|
+
*/
|
|
49
|
+
export declare function modifyWithPermitWithEffect<A>(ref: Ref.Ref<A>, semaphore: Semaphore): <R, E, A2>(mod: (a: A) => Effect.Effect<readonly [A2, A], E, R>) => Effect.Effect<A2, E, R>;
|
|
50
|
+
/**
|
|
51
|
+
* @tsplus getter Iterable joinAll
|
|
52
|
+
* @tsplus static effect/io/Effect.Ops joinAll
|
|
53
|
+
*/
|
|
54
|
+
export declare function joinAll<E, A>(fibers: Iterable<Fiber.Fiber<A, E>>): Effect.Effect<readonly A[], E>;
|
|
55
|
+
type ServiceA<T> = T extends Effect.Effect<infer S, any, any> ? S : T extends Context.Tag<any, infer S> ? S : never;
|
|
56
|
+
type ServiceR<T> = T extends Effect.Effect<any, any, infer R> ? R : T extends Context.Tag<infer R, any> ? R : never;
|
|
57
|
+
type ServiceE<T> = T extends Effect.Effect<any, infer E, any> ? E : never;
|
|
58
|
+
type ValuesR<T> = T extends {
|
|
59
|
+
[s: string]: infer S;
|
|
60
|
+
} ? ServiceR<S> : never;
|
|
61
|
+
type ValuesE<T> = T extends {
|
|
62
|
+
[s: string]: infer S;
|
|
63
|
+
} ? ServiceE<S> : never;
|
|
64
|
+
/**
|
|
65
|
+
* Due to tsplus unification (tsplus unify tag), when trying to use the Effect type in a type constraint
|
|
66
|
+
* the compiler will cause basically anything to match. as such, use this type instead.
|
|
67
|
+
* ```ts
|
|
68
|
+
* const a = <
|
|
69
|
+
* SVC extends Record<
|
|
70
|
+
* string,
|
|
71
|
+
* ((req: number) => Effect.Effect<any, any, any>) | Effect.Effect<any, any, any>
|
|
72
|
+
* >
|
|
73
|
+
* >(svc: SVC) => svc
|
|
74
|
+
*
|
|
75
|
+
* const b = a({ str: "" }) // valid, but shouldn't be!
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export interface EffectUnunified<R, E, A> extends Effect.Effect<R, E, A> {
|
|
79
|
+
}
|
|
80
|
+
export type LowerFirst<S extends PropertyKey> = S extends `${infer First}${infer Rest}` ? `${Lowercase<First>}${Rest}` : S;
|
|
81
|
+
export type LowerServices<T extends Record<string, Context.Tag<any, any> | Effect.Effect<any, any, any>>> = {
|
|
82
|
+
[key in keyof T as LowerFirst<key>]: ServiceA<T[key]>;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* @tsplus static effect/io/Effect.Ops allLower
|
|
86
|
+
*/
|
|
87
|
+
export declare function allLower<T extends Record<string, Context.Tag<any, any> | Effect.Effect<any, any, any>>>(services: T): Effect.Effect<LowerServices<T>, ValuesE<T>, ValuesR<T>>;
|
|
88
|
+
/**
|
|
89
|
+
* @tsplus static effect/io/Effect.Ops allLowerWith
|
|
90
|
+
*/
|
|
91
|
+
export declare function allLowerWith<T extends Record<string, Context.Tag<any, any> | Effect.Effect<any, any, any>>, A>(services: T, fn: (services: LowerServices<T>) => A): Effect.Effect<A, ValuesE<T>, ValuesR<T>>;
|
|
92
|
+
/**
|
|
93
|
+
* @tsplus static effect/io/Effect.Ops allLowerWithEffect
|
|
94
|
+
*/
|
|
95
|
+
export declare function allLowerWithEffect<T extends Record<string, Context.Tag<any, any> | Effect.Effect<any, any, any>>, R, E, A>(services: T, fn: (services: LowerServices<T>) => Effect.Effect<A, E, R>): Effect.Effect<A, E | ValuesE<T>, R | ValuesR<T>>;
|
|
96
|
+
/**
|
|
97
|
+
* Recovers from all errors.
|
|
98
|
+
*
|
|
99
|
+
* @tsplus static effect/io/Effect.Ops catchAllMap
|
|
100
|
+
* @tsplus pipeable effect/io/Effect catchAllMap
|
|
101
|
+
*/
|
|
102
|
+
export declare function catchAllMap<E, A2>(f: (e: E) => A2): <R, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A2 | A, never, R>;
|
|
103
|
+
/**
|
|
104
|
+
* Annotates each log in this scope with the specified log annotation.
|
|
105
|
+
*
|
|
106
|
+
* @tsplus static effect/io/Effect.Ops annotateLogscoped
|
|
107
|
+
*/
|
|
108
|
+
export declare function annotateLogscoped(key: string, value: string): Effect.Effect<void, never, import("effect/Scope").Scope>;
|
|
109
|
+
/**
|
|
110
|
+
* Annotates each log in this scope with the specified log annotations.
|
|
111
|
+
*
|
|
112
|
+
* @tsplus static effect/io/Effect.Ops annotateLogsScoped
|
|
113
|
+
*/
|
|
114
|
+
export declare function annotateLogsScoped(kvps: Record<string, string>): Effect.Effect<void, never, import("effect/Scope").Scope>;
|
|
115
|
+
//# sourceMappingURL=Effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../src/Effect.ts"],"names":[],"mappings":"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"}
|