UNPKG

electron-rpc-async-queue

Version:

Async queue implementation for Electron RPC

33 lines (32 loc) 1.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const micro_events_1 = __importDefault(require("micro-events")); const TaskEventType_1 = require("./TaskEventType"); /** Asynchronous task */ class Task extends micro_events_1.default { /** @constructor */ constructor(body, ...args) { super(); this.body = body; this.args = args; } /** Run task */ async run() { let result = null; let error = null; this.emit(TaskEventType_1.TaskEventType.START); try { result = await this.body(...this.args); this.emit(TaskEventType_1.TaskEventType.SUCCESS, result); } catch (err) { error = String(err); this.emit(TaskEventType_1.TaskEventType.ERROR, error); } this.emit(TaskEventType_1.TaskEventType.END, error, result); } } exports.Task = Task;