Generates zod schema from JSON string on standard inputs.
Installation
npm install --save-dev @wbydo/zodidien
Usage
Generating a schema
When you type this command...
echo '{"foo": 1234, "bar": "asdf"}' | npx zodidien foobar
This string will be output
const foobarSchema = z.object({
foo: z.number(),
bar: z.string(),
});
It reads from standard input and outputs to standard output, so it can be used like this.
pbpaste | npx zodidien foobar
# output
#
# const foobarSchema = z.object({
# foo: z.number(),
# bar: z.string()
#});
Generating a schema in code
TODO...
Convert Types
Here is what the types on JSON are converted to.†1
JSON | TypeScript |
---|---|
number | z.number() |
string | z.string() |
boolean | z.boolean() |
array |
z.array() †2 |
object |
z.object() †3 |
- †1: If anything other than the types in the table is entered, an error will occur.
- †2: Ignored except for first elements.
- †3: Non-string type keys are not supported.
Dependencies
This package has the following dependencies:
zod - A TypeScript-first schema validation library.
Similar Library
rsinohara/json-to-zod - Converts JSON objects or file to simple Zod schemas
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
To check the operation in the local development environment, execute the following command
git clone https://github.com/wbydo/zodidien.git
cd zodidien
npm ci
npm test
echo '{"foo": 1234, "bar": "asdf"}' | npm start prefix
License
This library is licensed under the MIT license.