npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@goa/goa

v1.6.1

Published

The Goa Source Code For Compilation Into @Goa/Koa That Includes Modules, Tests, Types And Dependencies.

Downloads

58

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.

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

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 📙 in Wiki. 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.

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

View 326 tests

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.