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 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)` where `parsedValue` is schema output.
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
- - Handler input type is inferred from schema output type.
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: (value: InferOutput<schema>, input: input) => result): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schema>>;
22
- case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown, handler: (value: InferOutput<schema>, input: input) => result): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schema>>;
23
- case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result]): ReusableMatcher<input, WithReturn<Unset, result>, InferInput<schemas[number]>>;
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: (value: InferOutput<schema>, input: input) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schema>>;
30
- case<input, schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown | Promise<unknown>, handler: (value: InferOutput<schema>, input: input) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schema>>;
31
- case<input, schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): ReusableMatcherAsync<input, WithAsyncReturn<Unset, result>, InferInput<schemas[number]>>;
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: (value: InferOutput<schema>, input: input) => result): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
42
- case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown, handler: (value: InferOutput<schema>, input: input) => result): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
43
- case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result]): MatchExpression<input, WithReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
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: (value: InferOutput<schema>, input: input) => result | Promise<result>): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
79
- case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown | Promise<unknown>, handler: (value: InferOutput<schema>, input: input) => result | Promise<result>): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
80
- case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): MatchExpressionAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
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: (value: InferOutput<schema>, input: input) => result): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
132
- case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown, handler: (value: InferOutput<schema>, input: input) => result): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schema>>;
133
- case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result]): ReusableMatcher<input, WithReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
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: (value: InferOutput<schema>, input: input) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
188
- case<schema extends StandardSchemaV1, result>(schema: schema, predicate: (value: InferOutput<schema>, input: input) => unknown | Promise<unknown>, handler: (value: InferOutput<schema>, input: input) => result | Promise<result>): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schema>>;
189
- case<schemas extends readonly [StandardSchemaV1, ...StandardSchemaV1[]], result>(...args: [...schemas, (value: InferOutput<schemas[number]>, input: input) => result | Promise<result>]): ReusableMatcherAsync<input, WithAsyncReturn<output, result>, CaseInputs | InferInput<schemas[number]>>;
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.1",
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
+ }