@revas-hq/kit-context
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @revas-hq/kit-context

Weekly Downloads

1

Version

0.0.3

License

MIT

Unpacked Size

6.23 kB

Total Files

7

Last publish

Collaborators

  • ngardoni