UNPKG

hazelcast-client

Version:

Hazelcast - open source In-Memory Data Grid - client for NodeJS

76 lines 2.35 kB
"use strict"; var Long = require('long'); var Predicate_1 = require('./core/Predicate'); var assert = require('assert'); function assertNotNull(v) { if (v == null) { throw new RangeError('Null or undefined is not allowed here.'); } } exports.assertNotNull = assertNotNull; function getType(obj) { if (obj === null) { return null; } else if (Long.isLong(obj)) { return 'long'; } else { var t = typeof obj; if (t !== 'object') { return t; } else { return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); } } } exports.getType = getType; function enumFromString(enumType, value) { return enumType[value]; } exports.enumFromString = enumFromString; function getSortedQueryResultSet(list, predicate) { if (list.length === 0) { return list; } var comparatorObject = predicate.getComparator(); if (comparatorObject != null) { list.sort(comparatorObject.sort.bind(comparatorObject)); } var nearestAnchorEntry = (predicate == null) ? null : predicate.getNearestAnchorEntry(); var nearestPage = nearestAnchorEntry[0]; var page = predicate.getPage(); var pageSize = predicate.getPageSize(); var begin = pageSize * (page - nearestPage - 1); var size = list.length; if (begin > size) { return []; } var end = begin + pageSize; if (end > size) { end = size; } setAnchor(list, predicate, nearestPage); var iterationType = predicate.getIterationType(); return list.slice(begin, end).map(function (item) { switch (iterationType) { case Predicate_1.IterationType.ENTRY: return item; case Predicate_1.IterationType.KEY: return item[0]; case Predicate_1.IterationType.VALUE: return item[1]; } }); } exports.getSortedQueryResultSet = getSortedQueryResultSet; function setAnchor(list, predicate, nearestPage) { assert(list.length > 0); var size = list.length; var pageSize = predicate.getPageSize(); var page = predicate.getPage(); for (var i = pageSize; i <= size && nearestPage < page; i += pageSize) { var anchor = list[i - 1]; nearestPage++; predicate.setAnchor(nearestPage, anchor); } } //# sourceMappingURL=Util.js.map