@bigbinary/neeto-commons-frontend 2.0.12 → 2.0.13

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.
package/README.md CHANGED
@@ -7,7 +7,7 @@ The commons frontend library for Neeto Applications.
7
7
  Install from npm:
8
8
 
9
9
  ```bash
10
- yarn add "@bigbinary/neeto-commons-frontend@2.0.12"
10
+ yarn add "@bigbinary/neeto-commons-frontend@2.0.13"
11
11
  ```
12
12
 
13
13
  This package relies on the host project's tailwind configuration. So add
@@ -103,6 +103,37 @@ function _slicedToArray(arr, i) {
103
103
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
104
104
  }
105
105
 
106
+ /**
107
+ * @template {Function} T
108
+ * @param {T} func
109
+ * @returns {T}
110
+ */
111
+
112
+ var nullSafe = function nullSafe(func) {
113
+ return (// @ts-ignore
114
+ ramda.curryN(func.length, function () {
115
+ var _ref;
116
+
117
+ var dataArg = (_ref = func.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref]);
118
+ return ramda.isNil(dataArg) ? dataArg : func.apply(void 0, arguments);
119
+ })
120
+ );
121
+ };
122
+
123
+ var slugify = function slugify(string) {
124
+ return string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
125
+ .replace(/&/g, "-and-") // Replace & with 'and'
126
+ .replace(/[^\w-]+/g, "") // Remove all non-word characters
127
+ .replace(/--+/g, "-") // Replace multiple - with single -
128
+ .replace(/^-+/, "") // Trim - from start of text
129
+ .replace(/-+$/, "");
130
+ }; // Trim - from end of text
131
+
132
+ var humanize = function humanize(string) {
133
+ string = string.replace(/[_-]+/g, " ").replace(/\s{2,}/g, " ").replace(/([a-z\d])([A-Z])/g, "$1" + " " + "$2").replace(/([A-Z]+)([A-Z][a-z\d]+)/g, "$1" + " " + "$2").toLowerCase().trim();
134
+ string = string.charAt(0).toUpperCase() + string.slice(1);
135
+ return string;
136
+ };
106
137
  var snakeToCamelCase = function snakeToCamelCase(string) {
107
138
  return string.replace(/(_\w)/g, function (letter) {
108
139
  return letter[1].toUpperCase();
@@ -113,6 +144,14 @@ var camelToSnakeCase = function camelToSnakeCase(string) {
113
144
  return "_".concat(letter.toLowerCase());
114
145
  });
115
146
  };
147
+ var capitalize = function capitalize(string) {
148
+ return string.charAt(0).toUpperCase() + string.slice(1);
149
+ };
150
+ nullSafe(slugify);
151
+ nullSafe(humanize);
152
+ nullSafe(snakeToCamelCase);
153
+ nullSafe(camelToSnakeCase);
154
+ nullSafe(capitalize);
116
155
 
117
156
  var transformObjectDeep = function transformObjectDeep(object, keyValueTransformer) {
118
157
  var objectPreProcessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
@@ -159,6 +198,21 @@ var deepFreezeObject = function deepFreezeObject(object) {
159
198
 
160
199
  return object;
161
200
  };
201
+ var filterNonNull = function filterNonNull(object) {
202
+ return Object.fromEntries(Object.entries(object).filter(function (_ref5) {
203
+ var _ref6 = _slicedToArray(_ref5, 2),
204
+ v = _ref6[1];
205
+
206
+ return !ramda.isNil(v);
207
+ }).map(function (_ref7) {
208
+ var _ref8 = _slicedToArray(_ref7, 2),
209
+ k = _ref8[0],
210
+ v = _ref8[1];
211
+
212
+ return [k, _typeof(v) === "object" && !Array.isArray(v) ? filterNonNull(v) : v];
213
+ }));
214
+ };
215
+ nullSafe(filterNonNull);
162
216
 
163
217
  var HEADERS_KEYS = {
164
218
  xAuthEmail: "X-Auth-Email",
package/initializers.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Toastr } from '@bigbinary/neetoui';
2
2
  import axios from 'axios';
3
3
  import i18next from 'i18next';
4
- import { values, evolve, omit, modify, mergeDeepLeft, either, isEmpty, isNil } from 'ramda';
4
+ import { curryN, isNil, values, evolve, omit, modify, mergeDeepLeft, either, isEmpty } from 'ramda';
5
5
  import { initReactI18next } from 'react-i18next';
6
6
  import Logger from 'js-logger';
7
7
  import mixpanel from 'mixpanel-browser';
@@ -92,6 +92,37 @@ function _slicedToArray(arr, i) {
92
92
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
93
93
  }
94
94
 
95
+ /**
96
+ * @template {Function} T
97
+ * @param {T} func
98
+ * @returns {T}
99
+ */
100
+
101
+ var nullSafe = function nullSafe(func) {
102
+ return (// @ts-ignore
103
+ curryN(func.length, function () {
104
+ var _ref;
105
+
106
+ var dataArg = (_ref = func.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref]);
107
+ return isNil(dataArg) ? dataArg : func.apply(void 0, arguments);
108
+ })
109
+ );
110
+ };
111
+
112
+ var slugify = function slugify(string) {
113
+ return string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
114
+ .replace(/&/g, "-and-") // Replace & with 'and'
115
+ .replace(/[^\w-]+/g, "") // Remove all non-word characters
116
+ .replace(/--+/g, "-") // Replace multiple - with single -
117
+ .replace(/^-+/, "") // Trim - from start of text
118
+ .replace(/-+$/, "");
119
+ }; // Trim - from end of text
120
+
121
+ var humanize = function humanize(string) {
122
+ string = string.replace(/[_-]+/g, " ").replace(/\s{2,}/g, " ").replace(/([a-z\d])([A-Z])/g, "$1" + " " + "$2").replace(/([A-Z]+)([A-Z][a-z\d]+)/g, "$1" + " " + "$2").toLowerCase().trim();
123
+ string = string.charAt(0).toUpperCase() + string.slice(1);
124
+ return string;
125
+ };
95
126
  var snakeToCamelCase = function snakeToCamelCase(string) {
96
127
  return string.replace(/(_\w)/g, function (letter) {
97
128
  return letter[1].toUpperCase();
@@ -102,6 +133,14 @@ var camelToSnakeCase = function camelToSnakeCase(string) {
102
133
  return "_".concat(letter.toLowerCase());
103
134
  });
104
135
  };
136
+ var capitalize = function capitalize(string) {
137
+ return string.charAt(0).toUpperCase() + string.slice(1);
138
+ };
139
+ nullSafe(slugify);
140
+ nullSafe(humanize);
141
+ nullSafe(snakeToCamelCase);
142
+ nullSafe(camelToSnakeCase);
143
+ nullSafe(capitalize);
105
144
 
106
145
  var transformObjectDeep = function transformObjectDeep(object, keyValueTransformer) {
107
146
  var objectPreProcessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
@@ -148,6 +187,21 @@ var deepFreezeObject = function deepFreezeObject(object) {
148
187
 
149
188
  return object;
150
189
  };
190
+ var filterNonNull = function filterNonNull(object) {
191
+ return Object.fromEntries(Object.entries(object).filter(function (_ref5) {
192
+ var _ref6 = _slicedToArray(_ref5, 2),
193
+ v = _ref6[1];
194
+
195
+ return !isNil(v);
196
+ }).map(function (_ref7) {
197
+ var _ref8 = _slicedToArray(_ref7, 2),
198
+ k = _ref8[0],
199
+ v = _ref8[1];
200
+
201
+ return [k, _typeof(v) === "object" && !Array.isArray(v) ? filterNonNull(v) : v];
202
+ }));
203
+ };
204
+ nullSafe(filterNonNull);
151
205
 
152
206
  var HEADERS_KEYS = {
153
207
  xAuthEmail: "X-Auth-Email",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "2.0.12",
3
+ "version": "2.0.13",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
package/pure.cjs.js CHANGED
@@ -75,6 +75,67 @@ function _typeof(obj) {
75
75
  }, _typeof(obj);
76
76
  }
77
77
 
78
+ /**
79
+ * @template {Function} T
80
+ * @param {T} func
81
+ * @returns {T}
82
+ */
83
+
84
+ var nullSafe = function nullSafe(func) {
85
+ return (// @ts-ignore
86
+ ramda.curryN(func.length, function () {
87
+ var _ref;
88
+
89
+ var dataArg = (_ref = func.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref]);
90
+ return ramda.isNil(dataArg) ? dataArg : func.apply(void 0, arguments);
91
+ })
92
+ );
93
+ };
94
+ var noop = function noop() {};
95
+ var toLabelAndValue = function toLabelAndValue(string) {
96
+ return {
97
+ label: string,
98
+ value: string
99
+ };
100
+ };
101
+ var getRandomInt = function getRandomInt() {
102
+ var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.MAX_SAFE_INTEGER;
103
+ var b = arguments.length > 1 ? arguments[1] : undefined;
104
+
105
+ if (b) {
106
+ a = Math.ceil(a);
107
+ b = Math.floor(b);
108
+ } else {
109
+ b = a;
110
+ a = 0;
111
+ }
112
+
113
+ return Math.floor(Math.random() * (b - a) + a);
114
+ };
115
+ var randomPick = function randomPick() {
116
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
117
+ args[_key] = arguments[_key];
118
+ }
119
+
120
+ var randomNumber = getRandomInt(0, args.length);
121
+ return args[randomNumber];
122
+ };
123
+ var dynamicArray = function dynamicArray(count, elementGenerator) {
124
+ return Array.from({
125
+ length: count
126
+ }, function (_, index) {
127
+ return elementGenerator(index);
128
+ });
129
+ };
130
+ var isNotNil = /*#__PURE__*/ramda.complement(ramda.isNil);
131
+ var isNotEmpty = /*#__PURE__*/ramda.complement(ramda.isEmpty);
132
+ var notEquals = /*#__PURE__*/ramda.curry(function (x, y) {
133
+ return x !== y;
134
+ });
135
+ var isNot = notEquals;
136
+ var notEqualsDeep = /*#__PURE__*/ramda.complement(ramda.equals);
137
+ var isNotEqualDeep = notEqualsDeep;
138
+
78
139
  var slugify = function slugify(string) {
79
140
  return string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
80
141
  .replace(/&/g, "-and-") // Replace & with 'and'
@@ -105,6 +166,14 @@ var capitalize = function capitalize(string) {
105
166
  var truncate = function truncate(string, length) {
106
167
  return string.length > length ? ramda.concat(ramda.slice(0, length, string), "...") : string;
107
168
  };
169
+ var _slugify = nullSafe(slugify);
170
+ var _humanize = nullSafe(humanize);
171
+ var _snakeToCamelCase = nullSafe(snakeToCamelCase);
172
+ var _camelToSnakeCase = nullSafe(camelToSnakeCase);
173
+ var _capitalize = nullSafe(capitalize);
174
+ var _truncate = function _truncate(string, length) {
175
+ return ramda.isNil(string) ? string : truncate(string, length);
176
+ };
108
177
 
109
178
  var matchesImpl = function matchesImpl(pattern, object) {
110
179
  var __parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : object;
@@ -196,6 +265,7 @@ var filterNonNull = function filterNonNull(object) {
196
265
  return [k, _typeof(v) === "object" && !Array.isArray(v) ? filterNonNull(v) : v];
197
266
  }));
198
267
  };
268
+ var _filterNonNull = nullSafe(filterNonNull);
199
269
 
200
270
  function _defineProperty(obj, key, value) {
201
271
  if (key in obj) {
@@ -326,52 +396,52 @@ var copyKeysDeep = /*#__PURE__*/ramda.curry(function (keyMap, objectArray) {
326
396
  return copyKeysSingleObject(object, keyMap);
327
397
  });
328
398
  });
329
-
330
- var noop = function noop() {};
331
- var toLabelAndValue = function toLabelAndValue(string) {
332
- return {
333
- label: string,
334
- value: string
335
- };
336
- };
337
- var getRandomInt = function getRandomInt() {
338
- var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.MAX_SAFE_INTEGER;
339
- var b = arguments.length > 1 ? arguments[1] : undefined;
340
-
341
- if (b) {
342
- a = Math.ceil(a);
343
- b = Math.floor(b);
344
- } else {
345
- b = a;
346
- a = 0;
347
- }
348
-
349
- return Math.floor(Math.random() * (b - a) + a);
350
- };
351
- var randomPick = function randomPick() {
352
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
353
- args[_key] = arguments[_key];
354
- }
355
-
356
- var randomNumber = getRandomInt(0, args.length);
357
- return args[randomNumber];
358
- };
359
- var dynamicArray = function dynamicArray(count, elementGenerator) {
360
- return Array.from({
361
- length: count
362
- }, function (_, index) {
363
- return elementGenerator(index);
364
- });
365
- };
366
- var isNotNil = /*#__PURE__*/ramda.complement(ramda.isNil);
367
- var isNotEmpty = /*#__PURE__*/ramda.complement(ramda.isEmpty);
368
- var notEquals = /*#__PURE__*/ramda.curry(function (x, y) {
369
- return x !== y;
370
- });
371
- var isNot = notEquals;
372
- var notEqualsDeep = /*#__PURE__*/ramda.complement(ramda.equals);
373
- var isNotEqualDeep = notEqualsDeep;
374
-
399
+ var _removeById = /*#__PURE__*/nullSafe(removeById);
400
+ var _findById = /*#__PURE__*/nullSafe(findById);
401
+ var _replaceById = /*#__PURE__*/nullSafe(replaceById);
402
+ var _modifyById = /*#__PURE__*/nullSafe(modifyById);
403
+ var _findBy = /*#__PURE__*/nullSafe(findBy);
404
+ var _removeBy = /*#__PURE__*/nullSafe(removeBy);
405
+ var _replaceBy = /*#__PURE__*/nullSafe(replaceBy);
406
+ var _modifyBy = /*#__PURE__*/nullSafe(modifyBy);
407
+ var _existsById = /*#__PURE__*/nullSafe(existsById);
408
+ var _existsBy = /*#__PURE__*/nullSafe(existsBy);
409
+ var _findLastBy = /*#__PURE__*/nullSafe(findLastBy);
410
+ var _findIndexById = /*#__PURE__*/nullSafe(findIndexById);
411
+ var _findIndexBy = /*#__PURE__*/nullSafe(findIndexBy);
412
+ var _findLastIndexBy = /*#__PURE__*/nullSafe(findLastIndexBy);
413
+ var _filterBy = /*#__PURE__*/nullSafe(filterBy);
414
+ var _countBy = /*#__PURE__*/nullSafe(countBy);
415
+ var _copyKeys = /*#__PURE__*/nullSafe(copyKeys);
416
+ var _renameKeys = /*#__PURE__*/nullSafe(renameKeys);
417
+ var _copyKeysDeep = /*#__PURE__*/nullSafe(copyKeysDeep);
418
+
419
+ exports._camelToSnakeCase = _camelToSnakeCase;
420
+ exports._capitalize = _capitalize;
421
+ exports._copyKeys = _copyKeys;
422
+ exports._copyKeysDeep = _copyKeysDeep;
423
+ exports._countBy = _countBy;
424
+ exports._existsBy = _existsBy;
425
+ exports._existsById = _existsById;
426
+ exports._filterBy = _filterBy;
427
+ exports._filterNonNull = _filterNonNull;
428
+ exports._findBy = _findBy;
429
+ exports._findById = _findById;
430
+ exports._findIndexBy = _findIndexBy;
431
+ exports._findIndexById = _findIndexById;
432
+ exports._findLastBy = _findLastBy;
433
+ exports._findLastIndexBy = _findLastIndexBy;
434
+ exports._humanize = _humanize;
435
+ exports._modifyBy = _modifyBy;
436
+ exports._modifyById = _modifyById;
437
+ exports._removeBy = _removeBy;
438
+ exports._removeById = _removeById;
439
+ exports._renameKeys = _renameKeys;
440
+ exports._replaceBy = _replaceBy;
441
+ exports._replaceById = _replaceById;
442
+ exports._slugify = _slugify;
443
+ exports._snakeToCamelCase = _snakeToCamelCase;
444
+ exports._truncate = _truncate;
375
445
  exports.camelToSnakeCase = camelToSnakeCase;
