UNPKG

multitude

Version:

Comprehensive streams for push and pull

32 lines (25 loc) 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compare = compare; var _operate = require("../../utils/operate"); var _typeCore = require("type-core"); var _equalStrategies = require("equal-strategies"); /** @ignore */ const $empty = Symbol('empty'); function compare(strategy) { const fn = !strategy || _typeCore.TypeGuard.isString(strategy) ? _equalStrategies.compare.bind(null, strategy || 'strict') : strategy; return (0, _operate.operate)(obs => { let last = $empty; return { next(value) { if (last === $empty || !fn(value, last)) { last = value; return obs.next(value); } } }; }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wdXNoL29wZXJhdG9ycy9maWx0ZXIvY29tcGFyZS50cyJdLCJuYW1lcyI6WyIkZW1wdHkiLCJTeW1ib2wiLCJjb21wYXJlIiwic3RyYXRlZ3kiLCJmbiIsIlR5cGVHdWFyZCIsImlzU3RyaW5nIiwiaXNFcXVhbCIsImJpbmQiLCJvYnMiLCJsYXN0IiwibmV4dCIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7QUFDQSxNQUFNQSxNQUFNLEdBQUdDLE1BQU0sQ0FBQyxPQUFELENBQXJCOztBQUlPLFNBQVNDLE9BQVQsQ0FDTEMsUUFESyxFQUVjO0FBQ25CLFFBQU1DLEVBQUUsR0FDTixDQUFDRCxRQUFELElBQWFFLG9CQUFVQyxRQUFWLENBQW1CSCxRQUFuQixDQUFiLEdBQ0lJLHlCQUFRQyxJQUFSLENBQWEsSUFBYixFQUFtQkwsUUFBUSxJQUFJLFFBQS9CLENBREosR0FFSUEsUUFITjtBQUtBLFNBQU8sc0JBQVlNLEdBQUQsSUFBUztBQUN6QixRQUFJQyxJQUFTLEdBQUdWLE1BQWhCO0FBQ0EsV0FBTztBQUNMVyxNQUFBQSxJQUFJLENBQUNDLEtBQUQsRUFBaUI7QUFDbkIsWUFBSUYsSUFBSSxLQUFLVixNQUFULElBQW1CLENBQUNJLEVBQUUsQ0FBQ1EsS0FBRCxFQUFRRixJQUFSLENBQTFCLEVBQXlDO0FBQ3ZDQSxVQUFBQSxJQUFJLEdBQUdFLEtBQVA7QUFDQSxpQkFBT0gsR0FBRyxDQUFDRSxJQUFKLENBQVNDLEtBQVQsQ0FBUDtBQUNEO0FBQ0Y7O0FBTkksS0FBUDtBQVFELEdBVk0sQ0FBUDtBQVdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHVzaCB9IGZyb20gJ0BkZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvb3BlcmF0ZSc7XG5pbXBvcnQgeyBCaW5hcnlGbiwgVHlwZUd1YXJkIH0gZnJvbSAndHlwZS1jb3JlJztcbmltcG9ydCB7IGNvbXBhcmUgYXMgaXNFcXVhbCB9IGZyb20gJ2VxdWFsLXN0cmF0ZWdpZXMnO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgJGVtcHR5ID0gU3ltYm9sKCdlbXB0eScpO1xuXG5leHBvcnQgdHlwZSBDb21wYXJlU3RyYXRlZ3kgPSAnc3RyaWN0JyB8ICdzaGFsbG93JyB8ICdkZWVwJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmU8VD4oXG4gIHN0cmF0ZWd5PzogQ29tcGFyZVN0cmF0ZWd5IHwgQmluYXJ5Rm48W1QsIFRdLCBib29sZWFuPlxuKTogUHVzaC5PcGVyYXRpb248VD4ge1xuICBjb25zdCBmbiA9XG4gICAgIXN0cmF0ZWd5IHx8IFR5cGVHdWFyZC5pc1N0cmluZyhzdHJhdGVneSlcbiAgICAgID8gaXNFcXVhbC5iaW5kKG51bGwsIHN0cmF0ZWd5IHx8ICdzdHJpY3QnKVxuICAgICAgOiBzdHJhdGVneTtcblxuICByZXR1cm4gb3BlcmF0ZTxUPigob2JzKSA9PiB7XG4gICAgbGV0IGxhc3Q6IGFueSA9ICRlbXB0eTtcbiAgICByZXR1cm4ge1xuICAgICAgbmV4dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAobGFzdCA9PT0gJGVtcHR5IHx8ICFmbih2YWx1ZSwgbGFzdCkpIHtcbiAgICAgICAgICBsYXN0ID0gdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIG9icy5uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuIl19