UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 4.4 kB
{"version":3,"file":"validateSearch.js","names":[],"sources":["esm/validateSearch.js"],"sourcesContent":["class SearchValidationError extends Error {\n routerCode = \"VALIDATE_SEARCH\";\n issues;\n constructor(message, issues = []) {\n super(message);\n this.name = \"SearchValidationError\";\n this.issues = issues;\n }\n}\nfunction isStandardSchema(value) {\n return typeof value === \"object\" && value !== null && \"~standard\" in value && typeof value[\"~standard\"]?.validate === \"function\";\n}\nfunction isZodLikeSchema(value) {\n return typeof value === \"object\" && value !== null && typeof value.parse === \"function\";\n}\nfunction isValidatorFn(value) {\n return typeof value === \"function\";\n}\nfunction parseSearchString(search) {\n const params = {};\n const searchParams = new URLSearchParams(search);\n searchParams.forEach((value, key) => {\n const existing = params[key];\n if (existing === void 0) {\n params[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n params[key] = [existing, value];\n }\n });\n return params;\n}\nfunction validateSearch(validator, input) {\n if (isStandardSchema(validator)) {\n const result = validator[\"~standard\"].validate(input);\n if (result.issues) {\n throw new SearchValidationError(\n \"Search param validation failed\",\n result.issues\n );\n }\n return result.value;\n }\n if (isZodLikeSchema(validator)) {\n if (validator.safeParse) {\n const result = validator.safeParse(input);\n if (!result.success) {\n throw new SearchValidationError(\"Search param validation failed\", [result.error]);\n }\n return result.data;\n }\n try {\n return validator.parse(input);\n } catch (error) {\n throw new SearchValidationError(\"Search param validation failed\", [error]);\n }\n }\n if (isValidatorFn(validator)) {\n try {\n return validator(input);\n } catch (error) {\n throw new SearchValidationError(\"Search param validation failed\", [error]);\n }\n }\n throw new Error(\"Invalid validator provided to validateSearch\");\n}\nfunction zodSearchValidator(schema) {\n return schema;\n}\nfunction withFallback(schema, fallbackValue) {\n return {\n parse(value) {\n try {\n return schema.parse(value);\n } catch {\n return fallbackValue;\n }\n },\n safeParse(value) {\n try {\n return { success: true, data: schema.parse(value) };\n } catch {\n return { success: true, data: fallbackValue };\n }\n }\n };\n}\nexport {\n SearchValidationError,\n parseSearchString,\n validateSearch,\n withFallback,\n zodSearchValidator\n};\n//# sourceMappingURL=validateSearch.js.map\n"],"mappings":";AAAA,IAAM,wBAAN,cAAoC,MAAM;CACxC,aAAa;CACb;CACA,YAAY,SAAS,SAAS,CAAC,GAAG;EAChC,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;CAChB;AACF;AACA,SAAS,iBAAiB,OAAO;CAC/B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,eAAe,SAAS,OAAO,MAAM,YAAY,EAAE,aAAa;AACxH;AACA,SAAS,gBAAgB,OAAO;CAC9B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,OAAO,MAAM,UAAU;AAC/E;AACA,SAAS,cAAc,OAAO;CAC5B,OAAO,OAAO,UAAU;AAC1B;AACA,SAAS,kBAAkB,QAAQ;CACjC,MAAM,SAAS,CAAC;CAChB,MAAM,eAAe,IAAI,gBAAgB,MAAM;CAC/C,aAAa,SAAS,OAAO,QAAQ;EACnC,MAAM,WAAW,OAAO;EACxB,IAAI,aAAa,KAAK,GAAG;GACvB,OAAO,OAAO;EAChB,OAAO,IAAI,MAAM,QAAQ,QAAQ,GAAG;GAClC,SAAS,KAAK,KAAK;EACrB,OAAO;GACL,OAAO,OAAO,CAAC,UAAU,KAAK;EAChC;CACF,CAAC;CACD,OAAO;AACT;AACA,SAAS,eAAe,WAAW,OAAO;CACxC,IAAI,iBAAiB,SAAS,GAAG;EAC/B,MAAM,SAAS,UAAU,YAAY,CAAC,SAAS,KAAK;EACpD,IAAI,OAAO,QAAQ;GACjB,MAAM,IAAI,sBACR,kCACA,OAAO,MACT;EACF;EACA,OAAO,OAAO;CAChB;CACA,IAAI,gBAAgB,SAAS,GAAG;EAC9B,IAAI,UAAU,WAAW;GACvB,MAAM,SAAS,UAAU,UAAU,KAAK;GACxC,IAAI,CAAC,OAAO,SAAS;IACnB,MAAM,IAAI,sBAAsB,kCAAkC,CAAC,OAAO,KAAK,CAAC;GAClF;GACA,OAAO,OAAO;EAChB;EACA,IAAI;GACF,OAAO,UAAU,MAAM,KAAK;EAC9B,SAAS,OAAO;GACd,MAAM,IAAI,sBAAsB,kCAAkC,CAAC,KAAK,CAAC;EAC3E;CACF;CACA,IAAI,cAAc,SAAS,GAAG;EAC5B,IAAI;GACF,OAAO,UAAU,KAAK;EACxB,SAAS,OAAO;GACd,MAAM,IAAI,sBAAsB,kCAAkC,CAAC,KAAK,CAAC;EAC3E;CACF;CACA,MAAM,IAAI,MAAM,8CAA8C;AAChE;AACA,SAAS,mBAAmB,QAAQ;CAClC,OAAO;AACT;AACA,SAAS,aAAa,QAAQ,eAAe;CAC3C,OAAO;EACL,MAAM,OAAO;GACX,IAAI;IACF,OAAO,OAAO,MAAM,KAAK;GAC3B,QAAQ;IACN,OAAO;GACT;EACF;EACA,UAAU,OAAO;GACf,IAAI;IACF,OAAO;KAAE,SAAS;KAAM,MAAM,OAAO,MAAM,KAAK;IAAE;GACpD,QAAQ;IACN,OAAO;KAAE,SAAS;KAAM,MAAM;IAAc;GAC9C;EACF;CACF;AACF"}