UNPKG

@antischematic/angular-state-library

Version:
26 lines 3.53 kB
import { Observable } from "rxjs"; import { EnvironmentInjector, inject } from "@angular/core"; import { EffectScheduler } from "./providers"; export function loadEffect(load) { return function (...args) { const injector = inject(EnvironmentInjector); const effect = inject(EffectScheduler); const promise = load().then((mod) => { return injector.runInContext(() => { return mod.default(...args); }); }); effect.addPending(promise); return new Observable(subscriber => { promise .then(source => { subscriber.add(source.subscribe(subscriber)); }) .catch(e => { subscriber.error(e); }); return subscriber; }); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9sb2FkLWVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUU1QyxNQUFNLFVBQVUsVUFBVSxDQUErRCxJQUE2RDtJQUNuSixPQUFPLFVBQVUsR0FBRyxJQUFXO1FBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO2dCQUMvQixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFhLENBQUMsQ0FBQTtZQUN2QyxDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUxQixPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hDLE9BQU87aUJBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNaLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN0QixDQUFDLENBQUMsQ0FBQTtZQUNMLE9BQU8sVUFBVSxDQUFBO1FBQ3BCLENBQUMsQ0FBWSxDQUFBO0lBQ2hCLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3IsIGluamVjdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7RWZmZWN0U2NoZWR1bGVyfSBmcm9tIFwiLi9wcm92aWRlcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFZmZlY3Q8VEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFRSZXR1cm4gZXh0ZW5kcyBPYnNlcnZhYmxlPHVua25vd24+Pihsb2FkOiAoKSA9PiBQcm9taXNlPHsgZGVmYXVsdDogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuIH0+KTogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuIHtcbiAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpXG4gICAgICBjb25zdCBlZmZlY3QgPSBpbmplY3QoRWZmZWN0U2NoZWR1bGVyKVxuICAgICAgY29uc3QgcHJvbWlzZSA9IGxvYWQoKS50aGVuKChtb2QpID0+IHtcbiAgICAgICAgIHJldHVybiBpbmplY3Rvci5ydW5JbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1vZC5kZWZhdWx0KC4uLmFyZ3MgYXMgVEFyZ3MpXG4gICAgICAgICB9KVxuICAgICAgfSlcblxuICAgICAgZWZmZWN0LmFkZFBlbmRpbmcocHJvbWlzZSlcblxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xuICAgICAgICAgcHJvbWlzZVxuICAgICAgICAgICAgLnRoZW4oc291cmNlID0+IHtcbiAgICAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyXG4gICAgICB9KSBhcyBUUmV0dXJuXG4gICB9XG59XG4iXX0=