Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb257d83

Browse files
committed
docs(xsschema): update sync example
1 parent1168b16 commitb257d83

File tree

1 file changed

+71
-60
lines changed

1 file changed

+71
-60
lines changed

‎docs/content/docs/packages-top/xsschema.mdx

Lines changed: 71 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -30,117 +30,128 @@ Here is the list of libraries that `toJsonSchema` is compatible with:
3030
If you're using xsAI, this package is a dependency of some of those packages - you don't need to install it separately.
3131
</Callout>
3232

33-
###toJsonSchema (arktype)
33+
###toJsonSchema
3434

3535
```ts twoslash
3636
import {type }from'arktype'
37+
import {Schema }from'effect'
38+
import*asvfrom'valibot'
3739
import {toJsonSchema }from'xsschema'
40+
import {z }from'zod'
3841

39-
constschema=type({
42+
constarktypeSchema=type({
4043
myString:'string',
4144
myUnion:'number | boolean',
4245
}).describe('My neat object schema')
4346

44-
const jsonSchema=awaittoJsonSchema(schema)
45-
```
46-
47-
###toJsonSchema (effect)
48-
49-
```ts twoslash
50-
import {Schema }from'effect'
51-
import {toJsonSchema }from'xsschema'
47+
const arktypeJsonSchema=awaittoJsonSchema(arktypeSchema)
5248

53-
constschema=Schema.Struct({
49+
consteffectSchema=Schema.Struct({
5450
myString:Schema.String,
5551
myUnion:Schema.Union(Schema.Number,Schema.Boolean),
5652
}).annotations({ description:'My neat object schema' })
5753

58-
constjsonSchema=awaittoJsonSchema(
54+
consteffectJsonSchema=awaittoJsonSchema(
5955
// https://github.com/Effect-TS/effect/issues/4494 // [!code highlight]
60-
Object.assign(schema,Schema.standardSchemaV1(schema))// [!code highlight]
56+
Object.assign(effectSchema,Schema.standardSchemaV1(effectSchema))// [!code highlight]
6157
)
62-
```
63-
64-
###toJsonSchema (valibot)
6558

66-
```ts twoslash
67-
import*asvfrom'valibot'
68-
import {toJsonSchema }from'xsschema'
69-
70-
const schema=v.pipe(
59+
const valibotSchema=v.pipe(
7160
v.object({
7261
myString:v.string(),
7362
myUnion:v.union([v.number(),v.boolean()]),
7463
}),
7564
v.description('My neat object schema'),
7665
)
7766

78-
const jsonSchema=awaittoJsonSchema(schema)
79-
```
80-
81-
###toJsonSchema (zod)
82-
83-
```ts twoslash
84-
import {toJsonSchema }from'xsschema'
85-
import*aszfrom'zod'
67+
const valibotJsonSchema=awaittoJsonSchema(valibotSchema)
8668

87-
constschema=z.object({
69+
constzodSchema=z.object({
8870
myString:z.string(),
8971
myUnion:z.union([z.number(),z.boolean()]),
9072
}).describe('My neat object schema')
9173

92-
constjsonSchema=awaittoJsonSchema(schema)
74+
constzodJsonSchema=awaittoJsonSchema(zodSchema)
9375
```
9476

95-
###validate
96-
97-
```ts twoslash
98-
import {validate }from'xsschema'
99-
import {type }from'arktype'
100-
import*asvfrom'valibot'
101-
import*aszfrom'zod'
102-
103-
const arktypeSchema=type("string")
104-
const valibotSchema=v.string()
105-
const zodSchema=z.string()
106-
107-
const arktypeResult=awaitvalidate(arktypeSchema,'123')
108-
const valibotResult=awaitvalidate(valibotSchema,'123')
109-
const zodResult=awaitvalidate(zodSchema,'123')
110-
```
111-
112-
##Synchronous Usage
77+
###toJsonSchemaSync (experimental)
11378

11479
`toJsonSchema` is async (because it has to`await import` the vendor's dependencies), but we also support a synchronous version:`toJsonSchemaSync`.
11580

11681
<Callouttype="important">
117-
Before using`toJsonSchemaSync`, you must call`registerStandardSchemaVendor` with your schema vendor.
82+
Before using`toJsonSchemaSync`, you must call`initToJsonSchemaSyncVendor` with your schema vendor.
11883
</Callout>
11984

12085
```ts twoslash
121-
import {registerStandardSchemaVendor }from'xsschema'
86+
import {initToJsonSchemaSyncVendor }from'xsschema'
12287

123-
awaitregisterStandardSchemaVendor('zod')
88+
awaitinitToJsonSchemaSyncVendor('arktype')
12489
// or
125-
awaitregisterStandardSchemaVendor('valibot')
90+
awaitinitToJsonSchemaSyncVendor('effect')
12691
// or
127-
awaitregisterStandardSchemaVendor('arktype')
92+
awaitinitToJsonSchemaSyncVendor('valibot')
93+
// or
94+
awaitinitToJsonSchemaSyncVendor('zod')
12895
```
12996

13097
You can register multiple schema vendors if you need to.
13198

132-
###toJsonSchemaSync (zod)
13399

134100
```ts twoslash
135-
import {toJsonSchemaSync,registerStandardSchemaVendor }from'xsschema'
136-
import*aszfrom'zod'
101+
import {type }from'arktype'
102+
import {Schema }from'effect'
103+
import*asvfrom'valibot'
104+
import {toJsonSchemaSync }from'xsschema'
105+
import {z }from'zod'
106+
107+
const arktypeSchema=type({
108+
myString:'string',
109+
myUnion:'number | boolean',
110+
}).describe('My neat object schema')
111+
112+
const arktypeJsonSchema=toJsonSchemaSync(arktypeSchema)
113+
114+
const effectSchema=Schema.Struct({
115+
myString:Schema.String,
116+
myUnion:Schema.Union(Schema.Number,Schema.Boolean),
117+
}).annotations({ description:'My neat object schema' })
137118

138-
awaitregisterStandardSchemaVendor('zod')
119+
const effectJsonSchema=toJsonSchemaSync(
120+
// https://github.com/Effect-TS/effect/issues/4494 // [!code highlight]
121+
Object.assign(effectSchema,Schema.standardSchemaV1(effectSchema))// [!code highlight]
122+
)
139123

140-
const schema=z.object({
124+
const valibotSchema=v.pipe(
125+
v.object({
126+
myString:v.string(),
127+
myUnion:v.union([v.number(),v.boolean()]),
128+
}),
129+
v.description('My neat object schema'),
130+
)
131+
132+
const valibotJsonSchema=toJsonSchemaSync(valibotSchema)
133+
134+
const zodSchema=z.object({
141135
myString:z.string(),
142136
myUnion:z.union([z.number(),z.boolean()]),
143137
}).describe('My neat object schema')
144138

145-
const jsonSchema=toJsonSchemaSync(schema)
139+
const zodJsonSchema=toJsonSchemaSync(zodSchema)
140+
```
141+
142+
###validate
143+
144+
```ts twoslash
145+
import {validate }from'xsschema'
146+
import {type }from'arktype'
147+
import*asvfrom'valibot'
148+
import*aszfrom'zod'
149+
150+
const arktypeSchema=type("string")
151+
const valibotSchema=v.string()
152+
const zodSchema=z.string()
153+
154+
const arktypeResult=awaitvalidate(arktypeSchema,'123')
155+
const valibotResult=awaitvalidate(valibotSchema,'123')
156+
const zodResult=awaitvalidate(zodSchema,'123')
146157
```

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp