3.11.4-2 • Published 18 days ago

koatty v3.11.4-2

Weekly downloads
177
License
BSD-3-Clause
Repository
github
Last release
18 days ago

koatty

Koa2 + Typescript + IOC = koatty.

Use Typescript's decorator implement IOC and AOP.

Version npmnpm Downloads

New features

  • HTTP、HTTPS、HTTP2、gRPC、WebSocket server.
  • Support loading environment configuration, parsing command line parameters (process.argv) and environment variables (process.env)
  • @ExceptionHandler() Register global exception handling
  • graceful shutdown and pre-exit event
  • custom decorator based on app events

Documentation

koatty_doc_CN (In progress💪)

Installation CLI tools

npm i -g koatty_cli

Quick Start

1.Create Project

kt new projectName

2. Install deps

cd ./projectName

npm i

3. Start up

npm run dev

// or
npm start

Code style

default Controller:

import { Controller, Autowired, GetMapping, RequestBody, PathVariable,
 PostMapping, RequestMapping, RequestMethod, Valid, Output } from "koatty";
import { TestDTO } from "../model/dto/TestDTO";
import { TestService } from "../service/TestService";
import { App } from "../App";

@Controller()
export class IndexController {
    app: App;
    ctx: KoattyContext;

    @Autowired()
    private testService: TestService;

    /**
     * constructor
     *
     */
    constructor(ctx: KoattyContext) {
        this.ctx = ctx;
    }

    @RequestMapping("/:name", RequestMethod.ALL)
    async default(@PathVariable("name") @Valid("IsNotEmpty") name: string) {
        try {
            const info = await this.testService.sayHello(name);
            return Output.ok(this.ctx, "success", info);
        } catch (err: Error) {
            return Output.fail(this.ctx, err.message));
        }
    }

    @PostMapping("/test")
    @Validated() //need DTOClass
    test(@RequestParam() params: TestDTO) {
        return Output.ok(this.ctx, "test", params);
    }
}

How to do Unit Testing

only support jest UT framework now

import request from 'supertest';
import { ExecBootStrap } from 'koatty';
import { App } from '../src/App';

describe('UT example', () => {

  let server: any;
  beforeAll(async () => {
    jest.useFakeTimers();
    const appInstance = await ExecBootStrap()(App);
    server = await appInstance.listen();
  });

  afterAll(done => {
    server.close();
    done();
  });

  it('request', async () => {
    const rsp = await request(server).get('/');
    expect(rsp.status).toBe(200);
  });
});

How to debug

if you use vscode , edit the .vscode/launch.json , like this:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "TS Program",
            "args": [
                "${workspaceRoot}/src/App.ts" 
            ],
            "runtimeArgs": [
                "--nolazy",
                "-r",
                "ts-node/register"
            ],
            "sourceMaps": true,
            "cwd": "${workspaceRoot}",
            "protocol": "inspector",
            "outputCapture": "std",
            "internalConsoleOptions": "neverOpen"
        }
    ]
}

Select TS Program to debug run. Try to call http://localhost:3000/ .

Example

Check out the quick start example.

3.11.4-2

18 days ago

3.11.4-1

1 month ago

3.11.4-0

2 months ago

3.11.3

2 months ago

3.11.2

3 months ago

3.11.2-8

4 months ago

3.11.2-7

4 months ago

3.11.2-6

4 months ago

3.11.2-5

4 months ago

3.11.2-3

4 months ago

3.11.2-2

4 months ago

3.11.2-1

4 months ago

3.11.2-0

4 months ago

3.11.0

4 months ago

3.11.1

4 months ago

3.10.4-5

4 months ago

3.10.4-4

4 months ago

3.10.4

4 months ago

3.10.4-3

5 months ago

3.10.4-2

5 months ago

3.10.4-1

5 months ago

3.10.4-0

5 months ago

3.10.3

5 months ago

3.10.3-0

5 months ago

3.10.1

6 months ago

3.10.0

6 months ago

3.10.2

6 months ago

3.10.2-4

6 months ago

3.10.2-3

6 months ago

3.10.2-0

6 months ago

3.10.2-2

6 months ago

3.10.2-1

6 months ago

3.9.5

8 months ago

3.9.3

9 months ago

3.9.2

9 months ago

3.9.4

8 months ago

3.9.1-2

9 months ago

3.9.1-3

9 months ago

3.9.1-0

9 months ago

3.9.1-1

9 months ago

3.9.1

9 months ago

3.8.3

12 months ago

3.8.2

1 year ago

3.7.9

1 year ago

3.7.8

1 year ago

3.7.7

1 year ago

3.7.6

1 year ago

3.8.0-6

1 year ago

3.8.0-0

1 year ago

3.8.0-1

1 year ago

3.8.0-2

1 year ago

3.8.0-3

1 year ago

3.8.0-4

1 year ago

3.8.0-5

1 year ago

3.7.1

1 year ago

3.7.0

2 years ago

3.7.4

1 year ago

3.7.3

1 year ago

3.7.2

1 year ago

3.6.10

2 years ago

3.6.10-0

2 years ago

3.6.10-1

2 years ago

3.6.9

2 years ago

3.6.8

2 years ago

3.6.8-0

2 years ago

3.6.8-2

2 years ago

3.6.7

2 years ago

3.6.6

2 years ago

3.6.5

2 years ago

3.6.4

2 years ago

3.6.3

2 years ago

3.5.12-1

2 years ago

3.5.12-0

2 years ago

3.5.12-3

2 years ago

3.5.12-2

2 years ago

3.6.0-0

2 years ago

3.6.0-1

