Skip to content

Commit

Permalink
refactor(signal): rename setSignalProvider and clear old providers
Browse files Browse the repository at this point in the history
  • Loading branch information
AliMD committed Mar 4, 2022
1 parent e0ad1d4 commit a44380a
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions package/signal/src/signal.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {log, _getSignalObject, _callListeners, _removeSignalListener} from './core';
import type {ListenerOptions, DispatchOptions, ListenerCallback, ListenerObject} from './type';


/**
* Add new listener to specific signal.
*
Expand Down Expand Up @@ -139,18 +138,27 @@ export function requestSignal<SignalName extends keyof VatrRequestSignals>(
* }
* }
*/
export function addSignalProvider<SignalName extends keyof VatrRequestSignals>(
export function setSignalProvider<SignalName extends keyof VatrRequestSignals>(
signalName: SignalName,
signalCallback: (detail: VatrRequestSignals[SignalName]) => void | Promise<void>,
): symbol {
log('addSignalProvider(%s)', signalName);
log('setSignalProvider(%s)', signalName);
// @TODO: refactor with removeSignalProvider
const signal = _getSignalObject(`request-${signalName}` as unknown as SignalName);
if (signal.listenerList.length>0) {
log('setSignalProvider(%s): WARNING! another provider defined and will removed!',
signalName, signal.listenerList.length);
signal.listenerList = [];
}
return addSignalListener(
`request-${signalName}` as unknown as SignalName,
signalCallback as unknown as ListenerCallback<SignalName>,
{receivePrevious: true},
);
}

// @TODO: removeSignalProvider(signalName): void

/**
* Resolved with signal value when signal is ready base on requested options.
* By default, wait new signal received.
Expand Down

0 comments on commit a44380a

Please sign in to comment.