Skip to content

Commit 6e84ffc

Browse files
[moved] the types to the bottom of index.ts
at the request of @jverkoey
1 parent f85b637 commit 6e84ffc

5 files changed

Lines changed: 45 additions & 44 deletions

File tree

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,4 @@
22
node_modules
33
npm-debug.log
44
*.pyc
5-
**/dist/*
6-
!**/dist/index.js
7-
!**/dist/indefinite-observable.js
85
*.js.map

dist/index.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export default class IndefiniteObservable<T> {
2+
_creator: Creator;
3+
constructor(creator: Creator);
4+
subscribe(listener: Listener): Subscription;
5+
}
6+
export declare type Creator = (observer: Observer) => Unsubscribe;
7+
export declare type Observer = {
8+
next: Next;
9+
};
10+
export declare type Next = (value: any) => void;
11+
export declare type Listener = Observer | Next;
12+
export declare type Unsubscribe = () => void;
13+
export declare type Subscription = {
14+
unsubscribe: Unsubscribe;
15+
};

dist/index.js

Lines changed: 7 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@
1616

1717
import $$observable from 'symbol-observable';
1818

19-
import {
20-
Unsubscribe,
21-
Subscription,
22-
Next,
23-
Observer,
24-
Creator,
25-
Listener,
26-
} from './types';
27-
2819
export default class IndefiniteObservable<T> {
2920
_creator: Creator;
3021

@@ -33,6 +24,11 @@ export default class IndefiniteObservable<T> {
3324
}
3425

3526
subscribe(listener: Listener): Subscription {
27+
// subscribe accepts next as either an anonymous function or as a named
28+
// member on an object. The creator always expects an object with a
29+
// function named next. Therefore, if we receive an anonymous function, we
30+
// wrap it in an object literal.
31+
3632
if (!(listener as Observer).next) {
3733
listener = {
3834
next: (listener as Next),
@@ -41,7 +37,9 @@ export default class IndefiniteObservable<T> {
4137

4238
let unsubscribe: Unsubscribe = this._creator(listener as Observer);
4339

44-
return { unsubscribe }
40+
return {
41+
unsubscribe,
42+
};
4543
}
4644

4745
/**
@@ -53,3 +51,18 @@ export default class IndefiniteObservable<T> {
5351
return this;
5452
}
5553
}
54+
55+
56+
// Hey look: types! Don't be afraid. They won't bite.
57+
58+
export type Creator = (observer: Observer) => Unsubscribe;
59+
export type Observer = {
60+
next: Next,
61+
}
62+
export type Next = (value: any) => void;
63+
export type Listener = Observer | Next;
64+
65+
export type Unsubscribe = () => void;
66+
export type Subscription = {
67+
unsubscribe: Unsubscribe,
68+
}

src/types.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)