UNPKG

@ipp/cli

Version:

An image build orchestrator for the modern web

49 lines (48 loc) 1.61 kB
"use strict"; /** * Image Processing Pipeline - Copyright (c) Marcus Cemes * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStateContext = exports.Status = void 0; const immer_1 = __importDefault(require("immer")); const rxjs_1 = require("rxjs"); var Status; (function (Status) { Status[Status["READY"] = 0] = "READY"; Status[Status["PROCESSING"] = 1] = "PROCESSING"; Status[Status["COMPLETE"] = 2] = "COMPLETE"; Status[Status["ERROR"] = 3] = "ERROR"; Status[Status["INTERRUPT"] = 4] = "INTERRUPT"; })(Status = exports.Status || (exports.Status = {})); function createStateContext(concurrency, manifest, clean) { const subject = new rxjs_1.BehaviorSubject({ status: Status.READY, concurrency, clean, manifest, images: { found: 0, completed: 0, failed: 0, }, }); return { observable: subject.asObservable(), getValue: () => subject.getValue(), update: (fn) => subject.next((0, immer_1.default)(subject.getValue(), (state) => { fn(state); })), complete: () => { const lastValue = subject.getValue(); subject.complete(); return lastValue; }, }; } exports.createStateContext = createStateContext;