UNPKG

@antischematic/angular-state-library

Version:
30 lines 5.42 kB
import { inject } from "@angular/core"; import { concatAll, exhaustAll, mergeAll, pipe, Subscription, switchAll } from "rxjs"; import { Changes, EffectScheduler, Teardown } from "./providers"; export function useOperator(operator) { const effect = inject(EffectScheduler); if (!effect.operator) { effect.operator = operator; } } export function useSwitch(operator) { useOperator(operator ? pipe(operator, switchAll()) : switchAll()); } export function useMerge(operator, concurrent = operator) { useOperator(typeof operator === "function" ? pipe(operator, mergeAll(concurrent)) : mergeAll(concurrent)); } export function useConcat(operator) { useOperator(operator ? pipe(operator, concatAll()) : concatAll()); } export function useExhaust(operator) { useOperator(operator ? pipe(operator, exhaustAll()) : exhaustAll()); } export function addTeardown(teardown) { const subscription = new Subscription(); subscription.add(teardown); inject(Teardown).subscriptions.push(subscription); } export function useInputs() { return inject(Changes).value; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9ob29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFDSixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFJUixJQUFJLEVBQ0osWUFBWSxFQUNaLFNBQVMsRUFFWCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUUvRCxNQUFNLFVBQVUsV0FBVyxDQUEyRCxRQUFXO0lBQzlGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNuQixNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtLQUM1QjtBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFFBQXdEO0lBQy9FLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUNwRSxDQUFDO0FBS0QsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFpRSxFQUFFLGFBQXFCLFFBQWtCO0lBQ2hJLFdBQVcsQ0FBQyxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0FBQzVHLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFFBQXdEO0lBQy9FLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUNwRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxRQUF3RDtJQUNoRixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsUUFBdUI7SUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUN2QyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN0QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgIGNvbmNhdEFsbCxcbiAgIGV4aGF1c3RBbGwsXG4gICBtZXJnZUFsbCxcbiAgIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbixcbiAgIE9ic2VydmFibGUsXG4gICBPcGVyYXRvckZ1bmN0aW9uLFxuICAgcGlwZSxcbiAgIFN1YnNjcmlwdGlvbixcbiAgIHN3aXRjaEFsbCxcbiAgIFRlYXJkb3duTG9naWNcbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHlwZWRDaGFuZ2VzfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge0NoYW5nZXMsIEVmZmVjdFNjaGVkdWxlciwgVGVhcmRvd259IGZyb20gXCIuL3Byb3ZpZGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlT3BlcmF0b3I8VCBleHRlbmRzIE9wZXJhdG9yRnVuY3Rpb248T2JzZXJ2YWJsZTx1bmtub3duPiwgdW5rbm93bj4+KG9wZXJhdG9yOiBUKSB7XG4gICBjb25zdCBlZmZlY3QgPSBpbmplY3QoRWZmZWN0U2NoZWR1bGVyKVxuICAgaWYgKCFlZmZlY3Qub3BlcmF0b3IpIHtcbiAgICAgIGVmZmVjdC5vcGVyYXRvciA9IG9wZXJhdG9yXG4gICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTd2l0Y2gob3BlcmF0b3I/OiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248T2JzZXJ2YWJsZTx1bmtub3duPj4pIHtcbiAgIHVzZU9wZXJhdG9yKG9wZXJhdG9yID8gcGlwZShvcGVyYXRvciwgc3dpdGNoQWxsKCkpIDogc3dpdGNoQWxsKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXJnZSgpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVyZ2UoY29uY3VycmVudDogbnVtYmVyKTogdm9pZFxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlKG9wZXJhdG9yPzogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPE9ic2VydmFibGU8dW5rbm93bj4+LCBjb25jdXJyZW50PzogbnVtYmVyKTogdm9pZFxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlKG9wZXJhdG9yPzogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPE9ic2VydmFibGU8dW5rbm93bj4+IHwgbnVtYmVyLCBjb25jdXJyZW50OiBudW1iZXIgPSBvcGVyYXRvciBhcyBudW1iZXIpIHtcbiAgIHVzZU9wZXJhdG9yKHR5cGVvZiBvcGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gcGlwZShvcGVyYXRvciwgbWVyZ2VBbGwoY29uY3VycmVudCkpIDogbWVyZ2VBbGwoY29uY3VycmVudCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb25jYXQob3BlcmF0b3I/OiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248T2JzZXJ2YWJsZTx1bmtub3duPj4pIHtcbiAgIHVzZU9wZXJhdG9yKG9wZXJhdG9yID8gcGlwZShvcGVyYXRvciwgY29uY2F0QWxsKCkpIDogY29uY2F0QWxsKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VFeGhhdXN0KG9wZXJhdG9yPzogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPE9ic2VydmFibGU8dW5rbm93bj4+KSB7XG4gICB1c2VPcGVyYXRvcihvcGVyYXRvciA/IHBpcGUob3BlcmF0b3IsIGV4aGF1c3RBbGwoKSkgOiBleGhhdXN0QWxsKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRUZWFyZG93bih0ZWFyZG93bjogVGVhcmRvd25Mb2dpYykge1xuICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gICBzdWJzY3JpcHRpb24uYWRkKHRlYXJkb3duKVxuICAgaW5qZWN0KFRlYXJkb3duKS5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlSW5wdXRzPFQ+KCk6IFR5cGVkQ2hhbmdlczxUPiB7XG4gICByZXR1cm4gaW5qZWN0KENoYW5nZXMpLnZhbHVlXG59XG4iXX0=