express-class

⌨ TypeScript decorator powered express apps.

Usage no npm install needed!

<script type="module">
  import expressClass from 'https://cdn.skypack.dev/express-class';
</script>

README

express-class

⌨ TypeScript decorator powered express apps.

example

import { NextFunction, Request, Response } from 'express';
import { get, start, use, resolver } from 'express-class';

// these only need to be loaded. Not instantiated
@resolver('')
class main {
    @get('/')
    req(_req: Request, res: Response, _next: NextFunction) {
        res.status(200);
        res.json({
            e: 'e',
        });
    }

    @get('/hi')
    req2(_req: Request, res: Response, _next: NextFunction) {
        res.status(200);
        res.json({
            msg: 'hello, world!',
        });
    }

    @use()
    mid(req: Request, res: Response, next: NextFunction) {
        console.log(res.statusCode);
        console.log(`running ${req.url}`);

        next();
    }

    @use('/hi', '/api/hi')
    hi(req: Request, res: Response, next: NextFunction) {
        console.log('saying hi');

        next();
    }
}

@resolver('/api')
class resolver2 {
    @get('/hi')
    api(_req: Request, res: Response, _next: NextFunction) {
        res.send('hi');
    }
}

start(8080, () => console.log('started on http://localhost:8080'));