rename state-machine to javascript-state-machine (#16883)

* rename state-machine to javascript-state-machine

* add state-machine to notNeededPackages.json

* update version of javascript-state-machine

* remove state-machine from notNeededPackes.json
This commit is contained in:
taoqf
2017-06-02 21:19:50 +08:00
committed by Andy
parent cad0e31021
commit 1a4fd4ff86
6 changed files with 141 additions and 130 deletions

View File

@@ -0,0 +1,105 @@
// Type definitions for Finite State Machine 2.4
// Project: https://github.com/jakesgordon/javascript-state-machine
// Definitions by: Boris Yankov <https://github.com/borisyankov/>,
// Maarten Docter <https://github.com/mdocter>,
// William Sears <https://github.com/MrBigDog2U>,
// samael <https://github.com/samael65535>,
// taoqf <https://github.com/taoqf>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export type StateMachineErrorCallback = (
eventName?: string,
from?: string,
to?: string,
args?: any[],
errorCode?: number,
errorMessage?: string,
ex?: Error
) => void; // NB. errorCode? See: StateMachine.Error
export interface StateMachineEventDef {
name: string;
from: any; // string or string[]
to: string;
}
export type StateMachineEvent = (...args: any[]) => void;
export interface StateMachineConfig {
initial?: any; // string or { state: 'foo', event: 'setup', defer: true|false }
events?: StateMachineEventDef[];
callbacks?: {
[s: string]: (event?: string, from?: string, to?: string, ...args: any[]) => any;
};
target?: StateMachine;
error?: StateMachineErrorCallback;
}
export type StateMachineIsFinished = (state: string) => boolean;
export const VERSION: string; // = "2.4.0"
export const WILDCARD: string; // = '*'
export const ASYNC: string; // = 'async'
export const Result: {
SUCCEEDED: number; // = 1, the event transitioned successfully from one state to another
NOTRANSITION: number; // = 2, the event was successfull but no state transition was necessary
CANCELLED: number; // = 3, the event was cancelled by the caller in a beforeEvent callback
PENDING: number; // = 4, the event is asynchronous and the caller is in control of when the transition occurs
};
export const Error: {
INVALID_TRANSITION: number; // = 100, caller tried to fire an event that was innapropriate in the current state
PENDING_TRANSITION: number; // = 200, caller tried to fire an event while an async transition was still pending
INVALID_CALLBACK: number; // = 300, caller provided callback function threw an exception
};
export function create(config: StateMachineConfig, target?: StateMachine): StateMachine;
export interface StateMachineTransition {
(): void;
cancel(): void;
}
export type StateMachineIs = (state: string) => boolean;
export type StateMachineCan = (evt: string) => boolean;
export type StateMachineTransitions = () => string[];
export interface StateMachine {
current: string;
is: StateMachineIs;
can: StateMachineCan;
cannot: StateMachineCan;
error: StateMachineErrorCallback;
isFinished: StateMachineIsFinished;
/* transition - only available when performing async state transitions; otherwise null. Can be a:
[1] fsm.transition(); // called from async callback
[2] fsm.transition.cancel();
*/
transition: StateMachineTransition;
transitions: StateMachineTransitions;
}
export namespace StateMachine {
const VERSION: string; // = "2.4.0"
const WILDCARD: string; // = '*'
const ASYNC: string; // = 'async'
const Result: {
SUCCEEDED: number; // = 1, the event transitioned successfully from one state to another
NOTRANSITION: number; // = 2, the event was successfull but no state transition was necessary
CANCELLED: number; // = 3, the event was cancelled by the caller in a beforeEvent callback
PENDING: number; // = 4, the event is asynchronous and the caller is in control of when the transition occurs
};
const Error: {
INVALID_TRANSITION: number; // = 100, caller tried to fire an event that was innapropriate in the current state
PENDING_TRANSITION: number; // = 200, caller tried to fire an event while an async transition was still pending
INVALID_CALLBACK: number; // = 300, caller provided callback function threw an exception
};
function create(config: StateMachineConfig, target?: StateMachine): StateMachine;
}
export as namespace StateMachine;

View File

@@ -0,0 +1,32 @@
import { StateMachine, StateMachineEvent, create } from 'javascript-state-machine';
interface StateMachineTest extends StateMachine {
warn?: StateMachineEvent;
panic?: StateMachineEvent;
calm?: StateMachineEvent;
clear?: StateMachineEvent;
}
const fsm: StateMachineTest = StateMachine.create({
initial: 'green',
events: [
{ name: 'warn', from: 'green', to: 'yellow' },
{ name: 'panic', from: 'yellow', to: 'red' },
{ name: 'calm', from: 'red', to: 'yellow' },
{ name: 'clear', from: 'yellow', to: 'green' }
],
callbacks: {
onpanic(event?, from?, to?, msg?) { alert('panic! ' + msg); },
onclear(event?, from?, to?, msg?) { alert('thanks to ' + msg); },
ongreen(event?, from?, to?) { document.body.className = 'green'; },
onyellow(event?, from?, to?) { document.body.className = 'yellow'; },
onred(event?, from?, to?) { document.body.className = 'red'; },
}
});
// fsm.warn(); // transition from green to yellow
// fsm.panic("ERROR ALERT"); // transition from yellow to red
// fsm.calm(); // transition from red to yellow
// fsm.clear("All clear"); // transition from yellow to green
const transitions = fsm.transitions();

