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

koach

v0.0.3

Published

Functional middleware composition + React-like component classes => modular composable Node web framework

Downloads

6

Readme

Koach

Greenkeeper badge Build Status

A piecewise API framework for Node.js

Declarative React-like component model meets Koa middleware function composition 😱

Contributing

This project is still young and actively developed. If you want to show some ❤️, feel free to submit GitHub issues and pull requests!

Motivation and Design

Koach provides a powerful component model and a declarative way to express those components and their composition. It is an attempt to formalize many of the conventions and patterns common in Node middlewares. The foundational building blocks are Koa-style middleware functions.

A good component model enables composition. With Koach, a monolithic API can instead be expressed as a hierarchical composition of components and subcomponents. A carefully composed API makes it easy to break off independent pieces into their own dedicated microservices (I.e. separate repo, deployment, etc.) when the time is right.

Installation

$ yarn add koach
or
$ npm i koach

Usage

The simplest way to get started with Koach

import Koach, { Component, Router } from 'koach'

class App extends Component {
  compose() {
    return Router.spec()
      .get('/', ctx => ctx.body = 'Hello World!')
  }
}

// register our shiny new App component
Koach.registerComponent('App', () => App)

// listen on port 3000
Koach.listen(3000)

Getting Started

Koach in a nutshell:

  • Define components by overriding compose(), returning either:
    • a Koa-style middleware function
    • a component specification
  • Create a component specification with spec = Component.spec(config:Object) => Specification
    • Specify subcomponents with chainable use() statements spec.use(...subcomponents:Specification|Function) => Specification
  • Configuration properties are available to your component as this.config
    • this.config can be treated as an Object or a function
      • Ex. this.config.auth.secret or this.config('auth.secret')
  • Subcomponents are available to your compose() implementation as this.config.subcomponents
    compose() {
      return Router.spec()
        .use(this.config.subcomponents)
        .get('/status', ctx => ctx.body = 'Healthy')
    }

Documentation

Visit the Wiki for detailed documentation and steps to get started with Koach.

License

MIT