rimmel
Version:
A Streams-Oriented UI library for the Rx.Observable Universe
22 lines (19 loc) • 1.05 kB
JavaScript
import { isObjectSource, ObjectSource } from '../sources/object-source.js';
import { isObserverSource, ObserverSource } from '../sources/observer-source.js';
import { isEventListenerObjectSource, EventListenerObjectSource } from '../sources/event-listener-object-source.js';
import { isFunction } from './is-function.js';
/**
* Convert a function, Observer or Observature to a listener function.
* @param expression RMLTemplateExpression
* @returns function | null a callable event listener function
*/
const toListener = (expression) =>
// FIXME: too similar to callable. Merge them
isObserverSource(expression) ? ObserverSource(expression)
: isFunction(expression) ? expression
: isEventListenerObjectSource(expression) ? EventListenerObjectSource(expression)
: isObjectSource(expression) ? ObjectSource(...expression)
: null // We allow it to be empty. If so, ignore, and don't connect any source. Perhaps add a warning in debug mode?
;
export { toListener };
//# sourceMappingURL=to-listener.js.map