View File

@@ -18,6 +18,6 @@
},
"files": [
"index.d.ts",
"state-machine-tests.ts"
"javascript-state-machine-tests.ts"
]
}

View File

@@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}

View File

@@ -1,97 +0,0 @@
// Type definitions for Finite State Machine 2.3.5
// Project: https://github.com/jakesgordon/javascript-state-machine
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Maarten Docter <https://github.com/mdocter>, William Sears <https://github.com/MrBigDog2U>, samael <https://github.com/samael65535>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface StateMachineErrorCallback {
(eventName?: string, from?: string, to?: string, args?: any[], errorCode?: number, errorMessage?: string, ex?: Error): void; // NB. errorCode? See: StateMachine.Error
}
interface StateMachineEventDef {
name: string;
from: any; // string or string[]
to: string;
}
interface StateMachineEvent {
(...args: any[]): void;
}
interface StateMachineConfig {
initial?: any; // string or { state: 'foo', event: 'setup', defer: true|false }
events?: StateMachineEventDef[];
callbacks?: {
[s: string]: (event?: string, from?: string, to?: string, ...args: any[]) => any;
};
target?: StateMachine;
error?: StateMachineErrorCallback;
}
interface StateMachineIsFinished {
(state: string): boolean;
}
interface StateMachineStatic {
VERSION: string; // = "2.3.5"
WILDCARD: string; // = '*'
ASYNC: string; // = 'async'
Result: {
SUCCEEDED: number; // = 1, the event transitioned successfully from one state to another
NOTRANSITION: number; // = 2, the event was successfull but no state transition was necessary
CANCELLED: number; // = 3, the event was cancelled by the caller in a beforeEvent callback
PENDING: number; // = 4, the event is asynchronous and the caller is in control of when the transition occurs
};
Error: {
INVALID_TRANSITION: number; // = 100, caller tried to fire an event that was innapropriate in the current state
PENDING_TRANSITION: number; // = 200, caller tried to fire an event while an async transition was still pending
INVALID_CALLBACK: number; // = 300, caller provided callback function threw an exception
};
create(config: StateMachineConfig, target?: StateMachine): StateMachine;
}
interface StateMachineTransition {
(): void;
cancel(): void;
}
interface StateMachineIs {
(state: string): boolean;
}
interface StateMachineCan {
(evt: string): boolean;
}
interface StateMachineTransitions {
(): Array<string>;
}
interface StateMachine {
current: string;
is: StateMachineIs;
can: StateMachineCan;
cannot: StateMachineCan;
error: StateMachineErrorCallback;
isFinished: StateMachineIsFinished;
/* transition - only available when performing async state transitions; otherwise null. Can be a:
[1] fsm.transition(); // called from async callback
[2] fsm.transition.cancel();
*/
transition: StateMachineTransition;
transitions: StateMachineTransitions;
}
declare var StateMachine: StateMachineStatic;
declare module "state-machine" {
export = StateMachine;
}
declare module "javascript-state-machine" {
export let StateMachine: StateMachineStatic;
}

View File

@@ -1,32 +0,0 @@
interface StateMachineTest extends StateMachine {
warn?: StateMachineEvent;
panic?: StateMachineEvent;
calm?: StateMachineEvent;
clear?: StateMachineEvent;
}
var fsm: StateMachineTest = StateMachine.create({
initial: 'green',
events: [
{ name: 'warn', from: 'green', to: 'yellow' },
{ name: 'panic', from: 'yellow', to: 'red' },
{ name: 'calm', from: 'red', to: 'yellow' },
{ name: 'clear', from: 'yellow', to: 'green' }
],
callbacks: {
onpanic: function (event?, from?, to?, msg?) { alert('panic! ' + msg); },
onclear: function (event?, from?, to?, msg?) { alert('thanks to ' + msg); },
ongreen: function (event?, from?, to?) { document.body.className = 'green'; },
onyellow: function (event?, from?, to?) { document.body.className = 'yellow'; },
onred: function (event?, from?, to?) { document.body.className = 'red'; },
}
});
//fsm.warn(); // transition from green to yellow
//fsm.panic("ERROR ALERT"); // transition from yellow to red
//fsm.calm(); // transition from red to yellow
//fsm.clear("All clear"); // transition from yellow to green
let transitions: Array<string> = fsm.transitions();