@goa/koa
@goa/koa
is the Koa web-sever compiled and optimised with Google Closure Compiler so that it has only 1 dependency (mime-db
, for easy access to upgrades). The types are written as JSDoc and don't require installing typings. The aim of this project is to demonstrate how to modernise the old-school NPM package making, including starting to use import/export statements without Babel, restoring to pure JSDoc without TypeScript, and compiling the code into the single executable using the compiler, and testing the code with Zoroaster testing framework which is twice as fast and weighs 500KB against 50MB compared with Jest (as used in the original repository).
@Goa/Koa Source Code Is ~2000 Lines Of Code | |
---|---|
![]() | |
Yarn Install | NPM Install |
yarn add @goa/koa |
npm install @goa/koa |
This package actually compiles the Goa Source Code. You can find all the documentation on that package's page.
Table Of Contents
API
The package is available by importing its default class:
import Goa from '@goa/koa'
constructor(
options=: ApplicationOptions,
): Application
Creates a new app instance.
-
options
ApplicationOptions
(optional): Options to create an application.
Source | Output |
---|---|
import aqt from '@rqt/aqt'
import Goa from '@goa/koa'
const goa = new Goa()
goa.use(async (ctx, next) => {
ctx.body = 'Hello World'
ctx.status = 201
ctx.message = 'example'
await next()
})
goa.listen(3000, async function() {
const url = `http://localhost:3000`
console.log(url, '\n')
const res = await aqt(url)
console.log(res)
this.close()
}) |
http://localhost:3000
{ body: 'Hello World',
headers:
{ 'content-type': 'text/plain; charset=utf-8',
'content-length': '11',
date: 'Sat, 21 Dec 2019 05:10:34 GMT',
connection: 'close' },
statusCode: 201,
statusMessage: 'example' } |
Copyright & License
GNU Affero General Public License v3.0
Original work on the Koa Web Server by its authors under MIT License found in Goa's Source Code repository.
![]() |
© Art Deco for Idio 2019 |
|
![]() |
Tech Nation Visa Sucks |
---|