@typed/guard 1.0.0-beta.4 → 1.0.0-beta.6
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/README.md +42 -22
- package/dist/index.d.ts +519 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +408 -19
- package/examples/basic.ts +23 -0
- package/package.json +27 -14
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -314
- package/src/index.test.ts +0 -366
- package/src/index.ts +0 -656
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,34 +6,158 @@ import { dual } from "effect/Function";
|
|
|
6
6
|
import * as Option from "effect/Option";
|
|
7
7
|
import * as Schema from "effect/Schema";
|
|
8
8
|
/**
|
|
9
|
+
* Returns a callable Guard unchanged or obtains one from an own callable
|
|
10
|
+
* `asGuard` property. Invalid adapter objects throw `TypeError` immediately.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* ## Why
|
|
14
|
+
* Central normalization makes invalid adapter shapes fail at construction instead of later during Effect execution.
|
|
15
|
+
*
|
|
16
|
+
* ## Ownership and lifetime
|
|
17
|
+
* Normalization acquires no resources and returns the existing Guard function or the adapter's result.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { getGuard, liftPredicate } from "@typed/guard"
|
|
22
|
+
* const guard = getGuard(liftPredicate((value: unknown): value is string => typeof value === "string"))
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @category Constructors
|
|
9
26
|
* @since 1.0.0
|
|
10
27
|
*/
|
|
11
|
-
export const getGuard = (guard) =>
|
|
28
|
+
export const getGuard = (guard) => {
|
|
29
|
+
if (typeof guard === "function") {
|
|
30
|
+
return guard;
|
|
31
|
+
}
|
|
32
|
+
if (typeof guard !== "object" || guard === null || !Object.hasOwn(guard, "asGuard")) {
|
|
33
|
+
throw new TypeError("Expected a Guard function or an object with an own callable asGuard property");
|
|
34
|
+
}
|
|
35
|
+
const asGuard = guard.asGuard;
|
|
36
|
+
if (typeof asGuard !== "function") {
|
|
37
|
+
throw new TypeError("Expected a Guard function or an object with an own callable asGuard property");
|
|
38
|
+
}
|
|
39
|
+
const normalized = asGuard.call(guard);
|
|
40
|
+
if (typeof normalized !== "function") {
|
|
41
|
+
throw new TypeError("Expected asGuard() to return a Guard function");
|
|
42
|
+
}
|
|
43
|
+
return normalized;
|
|
44
|
+
};
|
|
45
|
+
const invokeGuard = (guard, input) => Effect.suspend(() => guard(input));
|
|
46
|
+
const isObjectRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
47
|
+
const assertObjectRecord = (value) => {
|
|
48
|
+
if (!isObjectRecord(value)) {
|
|
49
|
+
throw new TypeError("Expected a guard object output");
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
53
|
+
const copyEnumerableRecord = (source) => {
|
|
54
|
+
const output = {};
|
|
55
|
+
for (const key of Reflect.ownKeys(source)) {
|
|
56
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key))
|
|
57
|
+
continue;
|
|
58
|
+
output[key] = source[key];
|
|
59
|
+
}
|
|
60
|
+
return output;
|
|
61
|
+
};
|
|
62
|
+
const extendEnumerableRecord = (source, key, value) => {
|
|
63
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) {
|
|
64
|
+
throw new TypeError(`Guard output already contains key: ${String(key)}`);
|
|
65
|
+
}
|
|
66
|
+
const output = copyEnumerableRecord(source);
|
|
67
|
+
output[key] = value;
|
|
68
|
+
return output;
|
|
69
|
+
};
|
|
70
|
+
const mergeEnumerableRecords = (base, extension) => {
|
|
71
|
+
const output = copyEnumerableRecord(base);
|
|
72
|
+
for (const key of Reflect.ownKeys(extension)) {
|
|
73
|
+
if (!Object.prototype.propertyIsEnumerable.call(extension, key))
|
|
74
|
+
continue;
|
|
75
|
+
if (Object.prototype.propertyIsEnumerable.call(output, key)) {
|
|
76
|
+
throw new TypeError(`Guard output already contains key: ${String(key)}`);
|
|
77
|
+
}
|
|
78
|
+
output[key] = extension[key];
|
|
79
|
+
}
|
|
80
|
+
return output;
|
|
81
|
+
};
|
|
12
82
|
/**
|
|
83
|
+
* Runs `output` only when `input` matches. `None` short-circuits successfully,
|
|
84
|
+
* while failures and service requirements are preserved from both Guards.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* ## Why
|
|
88
|
+
* Sequential Guard composition must preserve ordinary non-match while unioning the typed error and service channels of both stages.
|
|
89
|
+
*
|
|
90
|
+
* ## Ownership and lifetime
|
|
91
|
+
* Construction acquires no resources; each invocation runs the first Effect and only starts the second after `Some`.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { liftPredicate, pipe } from "@typed/guard"
|
|
96
|
+
* const nonEmpty = pipe(liftPredicate((u: unknown): u is string => typeof u === "string"), liftPredicate((s) => s.length > 0))
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* @category Composition
|
|
13
100
|
* @since 1.0.0
|
|
14
101
|
*/
|
|
15
102
|
export const pipe = dual(2, function flatMap(input, output) {
|
|
16
103
|
const g1 = getGuard(input);
|
|
17
104
|
const g2 = getGuard(output);
|
|
18
|
-
return (i) => Effect.flatMapEager(g1
|
|
105
|
+
return (i) => Effect.flatMapEager(invokeGuard(g1, i), Option.match({
|
|
19
106
|
onNone: () => Effect.succeedNone,
|
|
20
|
-
onSome: g2,
|
|
107
|
+
onSome: (value) => invokeGuard(g2, value),
|
|
21
108
|
}));
|
|
22
109
|
});
|
|
23
110
|
/**
|
|
111
|
+
* Maps matched output with an Effect while preserving `None`.
|
|
112
|
+
* @remarks
|
|
113
|
+
* ## Why
|
|
114
|
+
* Effectful mapping can add typed errors and services without changing non-match into failure.
|
|
115
|
+
* ## Ownership and lifetime
|
|
116
|
+
* Construction acquires no resources; the mapping Effect starts only after the source Guard produces `Some`.
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* import { liftPredicate, mapEffect } from "@typed/guard"
|
|
120
|
+
* import { Effect } from "effect"
|
|
121
|
+
* const length = mapEffect(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => Effect.succeed(s.length))
|
|
122
|
+
* ```
|
|
123
|
+
* @category Composition
|
|
24
124
|
* @since 1.0.0
|
|
25
125
|
*/
|
|
26
126
|
export const mapEffect = dual(2, function mapEffect(guard, f) {
|
|
27
127
|
return pipe(guard, (o) => Effect.asSome(f(o)));
|
|
28
128
|
});
|
|
29
129
|
/**
|
|
130
|
+
* Maps matched output synchronously while preserving non-match and Effect channels.
|
|
131
|
+
* @remarks
|
|
132
|
+
* ## Why
|
|
133
|
+
* Pure output adaptation should not add errors or services and should never run for `None`.
|
|
134
|
+
* ## Ownership and lifetime
|
|
135
|
+
* Construction acquires no resources; the callback runs once for each `Some` during Effect execution.
|
|
136
|
+
* @example
|
|
137
|
+
* ```ts
|
|
138
|
+
* import { liftPredicate, map } from "@typed/guard"
|
|
139
|
+
* const length = map(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => s.length)
|
|
140
|
+
* ```
|
|
141
|
+
* @category Composition
|
|
30
142
|
* @since 1.0.0
|
|
31
143
|
*/
|
|
32
144
|
export const map = dual(2, function map(guard, f) {
|
|
33
145
|
const g = getGuard(guard);
|
|
34
|
-
return (i) => Effect.mapEager(g
|
|
146
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.map(f));
|
|
35
147
|
});
|
|
36
148
|
/**
|
|
149
|
+
* Runs a synchronous or Effectful observation for each matched value and returns the value unchanged.
|
|
150
|
+
* @remarks
|
|
151
|
+
* ## Why
|
|
152
|
+
* Observation composes without changing output, while Effect callbacks correctly contribute their errors and services.
|
|
153
|
+
* ## Ownership and lifetime
|
|
154
|
+
* Construction acquires no resources; callback lifetime is bounded by each matching Guard invocation.
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* import { liftPredicate, tap } from "@typed/guard"
|
|
158
|
+
* const observed = tap(liftPredicate((u: unknown): u is string => typeof u === "string"), console.log)
|
|
159
|
+
* ```
|
|
160
|
+
* @category Composition
|
|
37
161
|
* @since 1.0.0
|
|
38
162
|
*/
|
|
39
163
|
export const tap = dual(2, function tap(guard, f) {
|
|
@@ -45,27 +169,73 @@ export const tap = dual(2, function tap(guard, f) {
|
|
|
45
169
|
});
|
|
46
170
|
});
|
|
47
171
|
/**
|
|
172
|
+
* Refines and maps a matched value with an Option-returning function.
|
|
173
|
+
* @remarks
|
|
174
|
+
* ## Why
|
|
175
|
+
* `Option.none` provides a second ordinary non-match stage without introducing typed failure.
|
|
176
|
+
* ## Ownership and lifetime
|
|
177
|
+
* This combinator acquires no resources; the callback runs only for source matches.
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* import { filterMap, liftPredicate } from "@typed/guard"
|
|
181
|
+
* import { Option } from "effect"
|
|
182
|
+
* const parsed = filterMap(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => s ? Option.some(Number(s)) : Option.none())
|
|
183
|
+
* ```
|
|
184
|
+
* @category Composition
|
|
48
185
|
* @since 1.0.0
|
|
49
186
|
*/
|
|
50
187
|
export const filterMap = dual(2, (guard, f) => {
|
|
51
188
|
const g = getGuard(guard);
|
|
52
|
-
return (i) => Effect.mapEager(g
|
|
189
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.flatMap(f));
|
|
53
190
|
});
|
|
54
191
|
/**
|
|
192
|
+
* Keeps matched values that satisfy a predicate or refinement.
|
|
193
|
+
* @remarks
|
|
194
|
+
* ## Why
|
|
195
|
+
* Predicate failure remains successful `None`, preserving Guard dispatch semantics and type refinement.
|
|
196
|
+
* ## Ownership and lifetime
|
|
197
|
+
* This combinator acquires no resources; the predicate runs only for source matches.
|
|
198
|
+
* @example
|
|
199
|
+
* ```ts
|
|
200
|
+
* import { filter, liftPredicate } from "@typed/guard"
|
|
201
|
+
* const positive = filter(liftPredicate((u: unknown): u is number => typeof u === "number"), (n) => n > 0)
|
|
202
|
+
* ```
|
|
203
|
+
* @category Composition
|
|
55
204
|
* @since 1.0.0
|
|
56
205
|
*/
|
|
57
206
|
export const filter = dual(2, (guard, predicate) => {
|
|
58
207
|
const g = getGuard(guard);
|
|
59
|
-
return (i) => Effect.mapEager(g
|
|
208
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.filter(predicate));
|
|
60
209
|
});
|
|
61
210
|
/**
|
|
211
|
+
* Runs candidates sequentially and returns the first match tagged with its key.
|
|
212
|
+
* Candidates are snapshotted from own enumerable keys when `any` is called.
|
|
213
|
+
* ECMAScript own-key order applies: integer-index strings, other strings, then
|
|
214
|
+
* symbols.
|
|
215
|
+
*
|
|
216
|
+
* @remarks
|
|
217
|
+
* ## Why
|
|
218
|
+
* Ordered first-match dispatch turns independently composable Guards into a deterministic tagged union without treating `None` as failure.
|
|
219
|
+
*
|
|
220
|
+
* ## Ownership and lifetime
|
|
221
|
+
* Construction snapshots own enumerable entries and acquires no resources; each run executes candidates sequentially until the first `Some`.
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```ts
|
|
225
|
+
* import { any, liftPredicate } from "@typed/guard"
|
|
226
|
+
* const classify = any({ text: liftPredicate((u: unknown): u is string => typeof u === "string") })
|
|
227
|
+
* ```
|
|
228
|
+
*
|
|
229
|
+
* @category Dispatch
|
|
62
230
|
* @since 1.0.0
|
|
63
231
|
*/
|
|
64
232
|
export function any(guards) {
|
|
65
|
-
const entries =
|
|
233
|
+
const entries = Reflect.ownKeys(guards)
|
|
234
|
+
.filter((key) => Object.prototype.propertyIsEnumerable.call(guards, key))
|
|
235
|
+
.map((key) => [key, getGuard(guards[key])]);
|
|
66
236
|
return (i) => Effect.gen(function* () {
|
|
67
237
|
for (const [_tag, guard] of entries) {
|
|
68
|
-
const match = yield* guard
|
|
238
|
+
const match = yield* invokeGuard(guard, i);
|
|
69
239
|
if (Option.isSome(match)) {
|
|
70
240
|
return Option.some({ _tag, value: match.value });
|
|
71
241
|
}
|
|
@@ -74,53 +244,162 @@ export function any(guards) {
|
|
|
74
244
|
});
|
|
75
245
|
}
|
|
76
246
|
export function liftPredicate(predicate) {
|
|
77
|
-
return (a) => Effect.
|
|
247
|
+
return (a) => Effect.sync(() => (predicate(a) ? Option.some(a) : Option.none()));
|
|
78
248
|
}
|
|
79
249
|
/**
|
|
250
|
+
* Recovers from the complete Effect Cause and lifts the recovery result into `Some`.
|
|
251
|
+
* @remarks
|
|
252
|
+
* ## Why
|
|
253
|
+
* Cause-aware recovery can deliberately handle typed failures, defects, and interruption; `None` remains an unrecovered non-match.
|
|
254
|
+
* ## Ownership and lifetime
|
|
255
|
+
* Construction acquires no resources; recovery starts only when the source Effect fails and follows that invocation's lifetime.
|
|
256
|
+
* @example
|
|
257
|
+
* ```ts
|
|
258
|
+
* import { catchCause } from "@typed/guard"
|
|
259
|
+
* import type { Guard } from "@typed/guard"
|
|
260
|
+
* import { Effect } from "effect"
|
|
261
|
+
* const source: Guard<string, string, string> = (input) => input ? Effect.succeedSome(input) : Effect.fail("empty")
|
|
262
|
+
* const recovered = catchCause(source, () => Effect.succeed("fallback"))
|
|
263
|
+
* ```
|
|
264
|
+
* @category Error recovery
|
|
80
265
|
* @since 1.0.0
|
|
81
266
|
*/
|
|
82
267
|
export const catchCause = dual(2, function catchCause(guard, f) {
|
|
83
268
|
const g = getGuard(guard);
|
|
84
|
-
return (i) => Effect.catchCause(g
|
|
269
|
+
return (i) => Effect.catchCause(invokeGuard(g, i), (a) => Effect.asSome(f(a)));
|
|
85
270
|
});
|
|
86
271
|
/**
|
|
272
|
+
* Recovers typed failures and lifts the recovery result into `Some`.
|
|
273
|
+
* @remarks
|
|
274
|
+
* ## Why
|
|
275
|
+
* Typed recovery leaves defects and interruption untouched and does not confuse successful `None` with failure. The exported `catch` name is an alias of this declaration.
|
|
276
|
+
* ## Ownership and lifetime
|
|
277
|
+
* Construction acquires no resources; recovery starts only for typed failure during the source invocation.
|
|
278
|
+
* @example
|
|
279
|
+
* ```ts
|
|
280
|
+
* import { catchAll } from "@typed/guard"
|
|
281
|
+
* import type { Guard } from "@typed/guard"
|
|
282
|
+
* import { Effect } from "effect"
|
|
283
|
+
* const source: Guard<string, string, string> = (input) => input ? Effect.succeedSome(input) : Effect.fail("empty")
|
|
284
|
+
* const recovered = catchAll(source, (error) => Effect.succeed(error.length))
|
|
285
|
+
* ```
|
|
286
|
+
* @category Error recovery
|
|
87
287
|
* @since 1.0.0
|
|
88
288
|
*/
|
|
89
289
|
export const catchAll = dual(2, function catchAll(guard, f) {
|
|
90
290
|
const g = getGuard(guard);
|
|
91
|
-
return (i) => Effect.catchEager(g
|
|
291
|
+
return (i) => Effect.catchEager(invokeGuard(g, i), (a) => Effect.asSome(f(a)));
|
|
92
292
|
});
|
|
93
293
|
export { catchAll as catch };
|
|
94
294
|
/**
|
|
295
|
+
* Recovers selected tagged typed failures and leaves unmatched tags in the error channel.
|
|
296
|
+
* @remarks
|
|
297
|
+
* ## Why
|
|
298
|
+
* Tag-specific recovery preserves type-safe residual errors while lifting recovered output into `Some`; `None`, defects, and interruption are unchanged.
|
|
299
|
+
* ## Ownership and lifetime
|
|
300
|
+
* Construction acquires no resources; the handler runs only for matching tagged failures during an invocation.
|
|
301
|
+
* @example
|
|
302
|
+
* ```ts
|
|
303
|
+
* import { catchTag } from "@typed/guard"
|
|
304
|
+
* import type { Guard } from "@typed/guard"
|
|
305
|
+
* import { Effect } from "effect"
|
|
306
|
+
* type NotFound = { readonly _tag: "NotFound" }
|
|
307
|
+
* const source: Guard<string, string, NotFound> = (input) => input ? Effect.succeedSome(input) : Effect.fail({ _tag: "NotFound" })
|
|
308
|
+
* const recovered = catchTag(source, "NotFound", () => Effect.succeed("fallback"))
|
|
309
|
+
* ```
|
|
310
|
+
* @category Error recovery
|
|
95
311
|
* @since 1.0.0
|
|
96
312
|
*/
|
|
97
|
-
export const catchTag = dual(3,
|
|
313
|
+
export const catchTag = dual(3, (guard, tag, f) => {
|
|
98
314
|
const g = getGuard(guard);
|
|
99
|
-
return (i) => Effect.catchTag(g
|
|
315
|
+
return ((i) => Effect.catchTag(invokeGuard(g, i), tag, (e) => Effect.asSome(f(e))));
|
|
100
316
|
});
|
|
101
317
|
/**
|
|
318
|
+
* Provides a Context or Layer to a Guard's Effect.
|
|
319
|
+
* @remarks
|
|
320
|
+
* ## Why
|
|
321
|
+
* Provision removes supplied services from `R`; Layers may also contribute acquisition errors and their own requirements exactly as Effect does.
|
|
322
|
+
* ## Ownership and lifetime
|
|
323
|
+
* A Context acquires no resources here. Layer resources are acquired and released according to the Effect Scope that runs the Guard.
|
|
324
|
+
* @example
|
|
325
|
+
* ```ts
|
|
326
|
+
* import { provide } from "@typed/guard"
|
|
327
|
+
* import type { Guard } from "@typed/guard"
|
|
328
|
+
* import { Context, Effect, Option } from "effect"
|
|
329
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
330
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
331
|
+
* const guard = provide(requiresFlag, Context.make(Flag, { enabled: true }))
|
|
332
|
+
* ```
|
|
333
|
+
* See [Effect services and Layers](https://effect.website/docs/requirements-management/layers/).
|
|
334
|
+
* @category Services
|
|
102
335
|
* @since 1.0.0
|
|
103
336
|
*/
|
|
104
337
|
export const provide = dual(2, function provide(guard, provided) {
|
|
105
338
|
const g = getGuard(guard);
|
|
106
|
-
return (i) => Effect.provide(g
|
|
339
|
+
return (i) => Effect.provide(invokeGuard(g, i), provided);
|
|
107
340
|
});
|
|
108
341
|
/**
|
|
342
|
+
* Provides one concrete service to a Guard.
|
|
343
|
+
* @remarks
|
|
344
|
+
* ## Why
|
|
345
|
+
* Targeted service provision removes only the selected identifier from the Guard environment.
|
|
346
|
+
* ## Ownership and lifetime
|
|
347
|
+
* This combinator acquires no resources and reuses the supplied service for each invocation.
|
|
348
|
+
* @example
|
|
349
|
+
* ```ts
|
|
350
|
+
* import { provideService } from "@typed/guard"
|
|
351
|
+
* import type { Guard } from "@typed/guard"
|
|
352
|
+
* import { Context, Effect, Option } from "effect"
|
|
353
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
354
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
355
|
+
* const guard = provideService(requiresFlag, Flag, { enabled: true })
|
|
356
|
+
* ```
|
|
357
|
+
* @category Services
|
|
109
358
|
* @since 1.0.0
|
|
110
359
|
*/
|
|
111
360
|
export const provideService = dual(3, function provideService(guard, tag, service) {
|
|
112
361
|
const g = getGuard(guard);
|
|
113
|
-
return (i) => Effect.provideService(g
|
|
362
|
+
return (i) => Effect.provideService(invokeGuard(g, i), tag, service);
|
|
114
363
|
});
|
|
115
364
|
/**
|
|
365
|
+
* Provides a service produced by an Effect to a Guard.
|
|
366
|
+
* @remarks
|
|
367
|
+
* ## Why
|
|
368
|
+
* Effectful provision makes acquisition errors and required services explicit in the composed Guard channels.
|
|
369
|
+
* ## Ownership and lifetime
|
|
370
|
+
* The service Effect runs for each Guard invocation and is interrupted with that invocation; scoped resources follow the surrounding Scope.
|
|
371
|
+
* @example
|
|
372
|
+
* ```ts
|
|
373
|
+
* import { provideServiceEffect } from "@typed/guard"
|
|
374
|
+
* import type { Guard } from "@typed/guard"
|
|
375
|
+
* import { Context, Effect, Option } from "effect"
|
|
376
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
377
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
378
|
+
* const guard = provideServiceEffect(requiresFlag, Flag, Effect.succeed({ enabled: true }))
|
|
379
|
+
* ```
|
|
380
|
+
* @category Services
|
|
116
381
|
* @since 1.0.0
|
|
117
382
|
*/
|
|
118
383
|
export const provideServiceEffect = dual(3, function provideServiceEffect(guard, tag, service) {
|
|
119
384
|
const g = getGuard(guard);
|
|
120
|
-
return (i) => Effect.provideServiceEffect(g
|
|
385
|
+
return (i) => Effect.provideServiceEffect(invokeGuard(g, i), tag, service);
|
|
121
386
|
});
|
|
122
387
|
const parseOptions = { errors: "all", onExcessProperty: "ignore" };
|
|
123
388
|
/**
|
|
389
|
+
* Creates a Guard that decodes a schema's Encoded input to its Type.
|
|
390
|
+
* @remarks
|
|
391
|
+
* ## Why
|
|
392
|
+
* Schema decoding reports all issues, ignores excess properties, retains `SchemaError` in the typed channel, and carries decoding services in `R`.
|
|
393
|
+
* ## Ownership and lifetime
|
|
394
|
+
* Construction acquires no resources; schema services and any scoped work follow each returned Effect invocation.
|
|
395
|
+
* @example
|
|
396
|
+
* ```ts
|
|
397
|
+
* import { fromSchemaDecode } from "@typed/guard"
|
|
398
|
+
* import { Schema } from "effect"
|
|
399
|
+
* const number = fromSchemaDecode(Schema.NumberFromString)
|
|
400
|
+
* ```
|
|
401
|
+
* See [Effect Schema transformations](https://effect.website/docs/schema/transformations/).
|
|
402
|
+
* @category Schema
|
|
124
403
|
* @since 1.0.0
|
|
125
404
|
*/
|
|
126
405
|
export function fromSchemaDecode(schema) {
|
|
@@ -128,6 +407,19 @@ export function fromSchemaDecode(schema) {
|
|
|
128
407
|
return (i) => Effect.asSome(decode_(i, parseOptions));
|
|
129
408
|
}
|
|
130
409
|
/**
|
|
410
|
+
* Creates a Guard that encodes a schema's Type to its Encoded representation.
|
|
411
|
+
* @remarks
|
|
412
|
+
* ## Why
|
|
413
|
+
* Schema encoding is the reverse direction of decoding and keeps encoding services and `SchemaError` visible in the Guard type.
|
|
414
|
+
* ## Ownership and lifetime
|
|
415
|
+
* Construction acquires no resources; schema services and any scoped work follow each returned Effect invocation.
|
|
416
|
+
* @example
|
|
417
|
+
* ```ts
|
|
418
|
+
* import { fromSchemaEncode } from "@typed/guard"
|
|
419
|
+
* import { Schema } from "effect"
|
|
420
|
+
* const encoded = fromSchemaEncode(Schema.NumberFromString)
|
|
421
|
+
* ```
|
|
422
|
+
* @category Schema
|
|
131
423
|
* @since 1.0.0
|
|
132
424
|
*/
|
|
133
425
|
export function fromSchemaEncode(schema) {
|
|
@@ -135,42 +427,139 @@ export function fromSchemaEncode(schema) {
|
|
|
135
427
|
return (a) => Effect.asSome(encode_(a, parseOptions));
|
|
136
428
|
}
|
|
137
429
|
/**
|
|
430
|
+
* Decodes each matched encoded value through an Effect Schema.
|
|
431
|
+
* @remarks
|
|
432
|
+
* ## Why
|
|
433
|
+
* The composed Guard preserves source non-match and errors while adding schema failures and decoding service requirements.
|
|
434
|
+
* ## Ownership and lifetime
|
|
435
|
+
* Construction acquires no resources; decoding starts only for `Some` and follows that invocation's lifetime.
|
|
436
|
+
* @example
|
|
437
|
+
* ```ts
|
|
438
|
+
* import { decode, liftPredicate } from "@typed/guard"
|
|
439
|
+
* import { Schema } from "effect"
|
|
440
|
+
* const number = decode(liftPredicate((u: unknown): u is string => typeof u === "string"), Schema.NumberFromString)
|
|
441
|
+
* ```
|
|
442
|
+
* @category Schema
|
|
138
443
|
* @since 1.0.0
|
|
139
444
|
*/
|
|
140
445
|
export const decode = dual(2, function decode(guard, schema) {
|
|
141
446
|
return pipe(guard, fromSchemaDecode(schema));
|
|
142
447
|
});
|
|
143
448
|
/**
|
|
449
|
+
* Encodes each matched schema Type to its Encoded representation.
|
|
450
|
+
* @remarks
|
|
451
|
+
* ## Why
|
|
452
|
+
* The composed Guard preserves source non-match and errors while adding schema failures and encoding service requirements.
|
|
453
|
+
* ## Ownership and lifetime
|
|
454
|
+
* Construction acquires no resources; encoding starts only for `Some` and follows that invocation's lifetime.
|
|
455
|
+
* @example
|
|
456
|
+
* ```ts
|
|
457
|
+
* import { encode, liftPredicate } from "@typed/guard"
|
|
458
|
+
* import { Schema } from "effect"
|
|
459
|
+
* const text = encode(liftPredicate((u: unknown): u is number => typeof u === "number"), Schema.NumberFromString)
|
|
460
|
+
* ```
|
|
461
|
+
* @category Schema
|
|
144
462
|
* @since 1.0.0
|
|
145
463
|
*/
|
|
146
464
|
export const encode = dual(2, function encode(guard, schema) {
|
|
147
465
|
return pipe(guard, fromSchemaEncode(schema));
|
|
148
466
|
});
|
|
149
467
|
/**
|
|
468
|
+
* Adds a fixed property to every matched record output.
|
|
469
|
+
* @remarks
|
|
470
|
+
* ## Why
|
|
471
|
+
* Record construction does not mutate the input and rejects existing enumerable keys; it returns an unfrozen plain object containing own enumerable string and symbol properties while dropping prototypes and non-enumerables.
|
|
472
|
+
* ## Ownership and lifetime
|
|
473
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
474
|
+
* @example
|
|
475
|
+
* ```ts
|
|
476
|
+
* import { bindTo, let as letGuard, liftPredicate } from "@typed/guard"
|
|
477
|
+
* const named = letGuard(bindTo(liftPredicate(Boolean), "value"), "kind", "input")
|
|
478
|
+
* ```
|
|
479
|
+
* @category Record construction
|
|
150
480
|
* @since 1.0.0
|
|
151
481
|
*/
|
|
152
482
|
const let_ = dual(3, function attachProperty(guard, key, value) {
|
|
153
|
-
return map(guard, (a) => (
|
|
483
|
+
return map(guard, (a) => extendEnumerableRecord(assertObjectRecord(a), key, value));
|
|
154
484
|
});
|
|
155
485
|
export {
|
|
156
486
|
/**
|
|
487
|
+
* Adds a fixed property to every matched object output. The key must not
|
|
488
|
+
* already exist; use `bindTo` first when the prior output is not an object.
|
|
489
|
+
*
|
|
490
|
+
* This alias shares the canonical documentation and behavior of `let_`.
|
|
491
|
+
*
|
|
157
492
|
* @since 1.0.0
|
|
158
493
|
*/
|
|
159
494
|
let_ as let, };
|
|
160
495
|
/**
|
|
496
|
+
* Adds a readonly `_tag` to every matched object output. The output must not
|
|
497
|
+
* already have an `_tag` property.
|
|
498
|
+
*
|
|
499
|
+
* @remarks
|
|
500
|
+
* ## Why
|
|
501
|
+
* A typed discriminant turns matched record outputs into exhaustively narrowable tagged values while rejecting key collisions.
|
|
502
|
+
*
|
|
503
|
+
* ## Ownership and lifetime
|
|
504
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
505
|
+
*
|
|
506
|
+
* @example
|
|
507
|
+
* ```ts
|
|
508
|
+
* import { addTag, bindTo, liftPredicate } from "@typed/guard"
|
|
509
|
+
* const tagged = addTag(bindTo(liftPredicate(Boolean), "value"), "Input")
|
|
510
|
+
* ```
|
|
511
|
+
*
|
|
512
|
+
* @category Record construction
|
|
161
513
|
* @since 1.0.0
|
|
162
514
|
*/
|
|
163
515
|
export const addTag = dual(2, function attachProperty(guard, value) {
|
|
164
|
-
return map(guard, (a) => (
|
|
516
|
+
return map(guard, (a) => extendEnumerableRecord(assertObjectRecord(a), "_tag", value));
|
|
165
517
|
});
|
|
166
518
|
/**
|
|
519
|
+
* Wraps any matched output in a new object under `key`. This is the explicit
|
|
520
|
+
* transition from an arbitrary output to the record-building workflow.
|
|
521
|
+
*
|
|
522
|
+
* @remarks
|
|
523
|
+
* ## Why
|
|
524
|
+
* Explicit wrapping makes arbitrary values safe for record combinators without assuming their runtime shape.
|
|
525
|
+
*
|
|
526
|
+
* ## Ownership and lifetime
|
|
527
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
528
|
+
*
|
|
529
|
+
* @example
|
|
530
|
+
* ```ts
|
|
531
|
+
* import { bindTo, liftPredicate } from "@typed/guard"
|
|
532
|
+
* const named = bindTo(liftPredicate(Boolean), "value")
|
|
533
|
+
* ```
|
|
534
|
+
*
|
|
535
|
+
* @category Record construction
|
|
167
536
|
* @since 1.0.0
|
|
168
537
|
*/
|
|
169
538
|
export const bindTo = dual(2, (guard, key) => map(guard, (a) => ({ [key]: a })));
|
|
170
539
|
/**
|
|
540
|
+
* Runs `f` on a matched object and adds its matched value under a new key. The
|
|
541
|
+
* key must not already exist. Enumerable getters and proxy traps may execute
|
|
542
|
+
* during the object spread.
|
|
543
|
+
*
|
|
544
|
+
* @remarks
|
|
545
|
+
* ## Why
|
|
546
|
+
* Dependent record construction runs the second Guard only after the base matches, preserves `None`, and unions both error and service channels.
|
|
547
|
+
*
|
|
548
|
+
* ## Ownership and lifetime
|
|
549
|
+
* Construction acquires no resources; each successful bind creates a fresh plain object and the dependent Effect follows the invocation lifetime.
|
|
550
|
+
*
|
|
551
|
+
* @example
|
|
552
|
+
* ```ts
|
|
553
|
+
* import { bind, bindTo, liftPredicate, map } from "@typed/guard"
|
|
554
|
+
* const base = bindTo(liftPredicate((u: unknown): u is string => typeof u === "string"), "text")
|
|
555
|
+
* const nonEmptyLength = map(liftPredicate((record: { readonly text: string }) => record.text.length > 0), (record) => record.text.length)
|
|
556
|
+
* const sized = bind(base, "length", nonEmptyLength)
|
|
557
|
+
* ```
|
|
558
|
+
*
|
|
559
|
+
* @category Record construction
|
|
171
560
|
* @since 1.0.0
|
|
172
561
|
*/
|
|
173
562
|
export const bind = dual(3, function bind(guard, key, f) {
|
|
174
563
|
const f_ = bindTo(f, key);
|
|
175
|
-
return pipe(guard, (o) => Effect.mapEager(f_
|
|
564
|
+
return pipe(guard, (o) => Effect.mapEager(invokeGuard(f_, o), Option.map((b) => mergeEnumerableRecords(assertObjectRecord(o), b))));
|
|
176
565
|
});
|