1 | import {Stream} from 'xstream';
|
2 |
|
3 | declare var window: any;
|
4 |
|
5 | function getGlobal(this: any): any {
|
6 | let globalObj: any;
|
7 | if (typeof window !== 'undefined') {
|
8 | globalObj = window;
|
9 | } else if (typeof global !== 'undefined') {
|
10 | globalObj = global;
|
11 | } else {
|
12 | globalObj = this;
|
13 | }
|
14 | globalObj.Cyclejs = globalObj.Cyclejs || {};
|
15 | globalObj = globalObj.Cyclejs;
|
16 | globalObj.adaptStream = globalObj.adaptStream || ((x => x) as AdaptStream);
|
17 | return globalObj;
|
18 | }
|
19 |
|
20 | export interface AdaptStream {
|
21 | (s: Stream<any>): any;
|
22 | }
|
23 |
|
24 | export function setAdapt(f: AdaptStream): void {
|
25 | getGlobal().adaptStream = f;
|
26 | }
|
27 |
|
28 | export function adapt(stream: Stream<any>): any {
|
29 | return getGlobal().adaptStream(stream);
|
30 | }
|