https://github.com/idiocc/koa
The Koa2 Fork Optimized With Google Closure Compiler That Has Just 1 Dependency (mime-db).
https://github.com/idiocc/koa
Last synced: about 1 year ago
JSON representation
The Koa2 Fork Optimized With Google Closure Compiler That Has Just 1 Dependency (mime-db).
- Host: GitHub
- URL: https://github.com/idiocc/koa
- Owner: idiocc
- License: agpl-3.0
- Created: 2019-05-12T15:20:52.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-12-21T05:57:03.000Z (over 6 years ago)
- Last Synced: 2025-03-17T09:50:21.514Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://www.idio.cc
- Size: 673 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# @goa/koa
[](https://www.npmjs.com/package/@goa/koa)
`@goa/koa` is the [Koa web-sever](https://koajs.com) 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_](https://contexttesting.com) 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
```sh
yarn add @goa/koa
```
```sh
npm install @goa/koa
```
This package actually compiles the [Goa Source Code](https://github.com/idiocc/goa). You can find all the documentation on that package's page.
## Table Of Contents
- [Table Of Contents](#table-of-contents)
- [API](#api)
* [`constructor(options=)`](#constructoroptions-applicationoptions-application)
- [Copyright & License](#copyright--license)
## API
The package is available by importing its default class:
```js
import Goa from '@goa/koa'
```
### constructor(
`options=: ApplicationOptions,`
): Application
Creates a new app instance.
- options ApplicationOptions (optional): Options to create an application.
SourceOutput
```js
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()
})
```
```js
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](https://github.com/koajs/koa) by its authors under MIT License found in [Goa's Source Code](https://github.com/idiocc/goa/blob/master/COPYING) repository.
© Art Deco for Idio 2019
Tech Nation Visa Sucks