contextus

🏛️ The context you know and love, but framework agnostic!

APACHE-2.0 License

Downloads
10
Stars
12
Committers
1

Features

  • Microscopic: ~300 B minzipped!
  • Simple: just provide and use
  • Powerful: supports context nesting
  • Fancy: contextus is Latin for context!

Install

$ npm i contextus

Usage

import context from 'contextus'

const myContext = context()

function a() {
  b()

  return `Amazing!`
}

function b() {
  c()
}

function c() {
  d()
}

function d() {
  const value = myContext.use()

  console.log(`d: ${value}`)
  myContext.provide(`More specific wins!`, e)
  console.log(`d: ${value}`)
}

function e() {
  console.log(`e: ${myContext.use()}`)
}

const returnValue = myContext.provide(`Spectacular!`, a)
//=> d: Spectacular!
//=> e: More specific wins!
//=> d: Spectacular!

console.log(returnValue)
//=> Amazing!

try {
  myContext.use()
} catch (e) {
  console.log(e.message)
}
//=> context: use called outside provide

See the type definitions for more documentation.

Contributing

Stars are always welcome!

For bugs and feature requests, please create an issue.

For pull requests, please read the contributing guidelines.

License

Apache 2.0

This is not an official Google product.

Package Rankings
Top 21.58% on Npmjs.org