@docusign/iam-sdk
Version:
Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@docusign/iam-sdk* API.
105 lines • 3.1 kB
JavaScript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
import { defaultToZeroValue } from "./defaultToZeroValue.js";
import { unrecognized } from "./unrecognized.js";
export function string() {
return z.union([
z.string(),
// Null or undefined -> ""
zodDefaultToZeroValue(""),
// Any other value -> String(x)
z.any().transform((x) => unrecognized(JSON.stringify(x))),
]);
}
export function boolean() {
return z.union([
z.boolean(),
// String "true" (case insensitive) -> true, "false" -> false
z.string().transform((x, ctx) => {
const lower = x.toLowerCase();
if (lower === "true")
return unrecognized(true);
if (lower === "false")
return unrecognized(false);
ctx.addIssue({
code: "invalid_type",
expected: "boolean",
received: "string",
});
return z.NEVER;
}),
zodDefaultToZeroValue(false),
]);
}
export function number() {
return z.union([
z.number(),
// String -> Number
z.string().transform((x, ctx) => {
const num = Number(x);
if (isNaN(num)) {
ctx.addIssue({
code: "invalid_type",
expected: "number",
received: "string",
});
return z.NEVER;
}
return unrecognized(num);
}),
// Null or undefined -> 0
zodDefaultToZeroValue(0),
]);
}
export function date() {
return z.union([
z.union([z.string(), zodDefaultToZeroValue(0)]).transform((x) => new Date(x)).pipe(z.date()),
z.number().transform((x, ctx) => {
const date = new Date(x);
if (isNaN(date.getTime())) {
ctx.addIssue({
code: "invalid_type",
expected: "date",
received: "number",
});
return z.NEVER;
}
return unrecognized(date);
}),
]);
}
export function literal(value) {
return z.union([z.literal(value), zodDefaultToZeroValue(value)]);
}
export function optional(t) {
return z.union([
// Null -> undefined
z.null().transform(() => unrecognized(undefined)),
t,
]).optional();
}
export function nullable(t) {
return z.union([
z.null(),
// Undefined -> null
z.undefined().transform(() => defaultToZeroValue(null)),
t,
]);
}
function zodDefaultToZeroValue(value) {
return z.any().transform((input, ctx) => {
if (input === undefined)
return defaultToZeroValue(value);
if (input === null)
return defaultToZeroValue(value);
ctx.addIssue({
code: "invalid_type",
expected: "undefined",
received: "unknown",
});
return z.NEVER;
});
}
//# sourceMappingURL=primitives.js.map