1.2.45 • Published 2 years ago
state-mechanic v1.2.45
state-mechanic
And another state machine
Install
npm install state-mechanic
Usage
import {StateConfig} from '../StateMachine/model';
import {StateMechanic} from '../StateMachine/stateMechanics';
import assert from 'assert';
export interface CreateListingModel {
type?: 'singleCard' | 'mixedBundle' | 'sealedSingle';
}
export const config: StateConfig<CreateListingModel> = {
type: {
name: 'Create Listing',
url: '/createListing/listing-type',
state: {
singleCard: {
name: 'Single Card',
url: '/createListing/single-card',
validate: (model: CreateListingModel) => {
return model.type === 'singleCard';
},
},
mixedBundle: {
name: 'Mixed Bundle',
url: '/createListing/mixed-bundle',
state: {
title: {
name: 'Title',
url: '/createListing/mixed-bundle/title',
hide: (model?: CreateListingModel) => {
return ['singleCard', 'mixedBundle'].includes(model?.type);
},
},
tagSelection: {
name: 'Tag Selection',
url: '/createListing/mixec-bundle/tag-selection',
hide: (model?: CreateListingModel) => {
return ['singleCard', 'mixedBundle'].includes(model?.type);
},
},
},
},
sealedSingle: {
name: 'Sealed Single',
url: '/createListing/sealed-single',
},
},
},
};
const instance = new StateMechanic(config);
let state = instance.state.type;
state = state.next();
assert(state.name === 'Single Card', "should be single Card");
state = state.next();
assert(state.name === 'Mixed Bundle');
state = state.next();
assert(state.name === 'Title');
expect(1).toBe(1);
1.2.45
2 years ago
1.2.44
2 years ago
1.2.43
2 years ago
1.2.42
2 years ago
1.2.41
2 years ago
1.2.40
2 years ago
1.2.39
2 years ago
1.2.38
2 years ago
1.2.37
2 years ago
1.2.34
2 years ago
1.2.33
2 years ago
1.2.32
2 years ago
1.2.31
2 years ago
1.2.30
2 years ago
1.2.29
2 years ago
1.2.28
2 years ago
1.2.27
2 years ago
1.2.26
2 years ago
1.2.25
2 years ago
1.2.23
2 years ago
1.2.22
2 years ago
1.2.21
2 years ago
1.2.19
2 years ago
1.2.18
2 years ago
1.2.17
2 years ago
1.2.16
2 years ago
1.2.15
2 years ago
1.2.14
2 years ago
1.2.12
2 years ago
1.2.11
2 years ago
1.2.10
2 years ago
1.2.9
2 years ago
1.2.7
2 years ago
1.2.6
2 years ago
1.2.5
2 years ago
1.2.4
2 years ago
1.2.3
2 years ago
1.2.2
2 years ago
1.2.1
2 years ago
1.2.0
2 years ago
1.1.0
2 years ago
1.0.57
2 years ago
1.0.56
2 years ago
1.0.55
2 years ago
1.0.54
2 years ago
1.0.53
2 years ago
1.0.52
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago