Skip to content

Commit cf81396

Browse files
authored
Version 1.1.36 (#1592)
* Optimize MaxItems Inference * ChangeLog * Version
1 parent d54f756 commit cf81396

4 files changed

Lines changed: 11 additions & 5 deletions

File tree

changelog/1.1.0.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
---
44

55
### Version Updates
6+
- [Revision 1.1.36](https://github.com/sinclairzx81/typebox/pull/1592)
7+
- Ensure no Type Distribution when Mapping for Min/Max Tuple Elements (JSON Schema)
68
- [Revision 1.1.35](https://github.com/sinclairzx81/typebox/pull/1591)
79
- AdditionalItems Inference Optimization (JSON Schema)
810
- [Revision 1.1.34](https://github.com/sinclairzx81/typebox/pull/1588)

src/schema/static/_elements.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ type XWithMaxItemsRemap<Elements extends unknown[], MaxItems extends number, Res
5454
: Result
5555
)
5656
type XWithMaxItems<Schema extends XSchema, Elements extends unknown[],
57-
MaxItems extends number | null = Schema extends XMaxItems<infer MaxItems extends number> ? MaxItems : null,
58-
Result extends unknown[] = MaxItems extends number ? XWithMaxItemsRemap<Elements, MaxItems> : Elements
57+
Result extends unknown[] = Schema extends XMaxItems<infer MaxItems extends number>
58+
? XWithMaxItemsRemap<Elements, MaxItems>
59+
: Elements
5960
> = Result
6061
// ------------------------------------------------------------------
6162
// 3. XNeedsAdditionalItems - Does MaxItems constrain all Elements?

src/schema/static/required.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import type { XProperties } from '../types/properties.ts'
3535
// ------------------------------------------------------------------
3636
// XStaticRequired
3737
// ------------------------------------------------------------------
38-
export type XStaticRequired<Stack extends string[], Root extends XSchema, Schema extends XSchema, Keys extends string[],
39-
// note: We only produce an property set if 'required' is present without 'properties'
38+
export type XStaticRequired<_Stack extends string[], _Root extends XSchema, Schema extends XSchema, Keys extends string[],
39+
// If the 'properties' keyword is present, we return {} and trust the 'Properties' inference
40+
// path to resolve the 'required' keyword. If 'properties' is absent, we generate an object
41+
// where each key is assigned an 'unknown' type, as 'required' without 'properties'
42+
// still implies that the keys should exist on the object.
4043
Result extends Record<PropertyKey, unknown> = Schema extends XProperties ? {} : Record<Keys[number], unknown>
4144
> = Result

tasks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Metrics } from './task/metrics/index.ts'
99
import { Spec } from './task/spec/index.ts'
1010
import { Task } from 'tasksmith'
1111

12-
const Version = '1.1.35'
12+
const Version = '1.1.36'
1313

1414
// ------------------------------------------------------------------
1515
// Build

0 commit comments

Comments
 (0)