Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

tsgonest/tsgonest

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

179 Commits
179 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tsgonest

tsgonest

Drop-in NestJS compiler. Validates, serializes, and documents your API — from plain TypeScript types.

Release CI License npm


tsgonest replaces tsc, class-validator, class-transformer, and @nestjs/swagger with a single build step. Write your types, run tsgonest build, and get validation, fast JSON serialization, and OpenAPI 3.2 — all generated at compile time.

export interface CreateUserDto {
  name: string & tags.Trim & tags.Min<1> & tags.Max<255>;
  email: string & tags.Email;
  age: number & tags.Min<0> & tags.Max<150>;
}

@Controller('user')
export class UserController {
  @Post()
  createUser(@Body() body: CreateUserDto) {
    // body is validated at compile time — no pipes, no interceptors
  }
}
npx tsgonest build

Why

  • ~10x faster compilation via typescript-go
  • Zero runtime overhead — validation and serialization are injected at compile time
  • Zero decorators — OpenAPI generated from static analysis, not @ApiProperty()
  • Drop-in — works with existing NestJS projects, no ts-patch or plugins

Install

# Migrate from class-validator / nestia (recommended)
npx tsgonest@latest migrate

# Or install manually
pnpm install tsgonest @tsgonest/runtime @tsgonest/types

CLI

tsgonest build                  # production build
tsgonest dev                    # watch + auto-restart
tsgonest check                  # type check (no emit)
tsgonest check --watch          # continuous checking
tsgonest openapi                # generate OpenAPI only
tsgonest openapi --name public  # specific output
tsgonest sdk                    # generate typed client SDK
tsgonest migrate                # codemod migration

Constraints

Annotate with branded types (@tsgonest/types) or JSDoc — both can be mixed.

import { tags } from '@tsgonest/types';

export interface CreateUserDto {
  name: string & tags.Trim & tags.MinLength<1> & tags.MaxLength<255>;
  email: string & tags.Email & tags.Error<'Please provide a valid email'>;
  age: number & tags.Min<0> & tags.Max<150> & tags.Type<'int32'>;
  score?: number & tags.Default<0>;
  tags: string[] & tags.MinItems<1> & tags.UniqueItems;
}

32 built-in formats (email, uuid, url, ipv4, date-time, jwt, ...), numeric types (int32, uint32, float, ...), custom validators via tags.Validate<typeof fn>, and custom error messages via tags.Error<"msg">.

Full constraint reference

Packages

Package Description
tsgonest CLI + compiler
@tsgonest/runtime defineConfig, TsgonestValidationError, Returns, FormDataBody, EventStream
@tsgonest/types Branded phantom types — tags.Email, tags.Min, tags.Trim, etc.

Platform support

macOS (ARM64, x64) / Linux (x64, ARM64 — static, works on glibc + musl) / Windows (x64, ARM64)

Sponsors

Gold Sponsor

Tixio

Tixio
Stop wasting time and money on slack jira clickup and 10+ other tools, get tixio instead. use code `tsgonest` for 20% discount


Become a sponsor

Documentation

tsgonest.dev

Acknowledgments

  • typescript-go — Microsoft's Go port of TypeScript
  • typia — Pioneered type-driven validation; tsgonest's branded types are inspired by typia
  • nestia — Decorator-free NestJS validation and OpenAPI via typia
  • tsgolint — Established the shim pattern for accessing tsgo internals

Contributing

See CONTRIBUTING.md.

License

MIT

About

a typescript compiler for nestjs that does validation, openapi, sdk and more

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.