Skip to content

Commit 0f0fe60

Browse files
authored
Version 1.0.49 (#1436)
* Readonly Parser Runtime Mapping | Tests * ChangeLog * Version
1 parent fb6a848 commit 0f0fe60

4 files changed

Lines changed: 37 additions & 1 deletion

File tree

changelog/1.0.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.0.49](https://github.com/sinclairzx81/typebox/pull/1436)
7+
- Readonly Parser Runtime Mapping
68
- [Revision 1.0.48](https://github.com/sinclairzx81/typebox/pull/1435)
79
- Resolve Socket.Dev False Positive | Function Signature Parser
810
- [Revision 1.0.47](https://github.com/sinclairzx81/typebox/pull/1434)

src/type/script/mapping.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ function IntrinsicOrCall<Ref extends string, Parameters extends T.TSchema[]>(ref
9090
Guard.IsEqual(ref, 'Parameters') ? C.ParametersDeferred(parameters[0]) :
9191
Guard.IsEqual(ref, 'Partial') ? C.PartialDeferred(parameters[0]) :
9292
Guard.IsEqual(ref, 'Pick') ? C.PickDeferred(parameters[0], parameters[1]) :
93+
Guard.IsEqual(ref, 'Readonly') ? C.ReadonlyTypeDeferred(parameters[0]) :
9394
Guard.IsEqual(ref, 'KeyOf') ? C.KeyOfDeferred(parameters[0]) :
9495
Guard.IsEqual(ref, 'Record') ? T.RecordDeferred(parameters[0], parameters[1]) :
9596
Guard.IsEqual(ref, 'Required') ? C.RequiredDeferred(parameters[0]) :

tasks.ts

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

11-
const Version = '1.0.48'
11+
const Version = '1.0.49'
1212

1313
// ------------------------------------------------------------------
1414
// Build
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { Assert } from 'test'
2+
import * as Type from 'typebox'
3+
4+
const Test = Assert.Context('Type.Script.ReadonlyType')
5+
6+
Test('Should ReadonlyType 1', () => {
7+
const T: Type.TImmutable<Type.TArray<Type.TNumber>> = Type.Script('Readonly<number[]>')
8+
Assert.IsTrue(Type.IsImmutable(T))
9+
Assert.IsTrue(Type.IsArray(T))
10+
})
11+
Test('Should ReadonlyType 2', () => {
12+
const T: Type.TImmutable<Type.TTuple<[Type.TNumber, Type.TString]>> = Type.Script('Readonly<[number, string]>')
13+
Assert.IsTrue(Type.IsImmutable(T))
14+
Assert.IsTrue(Type.IsTuple(T))
15+
})
16+
Test('Should ReadonlyType 3', () => {
17+
const T: Type.TObject<{
18+
x: Type.TReadonly<Type.TNumber>
19+
y: Type.TReadonly<Type.TString>
20+
}> = Type.Script('Readonly<{ x: number, y: string }>')
21+
Assert.IsFalse(Type.IsImmutable(T))
22+
Assert.IsTrue(Type.IsObject(T))
23+
Assert.IsTrue(Type.IsNumber(T.properties.x))
24+
Assert.IsTrue(Type.IsString(T.properties.y))
25+
Assert.IsTrue(Type.IsReadonly(T.properties.x))
26+
Assert.IsTrue(Type.IsReadonly(T.properties.y))
27+
})
28+
Test('Should ReadonlyType 4', () => {
29+
const T: Type.TNumber = Type.Script('Readonly<number>')
30+
Assert.IsFalse(Type.IsImmutable(T))
31+
Assert.IsFalse(Type.IsReadonly(T))
32+
Assert.IsTrue(Type.IsNumber(T))
33+
})

0 commit comments

Comments
 (0)