json-processing
Version:
JSON Processing Tool
21 lines (20 loc) • 781 B
JavaScript
;
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;