schematch 0.0.1 → 0.1.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/README.md +55 -2
- package/dist/match.d.ts +71 -18
- package/dist/match.js +70 -0
- package/dist/match.js.map +1 -1
- package/package.json +8 -10
package/README.md
CHANGED
|
@@ -464,7 +464,7 @@ Sync matcher builder:
|
|
|
464
464
|
- `.default('never')` — throw if nothing matched; type error if input doesn't extend case union
|
|
465
465
|
- `.default('reject')` — return `NonExhaustiveError` instead of throwing
|
|
466
466
|
|
|
467
|
-
`handler` receives `(parsedValue, input)
|
|
467
|
+
`handler` receives `(parsedValue, input)`. For transforming schemas, `parsedValue` is transformed output; for non-transforming schemas, fast paths may pass through the input value.
|
|
468
468
|
|
|
469
469
|
### `match.case(...)` — reusable matchers
|
|
470
470
|
|
|
@@ -472,10 +472,62 @@ Static builder entrypoints that return reusable functions:
|
|
|
472
472
|
|
|
473
473
|
- `match.input<T>()` — constrain the input type for a reusable matcher
|
|
474
474
|
- `match.output<T>()` — constrain the output type for a reusable matcher
|
|
475
|
+
- `.at(key)` — switch to discriminator-value cases (`.case(value, handler)`)
|
|
475
476
|
- `match.case(...).case(...).default(...)` — build a reusable matcher function
|
|
476
477
|
|
|
477
478
|
Reusable matchers are also valid Standard Schema V1 implementations. Before `.default()` is called, they expose a `'~standard'` property with `validate`, allowing them to be used as schemas in other matchers or any standard-schema consumer.
|
|
478
479
|
|
|
480
|
+
### Narrowing unions
|
|
481
|
+
|
|
482
|
+
For trusted union-typed values, there are two ways to narrow to a member inside reusable matchers.
|
|
483
|
+
|
|
484
|
+
- If your union has a discriminator key (`type`, `kind`, etc.), use `.at(key)`.
|
|
485
|
+
- If it does not, use the second handler arg `input` - the input type, narrowed to the input of the schema specified using `.case`.
|
|
486
|
+
|
|
487
|
+
For untrusted/external data, prefer full schema `.case(...)` validation over discriminator-only checks.
|
|
488
|
+
|
|
489
|
+
#### Option 1: `.at(key)` for discriminated unions
|
|
490
|
+
|
|
491
|
+
```typescript
|
|
492
|
+
type OpencodeEvent =
|
|
493
|
+
| {type: 'session.status'; sessionId: string}
|
|
494
|
+
| {type: 'message.updated'; properties: {sessionId: string}}
|
|
495
|
+
|
|
496
|
+
const getSessionId = match
|
|
497
|
+
.input<OpencodeEvent>()
|
|
498
|
+
.at('type')
|
|
499
|
+
.case('session.status', value => value.sessionId)
|
|
500
|
+
.case('message.updated', value => value.properties.sessionId)
|
|
501
|
+
.default('assert')
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
`at().case()` checks `input[key] === value` and narrows the handler type. It does not run full branch schema validation.
|
|
505
|
+
|
|
506
|
+
#### Option 2: `input` as second handler arg for non-discriminated unions
|
|
507
|
+
|
|
508
|
+
When you use `.case`, you are specify a way of parsing data, so the first argument *only* contains data which has been successfully parsed. So it can't be used to narrow a union type to include additional properties (because they *haven't* been parsed).
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
type Lead =
|
|
512
|
+
| {email: string; campaignId: string; submittedAtIso: string}
|
|
513
|
+
| {phone: string; country: string; submittedAtIso: string}
|
|
514
|
+
|
|
515
|
+
const routeLead = match
|
|
516
|
+
.input<Lead>()
|
|
517
|
+
.case(z.object({email: z.string().email()}), parsed => parsed.campaignId) // tsc error: Property 'campaignId' does not exist on type '{ email: string }'
|
|
518
|
+
.default(() => 'fallback')
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
But if you're working with trusted input, you may be fine with unvalidated properties. In those cases, you can explicitly ignore the parsed input and use the second argument passed to the handler function:
|
|
522
|
+
|
|
523
|
+
```typescript
|
|
524
|
+
const routeLead = match
|
|
525
|
+
.input<Lead>()
|
|
526
|
+
.case(z.object({email: z.string().email()}), (_parsed, input) => `email:${input.campaignId}`)
|
|
527
|
+
.case(z.object({phone: z.string()}), (_parsed, input) => `sms:${input.country}`)
|
|
528
|
+
.default('assert')
|
|
529
|
+
```
|
|
530
|
+
|
|
479
531
|
### `matchAsync(value)` / `matchAsync.case(...)`
|
|
480
532
|
|
|
481
533
|
Async equivalents for async schemas, guards, and handlers. Same API as sync variants, but `.default()` returns `Promise<...>` (inline) or `(input) => Promise<...>` (reusable).
|
|
@@ -492,7 +544,8 @@ Implements `StandardSchemaV1.FailureResult` — the `.issues` array contains per
|
|
|
492
544
|
|
|
493
545
|
## Type inference
|
|
494
546
|
|
|
495
|
-
-
|
|
547
|
+
- First handler arg (`parsed`) is inferred from schema output type.
|
|
548
|
+
- Second handler arg (`input`) is for input-oriented logic and narrows in common non-transforming union cases.
|
|
496
549
|
- Return types are unioned across branches.
|
|
497
550
|
- `.default('never')` constrains the reusable matcher's input to the union of case schema input types.
|
|
498
551
|
- `StandardSchemaV1.InferInput<typeof matcher>` gives the case input union; `StandardSchemaV1.InferOutput<typeof matcher>` gives the handler return union.
|
package/dist/match.d.ts
CHANGED
|
@@ -3,6 +3,31 @@ import type { InferInput, InferOutput } from './types.js';
|
|
|
3
3
|
import { NonExhaustiveError } from './errors.js';
|
|
4
4
|
/** Resolves `Unset` to `never` for use in StandardSchema types. */
|
|
5
5
|
type ResolveOutput<T> = T extends typeof unset ? never : T;
|
|
6
|
+
/**
|
|
7
|
+
* Checks if two types are strictly equal using the TypeScript internal identical-to operator.
|
|
8
|
+
* @see https://github.com/microsoft/TypeScript/issues/55188#issuecomment-1656328122
|
|
9
|
+
*/
|
|
10
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
11
|
+
type StrictEqual<L, R> = (<T>() => T extends (L & T) | T ? true : false) extends <T>() => T extends (R & T) | T ? true : false ? IsNever<L> extends IsNever<R> ? true : false : false;
|
|
12
|
+
/** Detects whether `T` is a union type (e.g. `A | B`) vs a single type. */
|
|
13
|
+
type IsUnion<T, U = T> = T extends unknown ? ([U] extends [T] ? false : true) : false;
|
|
14
|
+
/**
|
|
15
|
+
* When a schema is a "pure validator" (input type === output type, i.e. no transformation)
|
|
16
|
+
* and the input is a union type, use `Extract<input, output>` to narrow the input type and
|
|
17
|
+
* preserve extra properties that weren't specified in the schema.
|
|
18
|
+
*
|
|
19
|
+
* This enables discriminated union narrowing: matching `OpencodeEvent` against
|
|
20
|
+
* `z.object({type: z.literal('session.status')})` gives the handler the full
|
|
21
|
+
* `{type: 'session.status', sessionId: string}` member, not just `{type: 'session.status'}`.
|
|
22
|
+
*
|
|
23
|
+
* Falls back to `InferOutput<schema>` when:
|
|
24
|
+
* - The schema transforms (input !== output), or
|
|
25
|
+
* - The input is not a union (no narrowing benefit), or
|
|
26
|
+
* - `Extract` produces `never` (schema output doesn't overlap with input)
|
|
27
|
+
*/
|
|
28
|
+
type NarrowedOutput<input, schema extends StandardSchemaV1> = StrictEqual<InferInput<schema>, InferOutput<schema>> extends true ? IsUnion<input> extends true ? [Extract<input, InferOutput<schema>>] extends [never] ? InferOutput<schema> : Extract<input, InferOutput<schema>> : InferOutput<schema> : InferOutput<schema>;
|
|
29
|
+
type AtCaseValues<input, key extends PropertyKey> = input extends unknown ? key extends keyof input ? input[key] : never : never;
|
|
30
|
+
type AtCaseInput<input, key extends PropertyKey, value> = Extract<input, Record<key, value>>;
|
|
6
31
|
type MatchState<output> = {
|
|
7
32
|
matched: true;
|
|
8
33
|
value: output;
|
|
@@ -18,17 +43,17 @@ type MatchFactory = {
|
|
|
18
43
|
<const input, output = Unset>(value: input): MatchExpression<input, output>;
|
|
19
44
|
input<input>(): ReusableMatcher<input, Unset>;
|
|
20
45
|
output<output>(): ReusableMatcher<unknown, output>;
|
|
21
|
-
case<input, schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
22
|
-
case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
23
|
-
case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
46
|
+
case<input, schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schema>>;
|
|
47
|
+
case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schema>>;
|
|
48
|
+
case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result]): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schemas[number]>>;
|
|
24
49
|
};
|
|
25
50
|
type MatchAsyncFactory = {
|
|
26
51
|
<const input, output = Unset>(value: input): MatchExpressionAsync<input, output>;
|
|
27
52
|
input<input>(): ReusableMatcherAsync<input, Unset>;
|
|
28
53
|
output<output>(): ReusableMatcherAsync<unknown, output>;
|
|
29
|
-
case<input, schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
30
|
-
case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
31
|
-
case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
54
|
+
case<input, schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schema>>;
|
|
55
|
+
case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown | Promise<unknown>, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schema>>;
|
|
56
|
+
case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schemas[number]>>;
|
|
32
57
|
};
|
|
33
58
|
export declare const match: MatchFactory;
|
|
34
59
|
export declare const matchAsync: MatchAsyncFactory;
|
|
@@ -38,9 +63,9 @@ declare class MatchExpression<input, output, CaseInputs = never> {
|
|
|
38
63
|
private value;
|
|
39
64
|
private schemas;
|
|
40
65
|
constructor(input: input, matched: boolean, value: output | undefined);
|
|
41
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
42
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
43
|
-
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
66
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
67
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
68
|
+
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result]): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
|
|
44
69
|
when<result>(predicate: (value: input) => unknown, handler: (value: input, input: input) => result): MatchExpression<input, WithReturn<output, result>, CaseInputs>;
|
|
45
70
|
/**
|
|
46
71
|
* Terminates the match expression with a default behavior when no case matches.
|
|
@@ -75,9 +100,9 @@ declare class MatchExpressionAsync<input, output, CaseInputs = never> {
|
|
|
75
100
|
private state;
|
|
76
101
|
private schemas;
|
|
77
102
|
constructor(input: input, state: Promise<MatchState<output>>, schemas?: StandardSchemaV1[]);
|
|
78
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
79
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
80
|
-
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
103
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
104
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown | Promise<unknown>, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
105
|
+
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
|
|
81
106
|
when<result>(predicate: (value: input) => unknown | Promise<unknown>, handler: (value: input, input: input) => result | Promise<result>): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs>;
|
|
82
107
|
/**
|
|
83
108
|
* Terminates the async match expression with a default behavior when no case matches.
|
|
@@ -128,11 +153,12 @@ declare class ReusableMatcher<input, output, CaseInputs = never> {
|
|
|
128
153
|
readonly '~standard': StandardSchemaV1.Props<CaseInputs, ResolveOutput<output>>;
|
|
129
154
|
constructor(terminal: MatchState<output>, clauses?: Array<ReusableClause<input> | ReusableWhenClause<input>>);
|
|
130
155
|
private getDispatch;
|
|
131
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
132
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
133
|
-
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
156
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
157
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
158
|
+
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result]): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
|
|
134
159
|
when<result>(predicate: (value: input) => unknown, handler: (value: input, input: input) => result): ReusableMatcher<input, WithReturn<output, result>, CaseInputs>;
|
|
135
160
|
output<O>(): ReusableMatcher<input, O, CaseInputs>;
|
|
161
|
+
at<key extends PropertyKey>(key: key): ReusableMatcherAt<input, output, CaseInputs, key>;
|
|
136
162
|
/**
|
|
137
163
|
* Terminates the reusable matcher and returns a function that executes the match.
|
|
138
164
|
*
|
|
@@ -162,6 +188,19 @@ declare class ReusableMatcher<input, output, CaseInputs = never> {
|
|
|
162
188
|
private execClause;
|
|
163
189
|
private exec;
|
|
164
190
|
}
|
|
191
|
+
declare class ReusableMatcherAt<input, output, CaseInputs = never, key extends PropertyKey = PropertyKey> {
|
|
192
|
+
private readonly matcher;
|
|
193
|
+
private readonly key;
|
|
194
|
+
readonly '~standard': StandardSchemaV1.Props<CaseInputs, ResolveOutput<output>>;
|
|
195
|
+
constructor(matcher: ReusableMatcher<input, output, CaseInputs>, key: key);
|
|
196
|
+
case<value extends AtCaseValues<input, key>, result>(value: value, handler: (value: AtCaseInput<input, key, value>) => result): ReusableMatcherAt<input, WithReturn<output, result>, CaseInputs | AtCaseInput<input, key, value>, key>;
|
|
197
|
+
when<result>(predicate: (value: input) => unknown, handler: (value: input, input: input) => result): ReusableMatcherAt<input, WithReturn<output, result>, CaseInputs, key>;
|
|
198
|
+
output<O>(): ReusableMatcherAt<input, O, CaseInputs, key>;
|
|
199
|
+
default(mode: 'assert'): (input: input) => output;
|
|
200
|
+
default(mode: 'never'): (input: CaseInputs) => output;
|
|
201
|
+
default(mode: 'reject'): (input: input) => output | NonExhaustiveError;
|
|
202
|
+
default<result>(handler: (value: input) => result): (input: input) => WithReturn<output, result>;
|
|
203
|
+
}
|
|
165
204
|
type ReusableClauseAsync<input> = {
|
|
166
205
|
schemas: StandardSchemaV1[];
|
|
167
206
|
predicate?: (value: unknown, input: input) => unknown | Promise<unknown>;
|
|
@@ -184,11 +223,12 @@ declare class ReusableMatcherAsync<input, output, CaseInputs = never> {
|
|
|
184
223
|
readonly '~standard': StandardSchemaV1.Props<CaseInputs, ResolveOutput<output>>;
|
|
185
224
|
constructor(terminal: Promise<MatchState<output>>, clauses?: Array<ReusableClauseAsync<input> | ReusableWhenClauseAsync<input>>);
|
|
186
225
|
private getDispatch;
|
|
187
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (
|
|
188
|
-
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (
|
|
189
|
-
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (
|
|
226
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
227
|
+
case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => unknown | Promise<unknown>, handler: (parsed: InferOutput<schema>, input: NarrowedOutput<input, schema>) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
|
|
228
|
+
case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (parsed: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
|
|
190
229
|
when<result>(predicate: (value: input) => unknown | Promise<unknown>, handler: (value: input, input: input) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs>;
|
|
191
230
|
output<O>(): ReusableMatcherAsync<input, O, CaseInputs>;
|
|
231
|
+
at<key extends PropertyKey>(key: key): ReusableMatcherAsyncAt<input, output, CaseInputs, key>;
|
|
192
232
|
/**
|
|
193
233
|
* Terminates the async reusable matcher and returns a function that executes the match.
|
|
194
234
|
*
|
|
@@ -218,4 +258,17 @@ declare class ReusableMatcherAsync<input, output, CaseInputs = never> {
|
|
|
218
258
|
private execClause;
|
|
219
259
|
private exec;
|
|
220
260
|
}
|
|
261
|
+
declare class ReusableMatcherAsyncAt<input, output, CaseInputs = never, key extends PropertyKey = PropertyKey> {
|
|
262
|
+
private readonly matcher;
|
|
263
|
+
private readonly key;
|
|
264
|
+
readonly '~standard': StandardSchemaV1.Props<CaseInputs, ResolveOutput<output>>;
|
|
265
|
+
constructor(matcher: ReusableMatcherAsync<input, output, CaseInputs>, key: key);
|
|
266
|
+
case<value extends AtCaseValues<input, key>, result>(value: value, handler: (value: AtCaseInput<input, key, value>) => result | Promise<result>): ReusableMatcherAsyncAt<input, WithAsyncReturn<output, result>, CaseInputs | AtCaseInput<input, key, value>, key>;
|
|
267
|
+
when<result>(predicate: (value: input) => unknown | Promise<unknown>, handler: (value: input, input: input) => result | Promise<result>): ReusableMatcherAsyncAt<input, WithAsyncReturn<output, result>, CaseInputs, key>;
|
|
268
|
+
output<O>(): ReusableMatcherAsyncAt<input, O, CaseInputs, key>;
|
|
269
|
+
default(mode: 'assert'): (input: input) => Promise<output>;
|
|
270
|
+
default(mode: 'never'): (input: CaseInputs) => Promise<output>;
|
|
271
|
+
default(mode: 'reject'): (input: input) => Promise<output | NonExhaustiveError>;
|
|
272
|
+
default<result>(handler: (value: input) => result | Promise<result>): (input: input) => Promise<WithAsyncReturn<output, result>>;
|
|
273
|
+
}
|
|
221
274
|
export {};
|
package/dist/match.js
CHANGED
|
@@ -276,6 +276,28 @@ function buildDispatchTable(clauses) {
|
|
|
276
276
|
}
|
|
277
277
|
return { key: commonKey, table, fallback: fallbackIndices, fallbackSet: new Set(fallbackIndices), expectedValues };
|
|
278
278
|
}
|
|
279
|
+
function atCaseSchema(key, expected) {
|
|
280
|
+
return {
|
|
281
|
+
'~standard': {
|
|
282
|
+
version: 1,
|
|
283
|
+
vendor: 'schematch',
|
|
284
|
+
validate: (candidate) => {
|
|
285
|
+
if (!isPlainObject(candidate)) {
|
|
286
|
+
return {
|
|
287
|
+
issues: [{ message: `Expected object with ${String(key)} = ${String(expected)}` }],
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
const actual = candidate[key];
|
|
291
|
+
if (!Object.is(actual, expected)) {
|
|
292
|
+
return {
|
|
293
|
+
issues: [{ message: `Expected ${String(key)} = ${String(expected)}` }],
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
return { value: candidate };
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
}
|
|
279
301
|
class ReusableMatcher {
|
|
280
302
|
constructor(terminal, clauses = []) {
|
|
281
303
|
this.terminal = terminal;
|
|
@@ -315,6 +337,9 @@ class ReusableMatcher {
|
|
|
315
337
|
output() {
|
|
316
338
|
return this;
|
|
317
339
|
}
|
|
340
|
+
at(key) {
|
|
341
|
+
return new ReusableMatcherAt(this, key);
|
|
342
|
+
}
|
|
318
343
|
default(modeOrHandler) {
|
|
319
344
|
const allSchemas = this.clauses.flatMap(c => 'schemas' in c ? c.schemas : []);
|
|
320
345
|
if (typeof modeOrHandler === 'function') {
|
|
@@ -454,6 +479,27 @@ class ReusableMatcher {
|
|
|
454
479
|
return this.terminal;
|
|
455
480
|
}
|
|
456
481
|
}
|
|
482
|
+
class ReusableMatcherAt {
|
|
483
|
+
constructor(matcher, key) {
|
|
484
|
+
this.matcher = matcher;
|
|
485
|
+
this.key = key;
|
|
486
|
+
this['~standard'] = matcher['~standard'];
|
|
487
|
+
}
|
|
488
|
+
case(value, handler) {
|
|
489
|
+
const schema = atCaseSchema(this.key, value);
|
|
490
|
+
const next = this.matcher.case(schema, (_parsed, narrowed) => handler(narrowed));
|
|
491
|
+
return new ReusableMatcherAt(next, this.key);
|
|
492
|
+
}
|
|
493
|
+
when(predicate, handler) {
|
|
494
|
+
return new ReusableMatcherAt(this.matcher.when(predicate, handler), this.key);
|
|
495
|
+
}
|
|
496
|
+
output() {
|
|
497
|
+
return new ReusableMatcherAt(this.matcher.output(), this.key);
|
|
498
|
+
}
|
|
499
|
+
default(modeOrHandler) {
|
|
500
|
+
return this.matcher.default(modeOrHandler);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
457
503
|
class ReusableMatcherAsync {
|
|
458
504
|
constructor(terminal, clauses = []) {
|
|
459
505
|
this.terminal = terminal;
|
|
@@ -492,6 +538,9 @@ class ReusableMatcherAsync {
|
|
|
492
538
|
output() {
|
|
493
539
|
return this;
|
|
494
540
|
}
|
|
541
|
+
at(key) {
|
|
542
|
+
return new ReusableMatcherAsyncAt(this, key);
|
|
543
|
+
}
|
|
495
544
|
default(modeOrHandler) {
|
|
496
545
|
const allSchemas = this.clauses.flatMap(c => 'schemas' in c ? c.schemas : []);
|
|
497
546
|
if (typeof modeOrHandler === 'function') {
|
|
@@ -613,4 +662,25 @@ class ReusableMatcherAsync {
|
|
|
613
662
|
return await this.terminal;
|
|
614
663
|
}
|
|
615
664
|
}
|
|
665
|
+
class ReusableMatcherAsyncAt {
|
|
666
|
+
constructor(matcher, key) {
|
|
667
|
+
this.matcher = matcher;
|
|
668
|
+
this.key = key;
|
|
669
|
+
this['~standard'] = matcher['~standard'];
|
|
670
|
+
}
|
|
671
|
+
case(value, handler) {
|
|
672
|
+
const schema = atCaseSchema(this.key, value);
|
|
673
|
+
const next = this.matcher.case(schema, (_parsed, narrowed) => handler(narrowed));
|
|
674
|
+
return new ReusableMatcherAsyncAt(next, this.key);
|
|
675
|
+
}
|
|
676
|
+
when(predicate, handler) {
|
|
677
|
+
return new ReusableMatcherAsyncAt(this.matcher.when(predicate, handler), this.key);
|
|
678
|
+
}
|
|
679
|
+
output() {
|
|
680
|
+
return new ReusableMatcherAsyncAt(this.matcher.output(), this.key);
|
|
681
|
+
}
|
|
682
|
+
default(modeOrHandler) {
|
|
683
|
+
return this.matcher.default(modeOrHandler);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
616
686
|
//# sourceMappingURL=match.js.map
|
package/dist/match.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "schematch",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Schema-first pattern matching for TypeScript — use zod, valibot, arktype, or any Standard Schema validator as match/case clauses",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -13,13 +13,6 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"sideEffects": false,
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
18
|
-
"prepare": "pnpm build",
|
|
19
|
-
"attw": "attw --pack . --ignore-rules cjs-resolves-to-esm no-resolution",
|
|
20
|
-
"test": "vitest run --typecheck",
|
|
21
|
-
"test:watch": "vitest --typecheck"
|
|
22
|
-
},
|
|
23
16
|
"keywords": [
|
|
24
17
|
"pattern-matching",
|
|
25
18
|
"match",
|
|
@@ -44,7 +37,6 @@
|
|
|
44
37
|
"bugs": {
|
|
45
38
|
"url": "https://github.com/mmkal/schematch/issues"
|
|
46
39
|
},
|
|
47
|
-
"packageManager": "pnpm@10.28.1",
|
|
48
40
|
"devDependencies": {
|
|
49
41
|
"@arethetypeswrong/cli": "0.18.2",
|
|
50
42
|
"@types/node": "25.2.2",
|
|
@@ -55,5 +47,11 @@
|
|
|
55
47
|
"valibot": "1.2.0",
|
|
56
48
|
"vitest": "4.0.18",
|
|
57
49
|
"zod": "4.3.6"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
53
|
+
"attw": "attw --pack . --ignore-rules cjs-resolves-to-esm no-resolution",
|
|
54
|
+
"test": "vitest run --typecheck",
|
|
55
|
+
"test:watch": "vitest --typecheck"
|
|
58
56
|
}
|
|
59
|
-
}
|
|
57
|
+
}
|