0.1.9 • Published 2 years ago

z0k v0.1.9

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

zok

ZOK is a snakyJs utility that allows developers to express and validate the structure of their data in zod schemas.

Install

# yarn
yarn add z0k

# npm
npm install z0k

Usage

  1. Describe the schemas with zod under the src folder in schemas.ts
  2. Build your zkDapp yarn build
  3. Executing the ZOD
# Generate a file for every zod schema in schemas.ts
yarn z0k 

# Change base schemas path
yarn z0k file_name 

# Specifying a single schema in schemas.ts
yarn z0k file_name zod_schema_case
  1. Import the generated Structs into you ZkDapp
import zod_schema_case from "structs/file_name.ts"

Example

// src/schemas.ts
import { z } from 'zod';

export const FieldStruct = z.object({
    f: z.number().lt(10),
    g: z.number().gt(0),
    h: z.number().lte(5),
    i: z.number().gte(0),
}).describe('Benchmark schema definitions')
// generated struct > src/structs/FieldStruct.ts 
import { Field } from 'snarkyjs';
export class FieldStruct extends Struct({
    f: Field,
    g: Field,
    h: Field,
    i: Field
}) {
    constructor(f: Field, g: Field, h: Field, i: Field) {
        super({ f, g, h, i });
        this.check();
    }
    public check() {
        this.f.assertLessThan(10, "f must be less than 10")
        // exclusive minimum
        this.g.assertGreaterThan(0, "g must be greater than 0")
        this.h.assertLessThanOrEqual(5, "h must be less or equal than 5")
        this.i.assertGreaterThanOrEqual(0, "i must be greater or equal than 0")
    }
}
// src/main.ts
import FieldStruct from './structs/FieldStruct'; 

const field = new FieldStruct(
  Field(1),
  Field(99),
  Field(1),
  Field(1),
);

You can find a list off cases at our mina test zdapp


Default entry file

src/schemas.ts

Supported types

zod typezod restraintsnarky type
z.number().min() .max() .gt() .lt() .lte() .gte()Field
z.date().min() .max()Field
z.bool()Bool
0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.24

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago