0.0.3 • Published 4 years ago

koran v0.0.3

Weekly downloads
5
License
ISC
Repository
github
Last release
4 years ago

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);