zod-sugar
v1.0.4
Published
Creates a zod schema from a javascript value
Downloads
22
Maintainers
Readme
zod sugar
Creates a zod schema from a javascript value. Basically zod in reverse or zod backwards.
Built with Typescript for Node.js or the Browser.
import createZod from "zod-sugar";
const object = { foo: "bar", baz: 1 };
const schema = createZod(object);
// z.object({ foo: z.string(), bar: z.number() });
schema.safeParse(object).success // true
Installing
npm install zod-sugaryarn add zod-sugarpnpm install zod-sugarExamples
createZod(null) // ZodNull
createZod(undefined) // ZodUndefined
createZod(1) // ZodNumber
createZod("foo") // ZodString
createZod(false) // ZodBoolean
createZod(Symbol("foo")) // ZodSymbol
createZod(BigInt(1)) // ZodBigInt
createZod([1, 2, 3]) // ZodArray
createZod({ foo: "bar", baz: 1 }) // ZodObject
createZod({
string: "bar",
number: 1,
array: [1, 2, 3],
bigint: BigInt(9007199254740991),
object: {
number: 0,
boolean: false,
object: {
string: "bar",
null: null,
[Symbol("foo")]: "bar",
},
array: ["1", "2", "3"],
},
undefined: undefined,
}) // ZodObjectCaveats:
- While Zod itself attempts to mirror Typescript 1-1, this library only handles common Javascript values:
- null
- undefined
- boolean
- number
- bigint
- string
- symbol
- array
- object
Support for more values coming soon:
- date
- set
- map
- The schema returned is the most generic possible for obvious reasons - we can't infer beyond the values provided.
That's it!
Thanks for reading. I welcome your input, suggestions, feedback. Here is the medium article I wrote introducing this library.
Check out the following related libraries that I also built with this release.
ai-sugar AI Sugar is a collection of utility functions for working with AI apis.
const sorted = await ai.sort({
array: ["green", "red", "blue", "yellow"],
prompt: "rainbow color order",
});
// ["red", "yellow", "green", "blue"]arrays-sugar Arrays Sugar is a set of array methods supporting async callbacks: everyAsync, filterAsync, findAsync, findIndexAsync, someAsync:
const array = [1, 2, 3];
array.findIndex(async (number) => number === 2) // 0 ❌
findIndex(array, async (number) => number === 2) // 1 ✅What I'm building
Find the best alternatives with one click. Discover similar websites, tools and services instantly while browsing. Never miss out on better options again. Check out Similarly

