Ts.ED Framework
for Node.js and TypeScript

Build your awesome server-side application.   #Decorators#Rest API#DI#Controller #Decorators

Why Ts.ED?

Ts.ED is a Node.js Framework on top of Express/Koa.js. Written in Typescript, it helps you build your server-side application easily and quickly. If you want to start a complete out-of-the-box project or fully customize it yourself, Ts.ED will guide you there !

Rest API

Create your Rest API easily and create different version paths of your API compliant with OpenSpec and JsonSchema.

Configuration

Don't waste your time with configuration, the server is preconfigured to start quickly! Try our CLI.

Plugins

Choose between different plugins to create your own stack.

Class based

Define class as Controller, Model, Providers (DI), Pipes, Middlewares, etc...

Decorators

A lot of decorators are provided to structure your code and define routes and methods.

Testing

To test or not to test? isn't a question. Ts.ED embeds some features to test your code! See more.

Preview

See in our live demo what Ts.ED looks like, without leaving your personal browser.

Here are some of the libraries and technologies that we use or support with this framework

What's new ?

# v6.26.0


# v6.25.0

  • schema: Add Nullable decorator to declare nullable field.

# v6.24.0

  • formio: Add new @tsed/formio package (pre-release).

# v6.23.0


# v6.22.0


# v6.21.0

  • Add x-request-id header to each response.
  • Add documentation over Ts.Logger. See Logger page.

# v6.20.1


# v6.20.0

  • Add @tsed/stripe package. See our documentation.
  • Add @RawBodyParams decorator.

# v6.19.0

  • Add @tsed/oidc-provider package. See our documentation.
  • Add ctx.request.secure property to check if the request is secure.

# v6.18.0

  • Catch passport errors and transform it to Exception.
  • Remove x-powered-by header in production profile.
  • Add @tsed/adapters package. This package will be used by @tsed/oidc-provider.

# v6.17.0


# v6.16.0

Ts.ED uses Ajv 7.

If you use:

import * as Ajv from "ajv"
1

You have to replace it with:

import Ajv from "ajv"
1

# v6.14.1

Fix typings issue with mongoose.

Since mongoose v5.11.0, the module expose his own file definition and can broke your build! To solve it, install latest version of mongoose and @tsed/mongoose modules then remove the @types/mongoose dependencies.


# v6.14.0

Example:

import {array, number, object, Returns, Schema, string} from "@tsed/schema";

const ProductSchema = object({
  id: string().required().description("Product ID"),
  title: string().required().minLength(3).example("CANON D300").description("Product title"),
  price: number().minimum(0).example(100).description("Product price"),
  description: string().description("Product description"),
  tags: array()
    .minItems(1)
    .items(string().minLength(2).maxLength(10).description("Product tag"))
    .description("Product tags")
})
  .label("ProductModel");
1
2
3
4
5
6
7
8
9
10
11
12
13

# v6.11.0

For decorator allows conditional JsonSchema depending on the JsonSchema/Swagger version:

@For(SpecTypes.JSON, oneOf(string(), array().items(string()).maxItems(2)))
@For(SpecTypes.OPENAPI, array().items(string()).maxItems(2))
@For(SpecTypes.SWAGGER, array().items(string()).maxItems(2))
1
2
3

Our awesome contributors

    Support us

    Ts.ED is under MIT-license and is an open-source project. Many thanks to our sponsors, partners and backers who contribute to promote and support our project!

    Premium sponsors

    They use it

    Our backers

      Sponsors