Skip to content
Alosaur - Deno web framework with many decorators
TypeScript
Branch: master
Clone or download
Latest commit f816cce Sep 13, 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 fix types Aug 1, 2019
src Update to v0.17.0 Sep 9, 2019
.gitignore add project Mar 30, 2019
.travis.yml
LICENSE Initial commit Mar 29, 2019
README.md add tot Sep 13, 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
    • @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 GraphQl

  • Add WebSocket

  • 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.