UNPKG

@visulima/api-platform

Version:

Visulima API platform is a set of tools to build and consume web APIs

1 lines 6.67 kB
{"version":3,"sources":["../src/zod/index.ts","../src/zod/date-in-schema.ts","../src/zod/date-out-schema.ts"],"names":["zod_exports","__export","dateIn","dateOut","zodDateInKind","isoDateRegex","ZodDateIn","_ZodDateIn","ZodType","input","ctx","status","ZodParsedType","addIssueToContext","ZodIssueCode","INVALID","date","zodDateOutKind","ZodDateOut","_ZodDateOut","parameters","withGetType","ts"],"mappings":"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","file":"chunk-66EUOAFS.mjs","sourcesContent":["import { withGetType } from \"zod-to-ts\";\n\nimport { ZodDateIn } from \"./date-in-schema\";\nimport { ZodDateOut } from \"./date-out-schema\";\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const dateIn = (...parameters: Parameters<typeof ZodDateIn.create>) =>\n withGetType(ZodDateIn.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const dateOut = (...parameters: Parameters<typeof ZodDateOut.create>) =>\n withGetType(ZodDateOut.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport { addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType } from \"zod\";\n\nconst zodDateInKind = \"ZodDateIn\";\n\n// simple regex for ISO date, supports the following formats:\n// 2021-01-01T00:00:00.000Z\n// 2021-01-01T00:00:00Z\n// 2021-01-01T00:00:00\n// 2021-01-01\n// eslint-disable-next-line security/detect-unsafe-regex\nexport const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?)?Z?$/;\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateInDef extends ZodTypeDef {\n typeName: typeof zodDateInKind;\n}\n\nexport class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {\n public static create = (): ZodDateIn =>\n new ZodDateIn({\n typeName: zodDateInKind,\n });\n\n // eslint-disable-next-line no-underscore-dangle\n public _parse(input: ParseInput): ParseReturnType<Date> {\n // eslint-disable-next-line no-underscore-dangle\n const { ctx, status } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.string) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (!isoDateRegex.test(ctx.data as string)) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"regex\",\n });\n status.dirty();\n }\n\n const date = new Date(ctx.data as string);\n\n if (Number.isNaN(date.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: date };\n }\n}\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport { addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType } from \"zod\";\n\nconst zodDateOutKind = \"ZodDateOut\";\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateOutDef extends ZodTypeDef {\n typeName: typeof zodDateOutKind;\n}\n\nexport class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {\n public static create = (): ZodDateOut =>\n new ZodDateOut({\n typeName: zodDateOutKind,\n });\n\n // eslint-disable-next-line no-underscore-dangle\n public _parse(input: ParseInput): ParseReturnType<string> {\n // eslint-disable-next-line no-underscore-dangle\n const { ctx, status } = this._processInputParams(input);\n\n if (ctx.parsedType !== ZodParsedType.date) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n\n if (Number.isNaN(ctx.data.getTime())) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n\n return { status: status.value, value: (ctx.data as Date).toISOString() };\n }\n}\n"]}