The @revas-hq/kit-context
package provides a simple and efficient way to manage context-like values. This library uses generics to provide type-safe access to shared values throughout your application lifecycle, such as HTTP request data, cookies, and more.
Install the package using npm or yarn:
npm install @revas-hq/kit-context
# or
yarn add @revas-hq/kit-context
To create a base context:
import { createContext } from "@revas-hq/kit-context";
const baseContext = createContext();
The context is commonly created in the kit utilities, so you shouldn't care about creating one.
You can set values on the context using setContextValue. When retrieving values with getValue, you can specify the expected type, which helps avoid type errors.
import { setContextValue } from "@revas-hq/kit-context";
const contextWithUser = setContextValue(baseContext, "userId", 42); // userId is a number
// Get value with type safety
const userId = contextWithUser.getValue<number>("userId");
console.log(userId); // 42
A pristine context ignores values based on a provided tag.
import { createPristineContext } from "@revas-hq/kit-context";
const pristineContext = createPristineContext(contextWithUser, "initial");
const options = { "pristine.tag": "initial" };
console.log(pristineContext.getValue<number>("userId", options)); // undefined (ignored due to pristine tag)
const noPristineOptions = { "pristine.tag": "modified" };
console.log(pristineContext.getValue<number>("userId", noPristineOptions)); // 42
This project is licensed under the MIT License. See the LICENSE file for details.