44
packages/schemas/features/blocks/logic/schema.ts
Normal file
44
packages/schemas/features/blocks/logic/schema.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { z } from 'zod'
|
||||
import { conditionBlockSchemas } from './condition'
|
||||
import { jumpBlockSchema } from './jump'
|
||||
import { redirectBlockSchema } from './redirect'
|
||||
import { scriptBlockSchema } from './script'
|
||||
import { setVariableBlockSchema } from './setVariable'
|
||||
import { typebotLinkBlockSchema } from './typebotLink'
|
||||
import { waitBlockSchema } from './wait'
|
||||
import { abTestBlockSchemas } from './abTest'
|
||||
|
||||
export const logicBlockSchemas = {
|
||||
v5: [
|
||||
scriptBlockSchema,
|
||||
conditionBlockSchemas.v5,
|
||||
redirectBlockSchema,
|
||||
setVariableBlockSchema,
|
||||
typebotLinkBlockSchema,
|
||||
waitBlockSchema,
|
||||
jumpBlockSchema,
|
||||
abTestBlockSchemas.v5,
|
||||
],
|
||||
v6: [
|
||||
scriptBlockSchema,
|
||||
conditionBlockSchemas.v6,
|
||||
redirectBlockSchema,
|
||||
setVariableBlockSchema,
|
||||
typebotLinkBlockSchema,
|
||||
waitBlockSchema,
|
||||
jumpBlockSchema,
|
||||
abTestBlockSchemas.v6,
|
||||
],
|
||||
} as const
|
||||
|
||||
const logicBlockV5Schema = z.discriminatedUnion('type', [
|
||||
...logicBlockSchemas.v5,
|
||||
])
|
||||
|
||||
const logicBlockV6Schema = z.discriminatedUnion('type', [
|
||||
...logicBlockSchemas.v6,
|
||||
])
|
||||
|
||||
const logicBlockSchema = z.union([logicBlockV5Schema, logicBlockV6Schema])
|
||||
|
||||
export type LogicBlock = z.infer<typeof logicBlockSchema>
|
Reference in New Issue
Block a user