-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathserialization.ts
More file actions
80 lines (67 loc) · 3.5 KB
/
serialization.ts
File metadata and controls
80 lines (67 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/**
* This file is generated. Do not modify it manually!
*/
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import type {AdapterResolvers} from './adapters';
import type {AdapterResolver} from './resolver';
import type {SerializationAdapter} from '@typeschema/core';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import {memoize, unsupportedAdapter} from '@typeschema/core';
import {select} from './selector';
const importArktypeSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/arktype');
return serializationAdapter;
});
const importEffectSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/effect');
return serializationAdapter;
});
const importJoiSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/joi');
return serializationAdapter;
});
const importJsonSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/json');
return serializationAdapter;
});
const importSuretypeSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/suretype');
return serializationAdapter;
});
const importTypeboxSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/typebox');
return serializationAdapter;
});
const importValibotSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/valibot');
return serializationAdapter;
});
const importYupSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/yup');
return serializationAdapter;
});
const importZodSerializationAdapter = memoize(async () => {
const {serializationAdapter} = await import('@typeschema/zod');
return serializationAdapter;
});
export const serializationAdapter: SerializationAdapter<AdapterResolver> = select({
arktype: async schema => (await importArktypeSerializationAdapter())(schema),
classValidator: unsupportedAdapter<AdapterResolvers['classValidator']>('@typeschema/class-validator'),
deepkit: unsupportedAdapter<AdapterResolvers['deepkit']>('@typeschema/deepkit'),
effect: async schema => (await importEffectSerializationAdapter())(schema),
fastestValidator: unsupportedAdapter<AdapterResolvers['fastestValidator']>('@typeschema/fastest-validator'),
function: unsupportedAdapter<AdapterResolvers['function']>('@typeschema/function'),
ioTs: unsupportedAdapter<AdapterResolvers['ioTs']>('@typeschema/io-ts'),
joi: async schema => (await importJoiSerializationAdapter())(schema),
json: async schema => (await importJsonSerializationAdapter())(schema),
ow: unsupportedAdapter<AdapterResolvers['ow']>('@typeschema/ow'),
runtypes: unsupportedAdapter<AdapterResolvers['runtypes']>('@typeschema/runtypes'),
superstruct: unsupportedAdapter<AdapterResolvers['superstruct']>('@typeschema/superstruct'),
suretype: async schema => (await importSuretypeSerializationAdapter())(schema),
typebox: async schema => (await importTypeboxSerializationAdapter())(schema),
valibot: async schema => (await importValibotSerializationAdapter())(schema),
valita: unsupportedAdapter<AdapterResolvers['valita']>('@typeschema/valita'),
vine: unsupportedAdapter<AdapterResolvers['vine']>('@typeschema/vine'),
yup: async schema => (await importYupSerializationAdapter())(schema),
zod: async schema => (await importZodSerializationAdapter())(schema),
});