Repository
Current version released
3 years ago
This project is currently experimental and may not work properly! If you find any bug, please write an issue.
DAR
A TypeScript Decorator based API router for Deno.
Key Features • Introduction • How To Use • Example • Credits • License
Key Features
- Typescript with Decorators
- Made for Deno
- works with Deno Deploy
- Lightweight
- Zero third party dependencies (only std & my own modules (x/vade))
- Highly customizable
- Controller nesting (using
@Include()
) - Native URLPattern routing
Introduction
DAR (formerly Pterosaur) stands for “Decorator based API Router” and is aimed to be used as a REST API Server, which primarily uses JSON data. It is built to support Deno Deploy.
How To Use
DAR is available via Deno’s Thrid Party Modules.
import { ... } from 'https://deno.land/x/dar/mod.ts';
Create a simple controller class.
@Controller()
class SomeClass {
// Methods here
}
Create a simple get method.
@Get()
someMethod() {
return { success: true }
}
Create the application
const app: Application = new Application({
controller: [SomeClass],
});
And register the handler. We use Deno’s Standard Library
await serve((request: Request) => app.handle(request), { port: 8080 });
And all together
import { ... } from 'https://deno.land/x/dar/mod.ts';
@Controller()
class SomeClass {
@Get()
someMethod() {
return { success: true }
}
}
const app: Application = new Application({
controller: [SomeClass],
});
await serve((request: Request) => app.handle(request), { port: 8080 });
Run the example
$ deno run --allow-net https://deno.land/x/dar/examples/basic.ts
Known issues
- Include decorator not working in Deno Deploy. Need to use controller options to nest controllers!
You may also like…
- Alosaur - Another decorator based router
Credits
This software uses the following open source projects:
License
MIT