2 years ago

3.5.14

2 years ago

3.5.12

2 years ago

3.5.11

2 years ago

3.5.10

2 years ago

3.5.16

2 years ago

3.5.15

2 years ago

3.6.2

2 years ago

3.6.0

2 years ago

3.5.3

2 years ago

3.5.2

2 years ago

3.5.7

2 years ago

3.5.5

2 years ago

3.5.9

2 years ago

3.4.10

2 years ago

3.4.12

2 years ago

3.4.4

2 years ago

3.4.2

2 years ago

3.4.8

2 years ago

3.4.6

2 years ago

3.3.8

2 years ago

3.3.7

3 years ago

3.3.6

3 years ago

3.3.4

3 years ago

3.3.3

3 years ago

3.3.1

3 years ago

3.3.2

3 years ago

3.3.0

3 years ago

3.2.12

3 years ago

3.2.11

3 years ago

3.2.10

3 years ago

3.2.7

3 years ago

3.2.6

3 years ago

3.2.4

3 years ago

3.2.2

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.0.14

3 years ago

3.1.0

3 years ago

3.0.12

3 years ago

3.0.9

3 years ago

3.0.8

3 years ago

3.0.7

3 years ago

3.0.6

3 years ago

3.0.4

3 years ago

3.0.0

3 years ago

2.6.8

3 years ago

2.6.7

3 years ago

2.6.6

3 years ago

2.6.5

3 years ago

2.6.3

3 years ago

2.6.4

3 years ago

2.6.2

3 years ago

2.5.12

4 years ago

2.5.11

4 years ago

2.5.10

4 years ago

2.5.8

4 years ago

2.5.7

4 years ago

2.5.6

4 years ago

2.5.5

4 years ago

2.5.4

4 years ago

2.5.3

4 years ago

2.5.2

4 years ago

2.5.1

4 years ago

2.5.0

4 years ago

2.4.0

4 years ago

2.3.5

4 years ago

1.22.3

4 years ago

2.3.4

4 years ago

2.3.3

4 years ago

1.22.2

4 years ago

2.3.2

4 years ago

2.3.1

4 years ago

1.22.1

4 years ago

1.21.4

4 years ago

1.21.3

4 years ago

2.3.0

4 years ago

2.2.2

4 years ago

1.22.0

4 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.1.0

4 years ago

2.0.2

4 years ago

2.0.4

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.21.2

4 years ago

1.21.1

4 years ago

1.21.0

4 years ago

1.20.19

4 years ago

1.20.20

4 years ago

1.20.18

4 years ago

1.20.17

4 years ago

1.20.16

4 years ago

1.20.15

4 years ago

1.20.14

4 years ago

1.20.13

4 years ago

1.20.12

4 years ago

1.20.11

4 years ago

1.20.10

4 years ago

1.20.9

4 years ago

1.20.8

4 years ago

1.20.7

4 years ago

1.20.5

4 years ago

1.20.4

4 years ago

1.20.3

4 years ago

1.20.2

4 years ago

1.20.1

4 years ago

1.20.0

4 years ago

1.19.3

4 years ago

1.19.2

4 years ago

1.19.0

4 years ago

1.18.12

4 years ago

1.18.11

4 years ago

1.18.10

4 years ago

1.18.9

4 years ago

1.18.8

4 years ago

1.18.7

4 years ago

1.18.6

4 years ago

1.18.5

4 years ago

1.18.2

4 years ago

1.18.1

4 years ago

1.18.0

4 years ago

1.17.7

4 years ago

1.17.6

4 years ago

1.17.4

4 years ago

1.17.3

4 years ago

1.17.2

4 years ago

1.17.0

4 years ago

1.16.0

4 years ago

1.15.4

4 years ago

1.15.3

4 years ago

1.15.2

4 years ago

1.15.1

4 years ago

1.15.0

4 years ago

1.14.10

4 years ago

1.14.9

4 years ago

1.14.8

4 years ago

1.14.6

4 years ago

1.14.5

4 years ago

1.14.4

4 years ago

1.14.1

4 years ago

1.14.0

4 years ago

1.14.2

4 years ago

1.13.2

4 years ago

1.13.3

4 years ago

1.12.11

4 years ago

1.13.0

4 years ago

1.12.10

4 years ago

1.12.9

4 years ago

1.12.8

4 years ago

1.12.7

4 years ago

1.12.6

4 years ago

1.12.5

4 years ago

1.12.4

4 years ago

1.12.3

4 years ago

1.12.2

4 years ago

1.12.1

4 years ago

1.12.0

4 years ago

1.11.2

4 years ago

1.11.1

4 years ago

1.11.0

4 years ago

1.10.1

4 years ago

1.10.0

4 years ago

1.9.1

4 years ago

1.9.0

4 years ago

1.8.1

4 years ago

1.8.0

4 years ago

1.7.5

4 years ago

1.7.4

4 years ago

1.7.3

4 years ago

1.7.2

4 years ago

1.7.0

4 years ago

1.6.13

4 years ago

1.6.12

4 years ago

1.6.10

4 years ago

1.6.8

4 years ago

1.6.7

4 years ago

1.6.6

4 years ago

1.6.5

4 years ago

1.6.3

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.0

5 years ago

1.4.6

5 years ago

1.4.5

5 years ago

1.4.4

5 years ago

1.4.3

5 years ago

1.4.2

5 years ago

1.4.0

5 years ago

1.3.14

5 years ago

1.3.12

5 years ago

1.3.10

5 years ago

1.3.9

5 years ago

1.3.8

5 years ago

1.3.4

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago