koran
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

Koran

An effective state management tool

import { Transitional, TransitionsMap } from 'koran';

export enum WaterStatus {
    solid = 'solid',
    liquid = 'liquid',
    gas = 'gas',
}

const transitions: TransitionsMap = {
    melt: {
        from: WaterStatus.solid,
        to: WaterStatus.liquid },
    vapourize: {
        from: WaterStatus.liquid,
        to: WaterStatus.gas },
    condense: {
        from: WaterStatus.gas,
        to: WaterStatus.liquid
    },
};

export class Water extends Transitional {
    name: string;
    state: WaterStatus;

    constructor() {
        super(transitions, 'state');
    }
}

const water = new Water();
water.name = 'Some Water';
water.state = WaterStatus.solid;

console.log(water.can('melt'));

water.do('melt');

console.log(water);

Package Sidebar

Install

npm i koran

Weekly Downloads

3

Version

0.0.3

License

ISC

Unpacked Size

46.4 kB

Total Files

27

Last publish

Collaborators

  • satyendra1529singh