An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# @goa/koa

[![npm version](https://badge.fury.io/js/%40goa%2Fkoa.svg)](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

@Goa/Koa Compiled Source 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


© Art Deco for Idio 2019


Idio




Tech Nation Visa


Tech Nation Visa Sucks