{"version":3,"file":"beforeChange.mjs","sources":["../../../../packages/utils/beforeChange.ts"],"sourcesContent":["/**\n * beforeChange 处理函数类型\n */\nexport interface BeforeChangeFunction {\n\t(value?: any): boolean | void | Promise<any>\n}\n\n/**\n * beforeChange 处理工具函数\n * 直接调用形式：handleBeforeChange(beforeChange, value).then()\n *\n * @param beforeChange beforeChange 函数\n * @param value 要验证的值\n * @returns Promise\n */\nexport function handleBeforeChange<T = any>(\n\tbeforeChange?: BeforeChangeFunction,\n\tvalue?: T\n): Promise<T> {\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\tif (!beforeChange) {\n\t\t\t\tresolve(value as T)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst result = beforeChange(value)\n\n\t\t\tif (result && typeof (result as Promise<any>).then === 'function') {\n\t\t\t\t// 异步处理\n\t\t\t\t;(result as Promise<any>)\n\t\t\t\t\t.then(res => {\n\t\t\t\t\t\tif (res !== false) {\n\t\t\t\t\t\t\tresolve(value as T)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(new Error('beforeChange validation failed'))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\treject(error)\n\t\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// 同步处理\n\t\t\t\tif (result !== false) {\n\t\t\t\t\tresolve(value as T)\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('beforeChange validation failed'))\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.log(error)\n\t\t}\n\t})\n}\n"],"names":[],"mappings":"AAegB,SAAA,kBAAA,CACf,cACA,KACa,EAAA;AACb,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACvC,IAAI,IAAA;AACH,MAAA,IAAI,CAAC,YAAc,EAAA;AAClB,QAAA,OAAA,CAAQ,KAAU,CAAA,CAAA;AAClB,QAAA,OAAA;AAAA,OACD;AAEA,MAAM,MAAA,MAAA,GAAS,aAAa,KAAK,CAAA,CAAA;AAEjC,MAAA,IAAI,MAAU,IAAA,OAAQ,MAAwB,CAAA,IAAA,KAAS,UAAY,EAAA;AAElE,QAAA,CAAA;AAAC,QAAC,MAAA,CACA,KAAK,CAAO,GAAA,KAAA;AACZ,UAAA,IAAI,QAAQ,KAAO,EAAA;AAClB,YAAA,OAAA,CAAQ,KAAU,CAAA,CAAA;AAAA,WACZ,MAAA;AACN,YAAO,MAAA,CAAA,IAAI,KAAM,CAAA,gCAAgC,CAAC,CAAA,CAAA;AAAA,WACnD;AAAA,SACA,CACA,CAAA,KAAA,CAAM,CAAS,KAAA,KAAA;AACf,UAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,SACZ,CAAA,CAAA;AAAA,OACI,MAAA;AAEN,QAAA,IAAI,WAAW,KAAO,EAAA;AACrB,UAAA,OAAA,CAAQ,KAAU,CAAA,CAAA;AAAA,SACZ,MAAA;AACN,UAAO,MAAA,CAAA,IAAI,KAAM,CAAA,gCAAgC,CAAC,CAAA,CAAA;AAAA,SACnD;AAAA,OACD;AAAA,aACQ,KAAP,EAAA;AACD,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA,CAAA;AAAA,KAClB;AAAA,GACA,CAAA,CAAA;AACF;;;;"}