A library to create type-safe opaque stacks
// 1. Create a key with a name and a type
const NumKey = Key.create<number>('Num');
// 2. Create a stack
const stack = new Staack();
// 3. Add a value to the stack using the key (Staack is immutable, it returns a new instance)
const stack2 = stack.with(NumKey.Provider(42));
// 4. Get the value from the stack using the key
expect(stack2.get(NumKey.Consumer)).toBe(42);
npm install staack
# or
yarn add staack
You can create your own Staack
:
class CustomStaack extends Staack {
// You need to override the `instantiate` method to return a new instance of your CustomStack
protected instantiate(staackCore: StaackCoreValue): this {
return new CustomStaack(staackCore) as any;
}
}
const custom = new CustomStaack();
expect(custom instanceof CustomStaack).toBe(true);
expect(custom instanceof Staack).toBe(true);