ts-shift

0.1.17 • Public • Published

ts-shift

ts-shift generates efficient, TypeScript-friendly value validators from TypeScript types.

Installation

npm install -D ts-shift # npm
yarn add -D ts-shift # yarn
pnpm add -D ts-shift # pnpm

Example: validating incoming requests

Say you're building a POST endpoint for user sign-up. Define a request type in TypeScript:

// api/create-user-request.ts
export type CreateUserRequest = {
  email: string;
  password: string;
};

Run ts-shift to generate validators:

ts-shift api/create-user-request.ts -o types/create-user-request.ts

Then, simply do:

import { CreateUserRequest } from './types/create-user-request';

async function (req: Request) {
  const body = CreateUserRequest.create(req.body);
  // ...
}

Now, any invalid payload will throw an error, and additional properties will be stripped out. If a user tries to add "admin": true, it won't make it through anymore.

Why you should use it

✅ Zero dependencies

✅ No runtime reflection

✅ Handles complex types thanks to TypeScript's own type resolver

✅ Generated code that you can understand

Status

This package was created in November 2021. It's lacking some tests, but you can use it in production already. Simply review the generated code as if a co-worker had written it!

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i ts-shift

Weekly Downloads

1

Version

0.1.17

License

MIT

Unpacked Size

41.9 kB

Total Files

17

Last publish

Collaborators

  • fwouts