Skip to content

Commit 46fa668

Browse files
committed
Updates
1 parent 9057a73 commit 46fa668

2 files changed

Lines changed: 93 additions & 34 deletions

File tree

example/index.ts

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,65 @@ import Schema from 'typebox/schema'
66
import Value from 'typebox/value'
77
import Type from 'typebox'
88

9-
const X = Schema.Compile(Type.String())
9+
// ------------------------------------------------------------------
10+
// Settings
11+
// ------------------------------------------------------------------
1012

11-
console.log(X)
13+
System.Settings.Set({ enumerableKind: false })
14+
15+
// ------------------------------------------------------------------
16+
// Guard
17+
// ------------------------------------------------------------------
18+
19+
const A = Guard.GraphemeCount('type-📦') // 6
20+
const B = Guard.HasPropertyKey({ x: 1 }, 'x') // true
21+
22+
// ------------------------------------------------------------------
23+
// Type
24+
// ------------------------------------------------------------------
25+
26+
const T = Type.Object({
27+
x: Type.Number(),
28+
y: Type.Number(),
29+
z: Type.Number()
30+
})
31+
32+
// ------------------------------------------------------------------
33+
// Script
34+
// ------------------------------------------------------------------
35+
36+
const S = Type.Script({ T }, `{
37+
[K in keyof T]: T[K] | null
38+
}`)
39+
40+
// ------------------------------------------------------------------
41+
// Infer
42+
// ------------------------------------------------------------------
43+
44+
type T = Type.Static<typeof T>
45+
type S = Type.Static<typeof S>
46+
47+
// ------------------------------------------------------------------
48+
// Parse
49+
// ------------------------------------------------------------------
50+
51+
const R = Value.Parse(T, { x: 1, y: 2, z: 3 })
52+
53+
// ------------------------------------------------------------------
54+
// Compile
55+
// ------------------------------------------------------------------
56+
const C = Compile(S)
57+
58+
const X = C.Parse({ x: 1, y: 2, z: 3 })
59+
60+
// ------------------------------------------------------------------
61+
// Format
62+
// ------------------------------------------------------------------
63+
64+
const E = Format.IsEmail('user@domain.com')
65+
66+
// ------------------------------------------------------------------
67+
// Schema
68+
// ------------------------------------------------------------------
69+
70+
const D = Schema.Parse({ const: 'hello' }, 'hello')

