Skip to content

Fowindev/grin-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grin-server

grin-server is a small, lightweight express-wrapper that uses TypeScript decorators and metadata.

Installation

With NPM: npm install --save grin-server

With YarnPKG: yarn add grin-server

Usage

index.ts

# index.ts
import { build } from 'grin-server';
import express from 'express';
import { App } from './App';

const bootstrap = async () => {
    let app: express.Application = build(App);
    
    app.listen(3000);
};

bootstrap();

App.ts

# App.ts
import { Server } from 'grin-server';
import helmet from 'helmet';
import Cats from './controllers/Cats';

@Server({
    controllers: [Cats],
    middlewares: [helmet()], # Express Middlewares
})
export class App {}

controllers/Cats.ts

import { Controller, Get } from 'grin-server';
import express from 'express';

let cats = [
  "Albert",
  "Moustache"
];

@Controller('/cats')
export class Cats {
    @Get('/')
    fetchCats(_: express.Request, res: express.Response) {
        res.json(cats);
    }
}