File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,17 @@ describe("createListener", () => {
14
14
onFooBar ( 0 , "1" )
15
15
expect ( receivedValue ) . toEqual ( { foo : 0 , bar : "1" } )
16
16
} )
17
- it ( 'returns a tuple with a void observable and its corresponding event-emitter when no "event creator" is provided' , ( ) => {
17
+ it ( 'returns a tuple with a typed observable and its corresponding event-emitter when no "event creator" is provided' , ( ) => {
18
+ const [ foo$ , onFoo ] = createListener < string > ( )
19
+ let receivedValue
20
+ foo$ . subscribe ( ( val ) => {
21
+ receivedValue = val
22
+ } )
23
+ expect ( receivedValue ) . toBe ( undefined )
24
+ onFoo ( "foo" )
25
+ expect ( receivedValue ) . toEqual ( "foo" )
26
+ } )
27
+ it ( 'returns a tuple with a void observable and its corresponding event-emitter when no "event creator" and no type is provided' , ( ) => {
18
28
const [ clicks$ , onClick ] = createListener ( )
19
29
let count = 0
20
30
clicks$ . subscribe ( ( ) => {
Original file line number Diff line number Diff line change 1
1
import { Observable , Subject } from "rxjs"
2
2
3
- const defaultMapper : any = ( ) => { }
3
+ const defaultMapper : any = ( v : unknown ) => v
4
4
5
5
export function createListener < A extends unknown [ ] , T > (
6
6
mapper : ( ...args : A ) => T ,
7
7
) : [ Observable < T > , ( ...args : A ) => void ]
8
- export function createListener ( ) : [ Observable < void > , ( ) => void ]
8
+ export function createListener < T = void > ( ) : [
9
+ Observable < T > ,
10
+ ( payload : T ) => void ,
11
+ ]
9
12
10
13
export function createListener < A extends unknown [ ] , T > (
11
14
mapper : ( ...args : A ) => T = defaultMapper ,
You can’t perform that action at this time.
0 commit comments