376
446
  exports.capitalize = capitalize;
377
447
  exports.copyKeys = copyKeys;
@@ -403,6 +473,7 @@ exports.modifyById = modifyById;
403
473
  exports.noop = noop;
404
474
  exports.notEquals = notEquals;
405
475
  exports.notEqualsDeep = notEqualsDeep;
476
+ exports.nullSafe = nullSafe;
406
477
  exports.preprocessForSerialization = preprocessForSerialization;
407
478
  exports.randomPick = randomPick;
408
479
  exports.removeBy = removeBy;
package/pure.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type Primitives = symbol | string | number | boolean | null | undefined;
2
2
  export type ObjectAndPrimitives = Primitives | object;
3
3
  type KeyType = string | number | symbol;
4
+ type NilOr<T> = T | null | undefined;
4
5
 
5
6
  type Matchable<Obj, Parent, key extends keyof Obj> =
6
7
  | ((object: Obj[key], parent: Parent) => boolean)
@@ -21,7 +22,10 @@ type MatchPattern<Obj = any, Parent = Obj> = Obj extends any[]
21
22
  };
22
23
 
23
24
  export function camelToSnakeCase(string: string): string;
25
+ export function _camelToSnakeCase(string: NilOr<string>): NilOr<string>;
26
+
24
27
  export function capitalize(string: string): string;
