Skip to content

Commit d3c6cbb

Browse files
committed
type d files
1 parent 4196911 commit d3c6cbb

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed

types/engine/most.d.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Stream, Subscription } from 'most';
2+
import { EngineSubject, Update } from '../interfaces';
3+
export declare class Engine<T, S> {
4+
intentStream: EngineSubject<T>;
5+
historyStream: EngineSubject<S>;
6+
travelStream: EngineSubject<(n: number) => number>;
7+
constructor();
8+
observe<T>(actionsSinks: Stream<Update<T>>, f: any): Subscription<T>;
9+
}

types/history.d.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Stream } from 'most';
2+
import { Stamp, EngineSubject } from './interfaces';
3+
export declare class Traveler<S> {
4+
cursor: number;
5+
path: EngineSubject<(n: number) => number>;
6+
history: Stream<Stamp<S>[]>;
7+
travel: Stream<S>;
8+
constructor(history: Stream<Stamp<S>[]>, path: EngineSubject<(n: number) => number>);
9+
forward(): void;
10+
backward(): void;
11+
}
12+
export default function initHistory<S>(engineHistory: EngineSubject<S>, engineTravel: EngineSubject<(n: number) => number>): Traveler<S>;

types/interfaces.d.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/// <reference types="react" />
2+
import { Stream, Subscription } from 'most';
3+
import * as React from 'react';
4+
import { AsyncSubject } from 'most-subject';
5+
import { Traveler } from './history';
6+
export interface Actions<T> {
7+
[propName: string]: (...v: any[]) => T;
8+
}
9+
export interface Plan<I, S> {
10+
(intent: EngineSubject<I>, props?: {}): Machine<I, S>;
11+
}
12+
export interface Update<S> {
13+
(current: S): S;
14+
}
15+
export interface Machine<I, S> {
16+
actions: Actions<I>;
17+
update$: Stream<Update<S>>;
18+
}
19+
export interface ConnectProps<I> {
20+
actions?: Actions<I>;
21+
history?: boolean;
22+
}
23+
export declare class Connect<I, S> extends React.PureComponent<ConnectProps<I>, S> {
24+
machine: Machine<I, S>;
25+
traveler: Traveler<S>;
26+
subscription: Subscription<S>;
27+
}
28+
export interface ConnectClass<I, S> {
29+
contextTypes?: any;
30+
defaultProps?: any;
31+
new (props?: ConnectProps<I>, context?: any): Connect<I, S>;
32+
}
33+
export interface History<S> {
34+
path: EngineSubject<(n: number) => number>;
35+
history: Stream<S>;
36+
}
37+
export interface Stamp<S> {
38+
value: S;
39+
time: number;
40+
}
41+
export interface EngineSubject<T> extends AsyncSubject<T> {
42+
send(x: T): this;
43+
}

types/react-most.d.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/// <reference types="react" />
2+
import * as React from 'react';
3+
import { Plan, ConnectClass } from './interfaces';
4+
import { Engine } from './engine/most';
5+
export declare const REACT_MOST_ENGINE = "@@reactive-react/react-most.engine";
6+
export declare type ConnectOrReactComponent<I, S> = ConnectClass<I, S> | React.ComponentClass<any>;
7+
export declare function connect<I, S>(main: Plan<I, S>, opts?: {
8+
history: boolean;
9+
}): (WrappedComponent: ConnectOrReactComponent<I, S>) => ConnectClass<I, S>;
10+
export interface MostProps<T, S> {
11+
engine?: new () => Engine<T, S>;
12+
}
13+
export interface MostEngine<I, H> {
14+
[x: string]: Engine<I, H>;
15+
}
16+
export default class Most<I, H, S> extends React.PureComponent<MostProps<I, H>, S> {
17+
static childContextTypes: {
18+
[x: string]: any;
19+
};
20+
getChildContext(): MostEngine<I, H>;
21+
render(): React.ReactElement<any>;
22+
}

0 commit comments

Comments
 (0)