UNPKG

@ixily/activ

Version:

Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.

66 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IdeaTrafficDirectorModule = void 0; const __1 = require("../.."); const state = { sequentialPools: new Map(), }; const processSequentialPool = async (id) => { if (state.sequentialPools.get(id).sequentialPoolStack.length > 0) { // take all elements from pool state.sequentialPools.get(id).sequentialPoolRunningStack = state.sequentialPools .get(id) .sequentialPoolStack.splice(0, state.sequentialPools.get(id).sequentialPoolStack.length); for (const task of state.sequentialPools.get(id) .sequentialPoolRunningStack) { await task(); } state.sequentialPools.get(id).sequentialPoolRunningStack = []; } if (state.sequentialPools.get(id).sequentialPoolStack.length !== 0) { setTimeout(() => { solveSequentialPool(id); }, 10); } }; const solveSequentialPool = async (id) => { if (!state.sequentialPools.get(id).solvingSequentialPool) { state.sequentialPools.get(id).solvingSequentialPool = true; await (0, __1.rest)(10); await processSequentialPool(id); state.sequentialPools.get(id).solvingSequentialPool = false; } }; const addAndSolveSequentialPool = (id, task) => { if (!state.sequentialPools.has(id)) { state.sequentialPools.set(id, { id, sequentialPoolStack: [], sequentialPoolRunningStack: [], solvingSequentialPool: false, }); } state.sequentialPools.get(id).sequentialPoolStack.push(task); solveSequentialPool(id); }; const runSequentialTicket = async (params, task) => { const id = params.join('|'); const promisedResult = new Promise(async (resolve, reject) => { const executeTask = async () => { try { const result = await task(); resolve(result); } catch (err) { reject(err); } }; addAndSolveSequentialPool(id, executeTask); }); return promisedResult; }; exports.IdeaTrafficDirectorModule = { runSequentialTicket, }; //# sourceMappingURL=idea-traffic-director.module.js.map