Package Exports
- odi
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (odi) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TypeScript framework for creating enterprise-grade (web) applications with simple and minimalistic API, that allows you to focus on business logic. Based on declarative and imperative programming, inspiried by ASP.NET / Spring.
Check Docs for more details.
Odi provides feature set for creation of easy supportable and scalable web applications.
Features Overview:
- MVC
- Full-typed DI / IoT
- Authentication
- WebSockets
- TypeORM integration
- GraphQL
- AOP
- SSR
For future updates check Roadmap
🚀 Getting Started
Install npm package
npm install odi --saveInstall reflect-metadata
npm install reflect-metadata --saveImport reflect-metadata (for example in
index.ts):
import "reflect-metadata";Enabled the following settings in
tsconfig.json"emitDecoratorMetadata": true, "experimentalDecorators": true
🌪 Example
import { Controller, IController, Post, Get, Autowired } from "odi";
import { TodoService } from "./todo.service";
import { TodoDTO } from "./todo.dto";
@Controller()
export class TodoController extends IController {
@Autowired()
todoService: TodoService;
@Get index() {
return `Hello, ${this.request.ip}`;
}
@Post async save(toDo: TodoDTO) {
await this.todoService.save(toDo);
}
@Get async '/:id' (id: string) {
const todo = await this.todoService.find(id);
if(!todo)
throw NotFound;
return todo;
}
}