UNPKG

json-processing

Version:

JSON Processing Tool

21 lines (20 loc) 781 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const tinyqueue_1 = __importDefault(require("tinyqueue")); function sort(comparator) { return rxjs_1.pipe(operators_1.reduce((queue, value) => { queue.push(value); return queue; }, new tinyqueue_1.default([], comparator)), operators_1.mergeMap((queue) => new rxjs_1.Observable((observer) => { for (let i = queue.length - 1; i >= 0; i--) { observer.next(queue.pop()); } observer.complete(); }))); } exports.default = sort;