@karmaniverous/entity-manager 4.3.0-0 → 4.3.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,8 @@ var _map2 = _interopRequireDefault(require("lodash/map"));
9
9
  var _size2 = _interopRequireDefault(require("lodash/size"));
10
10
  var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
11
11
  var _fromPairs2 = _interopRequireDefault(require("lodash/fromPairs"));
12
+ var _parseInt2 = _interopRequireDefault(require("lodash/parseInt"));
13
+ var _isString2 = _interopRequireDefault(require("lodash/isString"));
12
14
  var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
13
15
  var _isInteger2 = _interopRequireDefault(require("lodash/isInteger"));
14
16
  var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined"));
@@ -251,13 +253,17 @@ class EntityManager {
251
253
  if (!(0, _isFunction2.default)(shardQuery)) throw new Error('shardQuery must be a function');
252
254
  if (!(0, _isUndefined2.default)(limit) && !((0, _isInteger2.default)(limit) && limit >= 1)) throw new Error('limit must be a positive integer');
253
255
  if (!(0, _isUndefined2.default)(pageKeys) && !(0, _isPlainObject2.default)(pageKeys)) throw new Error('pageKeys must be an object');
254
- if (!(0, _isUndefined2.default)(pageKeys) && !((0, _isInteger2.default)(pages) && pages >= 1) && pages !== 'all') throw new Error("pages must be a positive integer or 'all'");
256
+ if (!(0, _isUndefined2.default)(pages) && !/^(?:\d+|all)$/i.test(pages.toString())) throw new Error("pages must be a positive integer or 'all'");
257
+
258
+ // Parse pages.
259
+ if ((0, _isString2.default)(pages)) pages = pages.toLowerCase() === 'all' ? Infinity : (0, _parseInt2.default)(pages);
255
260
 
256
261
  // Generate default pageKeys if not provided
257
262
  pageKeys ??= (0, _fromPairs2.default)(this.getKeySpace(entityToken, keyToken, item).map(shardedKey => [shardedKey, undefined]));
258
263
 
259
264
  // Return empty result if no pageKeys.
260
265
  if ((0, _isEmpty2.default)(pageKeys)) return {
266
+ count: 0,
261
267
  items: [],
262
268
  pageKeys: {}
263
269
  };
@@ -315,7 +321,7 @@ class EntityManager {
315
321
  result.items = [...result.items, ...pageResult.items];
316
322
  result.pageKeys = pageResult.pageKeys;
317
323
  page++;
318
- } while ((pages === 'all' || page < pages) && !(0, _isEmpty2.default)(result.pageKeys));
324
+ } while (page < pages && !(0, _isEmpty2.default)(result.pageKeys));
319
325
  return result;
320
326
  }
321
327
 
@@ -238,13 +238,13 @@ export class EntityManager {
238
238
  throw new Error('limit must be a positive integer');
239
239
  if (!_.isUndefined(pageKeys) && !_.isPlainObject(pageKeys))
240
240
  throw new Error('pageKeys must be an object');
241
- if (
242
- !_.isUndefined(pageKeys) &&
243
- !(_.isInteger(pages) && pages >= 1) &&
244
- pages !== 'all'
245
- )
241
+ if (!_.isUndefined(pages) && !/^(?:\d+|all)$/i.test(pages.toString()))
246
242
  throw new Error("pages must be a positive integer or 'all'");
247
243
 
244
+ // Parse pages.
245
+ if (_.isString(pages))
246
+ pages = pages.toLowerCase() === 'all' ? Infinity : _.parseInt(pages);
247
+
248
248
  // Generate default pageKeys if not provided
249
249
  pageKeys ??= _.fromPairs(
250
250
  this.getKeySpace(entityToken, keyToken, item).map((shardedKey) => [
@@ -254,7 +254,7 @@ export class EntityManager {
254
254
  );
255
255
 
256
256
  // Return empty result if no pageKeys.
257
- if (_.isEmpty(pageKeys)) return { items: [], pageKeys: {} };
257
+ if (_.isEmpty(pageKeys)) return { count: 0, items: [], pageKeys: {} };
258
258
 
259
259
  // Calculate shard limit.
260
260
  const shardLimit = _.isUndefined(limit)
@@ -297,7 +297,7 @@ export class EntityManager {
297
297
  result.items = [...result.items, ...pageResult.items];
298
298
  result.pageKeys = pageResult.pageKeys;
299
299
  page++;
300
- } while ((pages === 'all' || page < pages) && !_.isEmpty(result.pageKeys));
300
+ } while (page < pages && !_.isEmpty(result.pageKeys));
301
301
 
302
302
  return result;
303
303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@karmaniverous/entity-manager",
3
- "version": "4.3.0-0",
3
+ "version": "4.3.0-2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },