An open API service indexing awesome lists of open source software.

https://github.com/tomeraberbach/contextus

🏛️ The context you know and love, but framework agnostic!
https://github.com/tomeraberbach/contextus

context context-api dependency-injection prop-drilling provider react-context react-context-api state-management

Last synced: 10 months ago
JSON representation

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

Awesome Lists containing this project

README

          


contextus



version


CI


minzip size


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

```sh
$ npm i contextus
```

## Usage

```js
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](https://github.com/TomerAberbach/contextus/blob/main/src/index.d.ts)
for more documentation.

## Contributing

Stars are always welcome!

For bugs and feature requests,
[please create an issue](https://github.com/TomerAberbach/contextus/issues/new).

For pull requests, please read the
[contributing guidelines](https://github.com/TomerAberbach/contextus/blob/master/contributing.md).

## License

[Apache 2.0](https://github.com/TomerAberbach/contextus/blob/master/license)

This is not an official Google product.