multitude
Version:
Comprehensive streams for push and pull
32 lines (25 loc) • 2.87 kB
JavaScript
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
;