src/schema/engine/type.ts

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -40,44 +40,44 @@ function BuildTypeName(_stack: Stack, _context: BuildContext, type: string, valu
4040
return (
4141
// jsonschema
4242
G.IsEqual(type, 'object') ? E.IsObjectNotArray(value) :
43-
G.IsEqual(type, 'array') ? E.IsArray(value) :
44-
G.IsEqual(type, 'boolean') ? E.IsBoolean(value) :
45-
G.IsEqual(type, 'integer') ? E.IsInteger(value) :
46-
G.IsEqual(type, 'number') ? E.IsNumber(value) :
47-
G.IsEqual(type, 'null') ? E.IsNull(value) :
48-
G.IsEqual(type, 'string') ? E.IsString(value) :
49-
// xschema
50-
G.IsEqual(type, 'asyncIterator') ? E.IsAsyncIterator(value) :
51-
G.IsEqual(type, 'bigint') ? E.IsBigInt(value) :
52-
G.IsEqual(type, 'constructor') ? E.IsConstructor(value) :
53-
G.IsEqual(type, 'function') ? E.IsFunction(value) :
54-
G.IsEqual(type, 'iterator') ? E.IsIterator(value) :
55-
G.IsEqual(type, 'symbol') ? E.IsSymbol(value) :
56-
G.IsEqual(type, 'undefined') ? E.IsUndefined(value) :
57-
G.IsEqual(type, 'void') ? E.IsUndefined(value) :
58-
E.Constant(true)
43+
G.IsEqual(type, 'array') ? E.IsArray(value) :
44+
G.IsEqual(type, 'boolean') ? E.IsBoolean(value) :
45+
G.IsEqual(type, 'integer') ? E.IsInteger(value) :
46+
G.IsEqual(type, 'number') ? E.IsNumber(value) :
47+
G.IsEqual(type, 'null') ? E.IsNull(value) :
48+
G.IsEqual(type, 'string') ? E.IsString(value) :
49+
// xschema
50+
G.IsEqual(type, 'asyncIterator') ? E.IsAsyncIterator(value) :
51+
G.IsEqual(type, 'bigint') ? E.IsBigInt(value) :
52+
G.IsEqual(type, 'constructor') ? E.IsConstructor(value) :
53+
G.IsEqual(type, 'function') ? E.IsFunction(value) :
54+
G.IsEqual(type, 'iterator') ? E.IsIterator(value) :
55+
G.IsEqual(type, 'symbol') ? E.IsSymbol(value) :
56+
G.IsEqual(type, 'undefined') ? E.IsUndefined(value) :
57+
G.IsEqual(type, 'void') ? E.IsUndefined(value) :
58+
E.Constant(true)
5959
)
6060
}
6161
function CheckTypeName(_stack: Stack, _context: CheckContext, type: string, _schema: Schema.XSchemaObject, value: unknown): boolean {
6262
return (
6363
// jsonschema
6464
G.IsEqual(type, 'object') ? G.IsObjectNotArray(value) :
65-
G.IsEqual(type, 'array') ? G.IsArray(value) :
66-
G.IsEqual(type, 'boolean') ? G.IsBoolean(value) :
67-
G.IsEqual(type, 'integer') ? G.IsInteger(value) :
68-
G.IsEqual(type, 'number') ? G.IsNumber(value) :
69-
G.IsEqual(type, 'null') ? G.IsNull(value) :
70-
G.IsEqual(type, 'string') ? G.IsString(value) :
71-
// xschema
72-
G.IsEqual(type, 'asyncIterator') ? G.IsAsyncIterator(value) :
73-
G.IsEqual(type, 'bigint') ? G.IsBigInt(value) :
74-
G.IsEqual(type, 'constructor') ? G.IsConstructor(value) :
75-
G.IsEqual(type, 'function') ? G.IsFunction(value) :
76-
G.IsEqual(type, 'iterator') ? G.IsIterator(value) :
77-
G.IsEqual(type, 'symbol') ? G.IsSymbol(value) :
78-
G.IsEqual(type, 'undefined') ? G.IsUndefined(value) :
79-
G.IsEqual(type, 'void') ? G.IsUndefined(value) :
80-
true
65+
G.IsEqual(type, 'array') ? G.IsArray(value) :
66+
G.IsEqual(type, 'boolean') ? G.IsBoolean(value) :
67+
G.IsEqual(type, 'integer') ? G.IsInteger(value) :
68+
G.IsEqual(type, 'number') ? G.IsNumber(value) :
69+
G.IsEqual(type, 'null') ? G.IsNull(value) :
70+
G.IsEqual(type, 'string') ? G.IsString(value) :
71+
// xschema
72+
G.IsEqual(type, 'asyncIterator') ? G.IsAsyncIterator(value) :
73+
G.IsEqual(type, 'bigint') ? G.IsBigInt(value) :
74+
G.IsEqual(type, 'constructor') ? G.IsConstructor(value) :
75+
G.IsEqual(type, 'function') ? G.IsFunction(value) :
76+
G.IsEqual(type, 'iterator') ? G.IsIterator(value) :
77+
G.IsEqual(type, 'symbol') ? G.IsSymbol(value) :
78+
G.IsEqual(type, 'undefined') ? G.IsUndefined(value) :
79+
G.IsEqual(type, 'void') ? G.IsUndefined(value) :
80+
true
8181
)
8282
}
8383
// ------------------------------------------------------------------

0 commit comments

Comments
 (0)