Skip to content
Alosaur - Deno web framework with many decorators
Branch: master
Clone or download
Latest commit 56f54d9 Jul 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode update deno-vscode plugin May 26, 2019
docs fix typo Jun 19, 2019
examples Add Docker example (#3) Jun 19, 2019
src update sort lines Jul 16, 2019
.gitignore add project Mar 30, 2019
.travis.yml Update travis deno to v11 Jul 9, 2019
LICENSE Initial commit Mar 29, 2019
README.md fix typo Jul 22, 2019
package-lock.json fix area in ControllerMetadataArgs not required Jun 4, 2019
package.json change license Jun 18, 2019
test.sh Add injectable to Controllers Jun 6, 2019
tsconfig.json update deno-vscode plugin May 26, 2019

README.md

Alosaur 🦖

Alosaur - Deno web framework 🦖.

Build Status

  • Area - these are the modules of your application.
  • Controller - are responsible for controlling the flow of the application execution.
  • Middlware - provide a convenient mechanism for filtering HTTP requests entering your application.
  • Decorators - for query, cookie, parametrs, routes and etc.
  • Dependency Injection - for all controllers by default from microsoft/TSyringe (more about alosaur injection)

Documentation


Simple example:

Controller:

import { 
  Controller,
  Content,
  Get,
  Area,
  App,
} from 'https://deno.land/x/alosaur/src/mod.ts'

@Controller('/home')
export class HomeController {
  @Get('/text')
  text() {
    return Content("Hello world");
  }
  @Get('/json')
  json() {
    return Content({"text":"test"});
  }
}

// Declare module
@Area({
  controllers: [HomeController]
})
export class HomeArea {
}

// Create alosaur application
const app = new App({
  areas: [HomeArea]
});

app.listen();

tsconfig.app.json:

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

And run

deno run -A --config ./src/tsconfig.app.json app.ts


TODO

  • Add render views: dejs
  • Add return value JSON
  • Add decorators:
    • @Area
    • @QueryParam
    • @Param param from url: /:id
    • @Body
    • @Cookie
    • @Req
    • @Res
    • @Middleware with regex route
    • @EnableCors for actions with custom policy: (example)
    • @Cache Cache to actions {duration: number} number in ms
  • Add middleware
  • Add static middleware (example: app.useStatic)
  • Add CORS middleware
  • Add DI
  • Add std exceptions
  • Add CI with minimal tests. (see this comment)
  • Add WebSocket (waiting deno_std#443)
  • Add validators example class-validator
  • Add microservice connector with wasm
  • Add benchmarks
  • Transfer to Alosaur github organization
  • Add docs and more examples ;)

Plugins & modules

  • Add angular template parser
  • Add CLI with schematics (alosaur/cli)
  • Add validator decorators
  • Add porting TypeORM to deno

Examples

  • Add basic example
  • Add di example
  • Add static serve example
  • Add dejs view render example
  • Add example with sql drivers (postgres)
  • Add basic example in Docker container
  • Add websockets example
  • Add example with wasm
You can’t perform that action at this time.