パッケージの詳細

@typedefs/goa

idiocc111MIT0.1.5

JSDoc typededs for @goa/goa

readme

@goa/koa

npm version

This is the source code for the @goa/koa repository that actually compiles this source code. Please navigate there for the documentation.

Compiled Source Code In 2400 lines.

@goa/goa 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 old-school NPM packages, including starting to use import/export statements without Babel, restoring to pure JSDoc without TypeScript, and compiling the code into a 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 to be used in the original repository).

yarn add @goa/goa

Table Of Contents

Goa

Goa is the same application as Koa. It has the same interface for the app object, as well as context, request and response API.

SourceOutput
js import Goa from '@goa/goa' const app = new Goa() app.use((ctx) => { ctx.body = 'hello world' }) hello world

Types

The types detailed information can be found <kbd>📙 in Wiki</kbd>. The Koa documentation can be found on its page.

Packages

Koa dependencies as packages had to be rewritten in ES6. Some of them were created as separate packages, and some were included in the source code (repository) in the modules directory.

<summary>Show included modules (updated to ES6 and annotated for Node.JS Compiler). </summary> | Dependency | Type | | --------------------- | ------ | | cache-content-type | module | | content-disposition | module | | delegates | module | | ee-first | module | | error-inject | module | | escape-html | module | | fresh | module | | http-assert | module | | koa-is-json | module | | on-finished | module | | only | module | | parseurl | module |

The external modules were created with tests also written to ensure their source and compiled versions work as expected.

Dependency Dep Description
@goa/accepts dev Higher-Level Content Negotiation.
@goa/content-type dev Create and parse HTTP Content-Type header according to RFC 7231.
@goa/cookies dev Signed And Unsigned Cookies Based On Keygrip.
@goa/is-generator-function dev Checks If The Function Is An ES6 Generator.
@goa/mime-types dev The Ultimate Javascript Content-Type Utility.
@goa/negotiator dev HTTP Content Negotiation.
@goa/type-is dev Infer The Content-Type Of A Request.
@goa/vary dev Manipulate The HTTP Vary header.
@goa/compose dev Compose a single middleware function for Goa out of many.
@goa/http-errors dev Creates HTTP Errors For Goa Apps.
@goa/statuses dev HTTP status utility..
@idio/debug dev Log Debugging Information.
mime-db prod Required for @goa/mime-types, @goa/accepts and @goa/type-is.

Tests

The tests were updated for context testing and include all original Koa tests.

<kbd>✅ View 326 tests</kbd>

Copyright & License

GNU Affero General Public License v3.0

Original work on the Koa Web Server by its authors under MIT License found in COPYING.

Art Deco © Art Deco for Idio 2019 Idio Tech Nation Visa Tech Nation Visa Sucks

更新履歴

21 December 2019

0.1.5

  • [feature] Application options.

0.1.4

  • [package] add typedefs field.

19 December 2019

0.1.2

  • [typedef] Add the typedef.json to the list of files.

0.1.1

  • [typedef] Add the typedef.json file.

0.1.0

  • [vendor] Vendor proper cookies and accepts.

26 July 2019

0.0.5

  • [feature] Upgrade Typal and Documentary for various fixes (mainly examples indentation).

21 Jul 2019

  • in types, point to the correct entry.
  • update vendor cookies