Skip to content

TomerAberbach/contextus

Repository files navigation

contextus

The context you know and love, but framework agnostic!

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.

Sponsor this project

 
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy