1- import { z } from 'zod'
1+ import z from 'zod'
22import {
33 checkHrefFormat ,
44 getWalletAddress ,
@@ -29,7 +29,7 @@ export const walletSchema = z.object({
2929 await getWalletAddress ( updatedUrl )
3030 } catch ( e ) {
3131 ctx . addIssue ( {
32- code : z . ZodIssueCode . custom ,
32+ code : ' custom' ,
3333 message :
3434 e instanceof WalletAddressFormatError
3535 ? e . message
@@ -48,29 +48,26 @@ export const fullConfigSchema = z.object({
4848 fullconfig : z . string ( ) . min ( 1 , { message : 'Unknown error' } )
4949} )
5050
51- export const createButtonSchema = z
52- . object ( {
53- elementType : z . literal ( 'button' )
54- } )
55- . merge ( buttonFieldsSchema )
56- . merge ( walletSchema )
57- . merge ( versionSchema )
51+ export const createButtonSchema = z . object ( {
52+ elementType : z . literal ( 'button' ) ,
53+ ...buttonFieldsSchema . shape ,
54+ ...walletSchema . shape ,
55+ ...versionSchema . shape
56+ } )
5857
59- export const createBannerSchema = z
60- . object ( {
61- elementType : z . literal ( 'banner' )
62- } )
63- . merge ( bannerFieldsSchema )
64- . merge ( walletSchema )
65- . merge ( versionSchema )
58+ export const createBannerSchema = z . object ( {
59+ elementType : z . literal ( 'banner' ) ,
60+ ...bannerFieldsSchema . shape ,
61+ ...walletSchema . shape ,
62+ ...versionSchema . shape
63+ } )
6664
67- export const createWidgetSchema = z
68- . object ( {
69- elementType : z . literal ( 'widget' )
70- } )
71- . merge ( widgetFieldsSchema )
72- . merge ( walletSchema )
73- . merge ( versionSchema )
65+ export const createWidgetSchema = z . object ( {
66+ elementType : z . literal ( 'widget' ) ,
67+ ...widgetFieldsSchema . shape ,
68+ ...walletSchema . shape ,
69+ ...versionSchema . shape
70+ } )
7471
7572export const getElementSchema = ( type : string ) => {
7673 switch ( type ) {
@@ -95,7 +92,10 @@ export const validateForm = async (
9592 if ( intent === 'import' || intent === 'delete' ) {
9693 result = await walletSchema . safeParseAsync ( formData )
9794 } else if ( intent === 'newversion' ) {
98- const newVersionSchema = versionSchema . merge ( walletSchema )
95+ const newVersionSchema = z . object ( {
96+ ...versionSchema . shape ,
97+ ...walletSchema . shape
98+ } )
9999 result = await newVersionSchema . safeParseAsync ( formData )
100100 } else {
101101 let currentSchema
@@ -111,9 +111,13 @@ export const validateForm = async (
111111 default :
112112 currentSchema = createBannerSchema
113113 }
114- result = await currentSchema
115- . merge ( fullConfigSchema )
116- . safeParseAsync ( Object . assign ( formData , { ...{ elementType } } ) )
114+ const mergedSchema = z . object ( {
115+ ...currentSchema . shape ,
116+ ...fullConfigSchema . shape
117+ } )
118+ result = await mergedSchema . safeParseAsync (
119+ Object . assign ( formData , { ...{ elementType } } )
120+ )
117121 }
118122 /* eslint-disable @typescript-eslint/no-explicit-any */
119123 const payload = result . data as unknown as any
0 commit comments