28
+ export function _capitalize(string: NilOr<string>): NilOr<string>;
25
29
 
26
30
  export function copyKeys<T>(
27
31
  keyMap: { [key in keyof Partial<T>]: string },
@@ -30,16 +34,37 @@ export function copyKeys<T>(
30
34
  export function copyKeys(keyMap: {
31
35
  [key: string]: string;
32
36
  }): <T>(objectArray: T[]) => (T & { [key: string]: any })[];
37
+ export function _copyKeys<T>(
38
+ keyMap: { [key in keyof Partial<T>]: string },
39
+ objectArray: NilOr<T[]>
40
+ ): NilOr<(T & { [key: string]: any })[]>;
41
+ export function _copyKeys(keyMap: {
42
+ [key: string]: string;
43
+ }): <T>(objectArray: NilOr<T[]>) => NilOr<(T & { [key: string]: any })[]>;
33
44
 
34
45
  export function copyKeysDeep(keyMap: object, objectArray: object[]): object[];
35
46
  export function copyKeysDeep(
36
47
  keyMap: object
37
48
  ): (objectArray: object[]) => object[];
49
+ export function _copyKeysDeep(
50
+ keyMap: object,
51
+ objectArray: NilOr<object[]>
52
+ ): NilOr<object[]>;
53
+ export function _copyKeysDeep(
54
+ keyMap: object
55
+ ): (objectArray: NilOr<object[]>) => NilOr<object[]>;
38
56
 
39
57
  export function countBy<T>(pattern: MatchPattern<T>, entityArray: T[]): number;
40
58
  export function countBy(
41
59
  pattern: MatchPattern
42
60
  ): (entityArray: object[]) => number;
61
+ export function _countBy<T>(
62
+ pattern: MatchPattern<T>,
63
+ entityArray: NilOr<T[]>
64
+ ): NilOr<number>;
65
+ export function _countBy(
66
+ pattern: MatchPattern
67
+ ): (entityArray: NilOr<object[]>) => NilOr<number>;
43
68
 
44
69
  export function deepFreezeObject<T>(object: T): Readonly<T>;
45
70
 
@@ -56,19 +81,51 @@ export function existsBy(
56
81
  pattern: MatchPattern
57
82
  ): (entityArray: object[]) => boolean;
58
83
 
84
+ export function _existsBy<T>(
85
+ pattern: MatchPattern<T>,
86
+ entityArray: NilOr<T[]>
87
+ ): NilOr<boolean>;
88
+ export function _existsBy(
89
+ pattern: MatchPattern
90
+ ): (entityArray: NilOr<object[]>) => NilOr<boolean>;
91
+
59
92
  export function existsById(id: any, entityArray: object[]): boolean;
60
93
  export function existsById(id: any): (entityArray: object[]) => boolean;
94
+ export function _existsById(
95
+ id: any,
96
+ entityArray: NilOr<object[]>
97
+ ): NilOr<boolean>;
98
+ export function _existsById(
99
+ id: any
100
+ ): (entityArray: NilOr<object[]>) => NilOr<boolean>;
61
101
 
62
102
  export function filterBy<T>(pattern: MatchPattern<T>, entityArray: T[]): T[];
63
103
  export function filterBy(pattern: MatchPattern): <T>(entityArray: T[]) => T[];
104
+ export function _filterBy<T>(
105
+ pattern: MatchPattern<T>,
106
+ entityArray: NilOr<T[]>
107
+ ): NilOr<T[]>;
108
+ export function _filterBy(
109
+ pattern: MatchPattern
110
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T[]>;
64
111
 
65
112
  export function filterNonNull(object: object): object;
113
+ export function _filterNonNull(object: NilOr<object>): NilOr<object>;
66
114
 
67
115
  export function findBy<T>(pattern: MatchPattern<T>, entityArray: T[]): T;
68
116
  export function findBy(pattern: MatchPattern): <T>(entityArray: T[]) => T;
117
+ export function _findBy<T>(
118
+ pattern: MatchPattern<T>,
119
+ entityArray: NilOr<T[]>
120
+ ): NilOr<T>;
121
+ export function _findBy(
122
+ pattern: MatchPattern
123
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T>;
69
124
 
70
125
  export function findById<T>(id: any, entityArray: T[]): T;
71
126
  export function findById(id: any): <T>(entityArray: T[]) => T;
127
+ export function _findById<T>(id: any, entityArray: NilOr<T[]>): NilOr<T>;
128
+ export function _findById(id: any): <T>(entityArray: NilOr<T[]>) => NilOr<T>;
72
129
 
73
130
  export function findIndexBy<T>(
74
131
  pattern: MatchPattern<T>,
@@ -77,18 +134,47 @@ export function findIndexBy<T>(
77
134
  export function findIndexBy(
78
135
  pattern: MatchPattern
79
136
  ): (entityArray: object[]) => number;
137
+ export function _findIndexBy<T>(
138
+ pattern: MatchPattern<T>,
139
+ entityArray: NilOr<T[]>
140
+ ): NilOr<number>;
141
+ export function _findIndexBy(
142
+ pattern: MatchPattern
143
+ ): (entityArray: NilOr<object[]>) => NilOr<number>;
80
144
 
81
145
  export function findIndexById(id: any, entityArray: object[]): number;
82
146
  export function findIndexById(id: any): (entityArray: object[]) => number;
147
+ export function _findIndexById(
148
+ id: any,
149
+ entityArray: NilOr<object[]>
150
+ ): NilOr<number>;
151
+ export function _findIndexById(
152
+ id: any
153
+ ): (entityArray: NilOr<object[]>) => NilOr<number>;
83
154
 
84
155
  export function findLastBy<T>(pattern: MatchPattern<T>, entityArray: T[]): T;
85
156
  export function findLastBy(pattern: MatchPattern): <T>(entityArray: T[]) => T;
157
+ export function _findLastBy<T>(
158
+ pattern: MatchPattern<T>,
159
+ entityArray: NilOr<T[]>
160
+ ): NilOr<T>;
161
+ export function _findLastBy(
162
+ pattern: MatchPattern
163
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T>;
86
164
 
87
165
  export function findLastIndexBy(id: any, entityArray: object[]): number;
88
166
  export function findLastIndexBy(id: any): (entityArray: object[]) => number;
167
+ export function _findLastIndexBy(
168
+ id: any,
169
+ entityArray: NilOr<object[]>
170
+ ): NilOr<number>;
171
+ export function _findLastIndexBy(
172
+ id: any
173
+ ): (entityArray: NilOr<object[]>) => NilOr<number>;
89
174
 
90
175
  export function getRandomInt(a?: number, b?: number): number;
91
176
  export function humanize(string: string): string;
177
+ export function _humanize(string: NilOr<string>): NilOr<string>;
92
178
 
93
179
  export function isNot(a: any, b: any): boolean;
94
180
  export function isNot(a: any): (b: any) => boolean;
@@ -121,6 +207,21 @@ export function modifyBy(
121
207
  export function modifyBy(
122
208
  pattern: MatchPattern
123
209
  ): <T>(modifier: (previous: T) => T) => (entityArray: T[]) => T[];
210
+ export function _modifyBy<T>(
211
+ pattern: MatchPattern<T>,
212
+ modifier: (previous: T) => T,
213
+ entityArray: NilOr<T[]>
214
+ ): NilOr<T[]>;
215
+ export function _modifyBy<T>(
216
+ pattern: MatchPattern<T>,
217
+ modifier: (previous: T) => T
218
+ ): (entityArray: NilOr<T[]>) => NilOr<T[]>;
219
+ export function _modifyBy(
220
+ pattern: MatchPattern
221
+ ): <T>(modifier: (previous: T) => T, entityArray: NilOr<T[]>) => NilOr<T[]>;
222
+ export function _modifyBy(
223
+ pattern: MatchPattern
224
+ ): <T>(modifier: (previous: T) => T) => (entityArray: NilOr<T[]>) => NilOr<T[]>;
124
225
 
125
226
  export function modifyById<T>(
126
227
  id: any,
@@ -137,6 +238,21 @@ export function modifyById(
137
238
  export function modifyById(
138
239
  id: any
139
240
  ): <T>(modifier: (previous: T) => T) => (entityArray: T[]) => T[];
241
+ export function _modifyById<T>(
242
+ id: any,
243
+ modifier: (previous: T) => T,
244
+ entityArray: NilOr<T[]>
245
+ ): NilOr<T[]>;
246
+ export function _modifyById<T>(
247
+ id: any,
248
+ modifier: (previous: T) => T
249
+ ): (entityArray: NilOr<T[]>) => NilOr<T[]>;
250
+ export function _modifyById(
251
+ id: any
252
+ ): <T>(modifier: (previous: T) => T, entityArray: NilOr<T[]>) => NilOr<T[]>;
253
+ export function _modifyById(
254
+ id: any
255
+ ): <T>(modifier: (previous: T) => T) => (entityArray: NilOr<T[]>) => NilOr<T[]>;
140
256
 
141
257
  export function noop(...args: any[]): void;
142
258
 
@@ -150,29 +266,64 @@ export function randomPick<T>(...args: T[]): T;
150
266
 
151
267
  export function removeBy<T>(pattern: MatchPattern<T>, entityArray: T[]): T[];
152
268
  export function removeBy(pattern: MatchPattern): <T>(entityArray: T[]) => T[];
269
+ export function _removeBy<T>(
270
+ pattern: MatchPattern<T>,
271
+ entityArray: NilOr<T[]>
272
+ ): NilOr<T[]>;
273
+ export function _removeBy(
274
+ pattern: MatchPattern
275
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T[]>;
153
276
 
154
277
  export function removeById<T>(id: any, entityArray: T[]): T[];
155
278
  export function removeById(id: any): <T>(entityArray: T[]) => T[];
279
+ export function _removeById<T>(id: any, entityArray: NilOr<T[]>): NilOr<T[]>;
280
+ export function _removeById(
281
+ id: any
282
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T[]>;
156
283
 
157
284
  export function renameKeys<T, M extends { [key in keyof Partial<T>]: string }>(
158
285
  keyMap: M,
159
286
  entityArray: T[]
160
287
  ): (Omit<T, keyof M> & { [key: string]: any })[];
161
-
162
288
  export function renameKeys<M extends { [key: string]: string }>(
163
289
  keyMap: M
164
290
  ): <T>(entityArray: T[]) => (Omit<T, keyof M> & { [key: string]: any })[];
291
+ export function _renameKeys<T, M extends { [key in keyof Partial<T>]: string }>(
292
+ keyMap: M,
293
+ entityArray: NilOr<T[]>
294
+ ): NilOr<(Omit<T, keyof M> & { [key: string]: any })[]>;
295
+ export function _renameKeys<M extends { [key: string]: string }>(
296
+ keyMap: M
297
+ ): <T>(
298
+ entityArray: NilOr<T[]>
299
+ ) => NilOr<(Omit<T, keyof M> & { [key: string]: any })[]>;
165
300
 
166
301
  export function replaceBy<T>(pattern: MatchPattern<T>, entityArray: T[]): T[];
167
302
  export function replaceBy(pattern: MatchPattern): <T>(entityArray: T[]) => T[];
303
+ export function _replaceBy<T>(
304
+ pattern: MatchPattern<T>,
305
+ entityArray: NilOr<T[]>
306
+ ): NilOr<T[]>;
307
+ export function _replaceBy(
308
+ pattern: MatchPattern
309
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T[]>;
168
310
 
169
311
  export function replaceById<T>(id: any, entityArray: T[]): T[];
170
312
  export function replaceById(id: any): <T>(entityArray: T[]) => T[];
313
+ export function _replaceById<T>(id: any, entityArray: NilOr<T[]>): NilOr<T[]>;
314
+ export function _replaceById(
315
+ id: any
316
+ ): <T>(entityArray: NilOr<T[]>) => NilOr<T[]>;
171
317
 
172
318
  export function serializeKeysToSnakeCase(object: object): object;
173
319
  export function preprocessForSerialization(object: object): object;
320
+
174
321
  export function slugify(string: string): string;
322
+ export function _slugify(string: NilOr<string>): NilOr<string>;
323
+
175
324
  export function snakeToCamelCase(string: string): string;
325
+ export function _snakeToCamelCase(string: NilOr<string>): NilOr<string>;
326
+
176
327
  export function toLabelAndValue(string: string): {
177
328
  label: string;
178
329
  value: string;
@@ -184,3 +335,8 @@ export function transformObjectDeep(
184
335
  ): object;
185
336
 
186
337
  export function truncate(string: string, length: number): string;
338
+ export function truncate(string: NilOr<string>, length: number): NilOr<string>;
339
+
340
+ export function nullSafe<T extends Function>(
341
+ func: T
342
+ ): (...args: any) => ReturnType<T>;