@revas-hq/kit-context
v0.0.3
Published
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 m
Downloads
161
Readme
Kit Context Library
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.
Installation
Install the package using npm or yarn:
npm install @revas-hq/kit-context
# or
yarn add @revas-hq/kit-context
Usage
Creating a 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.
Setting and Retrieving Typed Values
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
Pristine Context
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
License
This project is licensed under the MIT License. See the LICENSE file for details.