Skip to content

aeberdinelli/schemy-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schemy is an extremely simple, lightweight yet powerful schema validation library. Perfect for lightweight-oriented projects like cloud functions where size and speed are key features. It weights less than 18 KB!

  • This is the TypeScript version of Schemy.

Missing features

All features are shared with the main version, except for the short-style declaration:

// This is not available :(
const schema = new Schemy({
    name: String
});

// You need to declare it like this
const schema = new Schemy({
    name: { type: String }
});

Unique features

Available only in the TS version

// Schemy needs to be imported this way
import { Schemy } from 'schemy-ts';

// For the following examples we are using the following type
type User = {
    name: string;
    age: number;
};

Create typed schema

Use this to make sure you declare all the properties in the schema for your Type:

// This will give an error because `age` is defined in the type but not in the schema
const UserSchema = Schemy.schema<User>({
    name: { type: String }
});

Create strict typed schema

This is just the same as the typed schema but the resulting Schemy instance will be strict.

// You can also do this to make the schema strict
const UserSchema = Schemy.strict<User>({
    name: { type: String }
});

Validate and return typed body

You can validate and return the body with the specified type. This works extremely well with VS Code intellisense.

const user: User = await Schemy.validate<User>({ name: 'schemy' });

Return typed body

This is similar to the previous example, but in this case you are not validating. You're just returning the last validated input.

const user: User = Schemy.getBody<User>();

And more...

To see all the features, please visit the Schemy wiki.

About

A Schemy version with TypeScript support, it's a separated project to keep some backwards compatibility issues away.

Resources

Stars

Watchers

Forks