import { Actual } from "base/Actual"; import { Message } from "base/Message"; import { MaybeMessage } from "types/MessageType"; /** * Create local copy of source what can be destroyed */ export function Local(_base: MaybeMessage) { const $base = Actual(_base); return Message(function LocalImpl(resolve, reject) { let destroyed = false; $base.then(function localBaseSub(v) { if (!destroyed) { resolve(v); } }); $base.catch(reject); return function localDestructor() { destroyed = true; }; }); }