@koine/utils 2.0.0-beta.21 → 2.0.0-beta.23

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/areEqual.js CHANGED
@@ -7,9 +7,7 @@ function areEqualArrays(a, b) {
7
7
  if (a.length !== b.length)
8
8
  return false;
9
9
  for (var i = 0; i < a.length; i++) {
10
- var aValue = a[i];
11
- var bValue = b[i];
12
- if (!areEqual(aValue, bValue))
10
+ if (!areEqual(a[i], b[i]))
13
11
  return false;
14
12
  }
15
13
  return true;
@@ -19,17 +17,11 @@ function areEqualObjects(a, b) {
19
17
  if (!b)
20
18
  return false;
21
19
  var aKeys = Object.keys(a);
22
- var bKeys = Object.keys(b);
23
- if (aKeys.length !== bKeys.length) {
24
- return false;
25
- }
26
20
  try {
27
21
  for (var aKeys_1 = __values(aKeys), aKeys_1_1 = aKeys_1.next(); !aKeys_1_1.done; aKeys_1_1 = aKeys_1.next()) {
28
22
  var _key = aKeys_1_1.value;
29
23
  var key = _key;
30
- var aValue = a[key];
31
- var bValue = b[key];
32
- if (!areEqual(aValue, bValue)) {
24
+ if (!areEqual(a[key], b[key])) {
33
25
  return false;
34
26
  }
35
27
  }
@@ -0,0 +1,2 @@
1
+ export declare function arrayFilterFalsy<T extends unknown[]>(list?: null | T): Exclude<NonNullable<T>[number], false | "" | 0 | undefined>[];
2
+ export default arrayFilterFalsy;
@@ -0,0 +1,4 @@
1
+ export function arrayFilterFalsy(list) {
2
+ return (list ? list.filter(function (r) { return !!r; }) : []);
3
+ }
4
+ export default arrayFilterFalsy;
package/cjs/areEqual.js CHANGED
@@ -10,9 +10,7 @@ function areEqualArrays(a, b) {
10
10
  if (a.length !== b.length)
11
11
  return false;
12
12
  for (var i = 0; i < a.length; i++) {
13
- var aValue = a[i];
14
- var bValue = b[i];
15
- if (!areEqual(aValue, bValue))
13
+ if (!areEqual(a[i], b[i]))
16
14
  return false;
17
15
  }
18
16
  return true;
@@ -22,17 +20,11 @@ function areEqualObjects(a, b) {
22
20
  if (!b)
23
21
  return false;
24
22
  var aKeys = Object.keys(a);
25
- var bKeys = Object.keys(b);
26
- if (aKeys.length !== bKeys.length) {
27
- return false;
28
- }
29
23
  try {
30
24
  for (var aKeys_1 = tslib_1.__values(aKeys), aKeys_1_1 = aKeys_1.next(); !aKeys_1_1.done; aKeys_1_1 = aKeys_1.next()) {
31
25
  var _key = aKeys_1_1.value;
32
26
  var key = _key;
33
- var aValue = a[key];
34
- var bValue = b[key];
35
- if (!areEqual(aValue, bValue)) {
27
+ if (!areEqual(a[key], b[key])) {
36
28
  return false;
37
29
  }
38
30
  }
@@ -0,0 +1,2 @@
1
+ export declare function arrayFilterFalsy<T extends unknown[]>(list?: null | T): Exclude<NonNullable<T>[number], false | "" | 0 | undefined>[];
2
+ export default arrayFilterFalsy;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.arrayFilterFalsy = void 0;
4
+ function arrayFilterFalsy(list) {
5
+ return (list ? list.filter(function (r) { return !!r; }) : []);
6
+ }
7
+ exports.arrayFilterFalsy = arrayFilterFalsy;
8
+ exports.default = arrayFilterFalsy;
package/cjs/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { accentsSets, type AccentsSet } from "./accentSets";
2
2
  export { addOrReplaceAtIdx } from "./addOrReplaceAtIdx";
3
3
  export { areEqual } from "./areEqual";
4
+ export { arrayFilterFalsy } from "./arrayFilterFalsy";
4
5
  export { arrayOfAll } from "./arrayOfAll";
5
6
  export { arraySum } from "./arraySum";
6
7
  export { arrayToLookup } from "./arrayToLookup";
package/cjs/index.js CHANGED
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEmptyArray = exports.isDate = exports.isBrowserNow = exports.isBrowser = exports.isBoolean = exports.isBlob = exports.isArray = exports.isAnyObject = exports.imgEmptyPixel = exports.getUrlQueryParams = exports.getUrlPathnameParts = exports.getUrlHashPathname = exports.getUrlHashParams = exports.getType = exports.getParamAsString = exports.getParamAsInt = exports.getParamAmong = exports.getNonce = exports.getMediaQueryWidthTailwindScreens = exports.getMediaQueryWidthResolvers = exports.getKeys = exports.getEmptyArray = exports.gbToBytes = exports.forin = exports.findDuplicatedIndexes = exports.errorToString = exports.ensureInt = exports.encode = exports.Emitter = exports.Defer = exports.decode = exports.debouncePromise = exports.debounceRaf = exports.debounce = exports.createPalette = exports.convertRange = exports.clsx = exports.clamp = exports.chunkBySize = exports.chunkByChunks = exports.changeUrlPath = exports.capitalize = exports.buildUrlQueryString = exports.arrayUniqueByProperties = exports.arrayToLookup = exports.arraySum = exports.arrayOfAll = exports.areEqual = exports.addOrReplaceAtIdx = exports.accentsSets = void 0;
4
- exports.objectToArray = exports.objectOmit = exports.objectPick = exports.objectFlip = exports.normaliseUrl = exports.normaliseUrlPathname = exports.noop = exports.moveSortableArrayItemByKey = exports.mergeUrlQueryParams = exports.mergeObjects = exports.mbToBytes = exports.matchSorter = exports.mapListBy = exports.lowercase = exports.kbToBytes = exports.isWeakSet = exports.isWeakMap = exports.isUndefined = exports.isType = exports.isSymbol = exports.isString = exports.isSet = exports.isServerNow = exports.isServer = exports.isRegExp = exports.isPromise = exports.isPrimitive = exports.isPositiveNumber = exports.isPlainObject = exports.isOneOf = exports.isObject = exports.isObjectLike = exports.isNumber = exports.isNull = exports.isNullOrUndefined = exports.isNegativeNumber = exports.isNaNValue = exports.isMap = exports.isInt = exports.isFunction = exports.isFullString = exports.isFullObject = exports.isFullArray = exports.isFormData = exports.isFloat = exports.isFile = exports.isExternalUrl = exports.isError = exports.isEmptyString = exports.isEmptyObject = void 0;
5
- exports.wait = exports.uuidNumeric = exports.uuid = exports.uppercase = exports.updateUrlQueryParams = exports.updateLinkParams = exports.uid = exports.tryUntil = exports.truncate = exports.transformToUrlPathname = exports.toRgba = exports.toNumber = exports.titleCase = exports.throttle = exports.swapMap = exports.split = exports.slugify = exports.shuffle = exports.setCookie = exports.serializeCookie = exports.roundTo = exports.round = exports.removeUrlQueryParams = exports.removeTralingSlash = exports.removeIndexesFromArray = exports.removeDuplicatesComparing = exports.removeDuplicatesByKey = exports.removeCookie = exports.removeAccents = exports.readCookie = exports.randomKey = exports.randomInt = exports.quaranteneProps = exports.parseURL = exports.parseCookie = void 0;
3
+ exports.isDate = exports.isBrowserNow = exports.isBrowser = exports.isBoolean = exports.isBlob = exports.isArray = exports.isAnyObject = exports.imgEmptyPixel = exports.getUrlQueryParams = exports.getUrlPathnameParts = exports.getUrlHashPathname = exports.getUrlHashParams = exports.getType = exports.getParamAsString = exports.getParamAsInt = exports.getParamAmong = exports.getNonce = exports.getMediaQueryWidthTailwindScreens = exports.getMediaQueryWidthResolvers = exports.getKeys = exports.getEmptyArray = exports.gbToBytes = exports.forin = exports.findDuplicatedIndexes = exports.errorToString = exports.ensureInt = exports.encode = exports.Emitter = exports.Defer = exports.decode = exports.debouncePromise = exports.debounceRaf = exports.debounce = exports.createPalette = exports.convertRange = exports.clsx = exports.clamp = exports.chunkBySize = exports.chunkByChunks = exports.changeUrlPath = exports.capitalize = exports.buildUrlQueryString = exports.arrayUniqueByProperties = exports.arrayToLookup = exports.arraySum = exports.arrayOfAll = exports.arrayFilterFalsy = exports.areEqual = exports.addOrReplaceAtIdx = exports.accentsSets = void 0;
4
+ exports.objectOmit = exports.objectPick = exports.objectFlip = exports.normaliseUrl = exports.normaliseUrlPathname = exports.noop = exports.moveSortableArrayItemByKey = exports.mergeUrlQueryParams = exports.mergeObjects = exports.mbToBytes = exports.matchSorter = exports.mapListBy = exports.lowercase = exports.kbToBytes = exports.isWeakSet = exports.isWeakMap = exports.isUndefined = exports.isType = exports.isSymbol = exports.isString = exports.isSet = exports.isServerNow = exports.isServer = exports.isRegExp = exports.isPromise = exports.isPrimitive = exports.isPositiveNumber = exports.isPlainObject = exports.isOneOf = exports.isObject = exports.isObjectLike = exports.isNumber = exports.isNull = exports.isNullOrUndefined = exports.isNegativeNumber = exports.isNaNValue = exports.isMap = exports.isInt = exports.isFunction = exports.isFullString = exports.isFullObject = exports.isFullArray = exports.isFormData = exports.isFloat = exports.isFile = exports.isExternalUrl = exports.isError = exports.isEmptyString = exports.isEmptyObject = exports.isEmptyArray = void 0;
5
+ exports.wait = exports.uuidNumeric = exports.uuid = exports.uppercase = exports.updateUrlQueryParams = exports.updateLinkParams = exports.uid = exports.tryUntil = exports.truncate = exports.transformToUrlPathname = exports.toRgba = exports.toNumber = exports.titleCase = exports.throttle = exports.swapMap = exports.split = exports.slugify = exports.shuffle = exports.setCookie = exports.serializeCookie = exports.roundTo = exports.round = exports.removeUrlQueryParams = exports.removeTralingSlash = exports.removeIndexesFromArray = exports.removeDuplicatesComparing = exports.removeDuplicatesByKey = exports.removeCookie = exports.removeAccents = exports.readCookie = exports.randomKey = exports.randomInt = exports.quaranteneProps = exports.parseURL = exports.parseCookie = exports.objectToArray = void 0;
6
6
  var accentSets_1 = require("./accentSets");
7
7
  Object.defineProperty(exports, "accentsSets", { enumerable: true, get: function () { return accentSets_1.accentsSets; } });
8
8
  var addOrReplaceAtIdx_1 = require("./addOrReplaceAtIdx");
9
9
  Object.defineProperty(exports, "addOrReplaceAtIdx", { enumerable: true, get: function () { return addOrReplaceAtIdx_1.addOrReplaceAtIdx; } });
10
10
  var areEqual_1 = require("./areEqual");
11
11
  Object.defineProperty(exports, "areEqual", { enumerable: true, get: function () { return areEqual_1.areEqual; } });
12
+ var arrayFilterFalsy_1 = require("./arrayFilterFalsy");
13
+ Object.defineProperty(exports, "arrayFilterFalsy", { enumerable: true, get: function () { return arrayFilterFalsy_1.arrayFilterFalsy; } });
12
14
  var arrayOfAll_1 = require("./arrayOfAll");
13
15
  Object.defineProperty(exports, "arrayOfAll", { enumerable: true, get: function () { return arrayOfAll_1.arrayOfAll; } });
14
16
  var arraySum_1 = require("./arraySum");
package/cjs/package.json CHANGED
@@ -2,5 +2,5 @@
2
2
  "name": "@koine/utils",
3
3
  "sideEffects": false,
4
4
  "main": "./index.js",
5
- "types": "./index.d.ts"
5
+ "type": "commonjs"
6
6
  }
package/cjs/throttle.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  export declare function throttle<TFn extends Function, TContext>(fn: TFn, limit: number, context?: TContext): (this: TContext, ...args: any[]) => NodeJS.Timeout | undefined;
2
3
  export default throttle;
package/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { accentsSets, type AccentsSet } from "./accentSets.js";
2
2
  export { addOrReplaceAtIdx } from "./addOrReplaceAtIdx.js";
3
3
  export { areEqual } from "./areEqual.js";
4
+ export { arrayFilterFalsy } from "./arrayFilterFalsy.js";
4
5
  export { arrayOfAll } from "./arrayOfAll.js";
5
6
  export { arraySum } from "./arraySum.js";
6
7
  export { arrayToLookup } from "./arrayToLookup.js";
package/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { accentsSets } from "./accentSets.js";
2
2
  export { addOrReplaceAtIdx } from "./addOrReplaceAtIdx.js";
3
3
  export { areEqual } from "./areEqual.js";
4
+ export { arrayFilterFalsy } from "./arrayFilterFalsy.js";
4
5
  export { arrayOfAll } from "./arrayOfAll.js";
5
6
  export { arraySum } from "./arraySum.js";
6
7
  export { arrayToLookup } from "./arrayToLookup.js";
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@koine/utils",
3
3
  "sideEffects": false,
4
- "main": "./cjs/index.js",
5
- "types": "./index.d.ts",
6
- "type": "module",
7
4
  "module": "./index.js",
5
+ "type": "module",
6
+ "main": "./cjs/index.js",
8
7
  "exports": {
9
8
  ".": {
10
9
  "require": "./cjs/index.js",
@@ -30,6 +29,10 @@
30
29
  "require": "./cjs/areEqual.js",
31
30
  "import": "./areEqual.js"
32
31
  },
32
+ "./arrayFilterFalsy": {
33
+ "require": "./cjs/arrayFilterFalsy.js",
34
+ "import": "./arrayFilterFalsy.js"
35
+ },
33
36
  "./arrayOfAll": {
34
37
  "require": "./cjs/arrayOfAll.js",
35
38
  "import": "./arrayOfAll.js"
@@ -584,5 +587,5 @@
584
587
  }
585
588
  },
586
589
  "dependencies": {},
587
- "version": "2.0.0-beta.21"
590
+ "version": "2.0.0-beta.23"
588
591
  }
package/throttle.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  export declare function throttle<TFn extends Function, TContext>(fn: TFn, limit: number, context?: TContext): (this: TContext, ...args: any[]) => NodeJS.Timeout | undefined;
2
3
  export default throttle;
package/typings.d.ts CHANGED
@@ -2,3 +2,30 @@
2
2
  * List here the global variables used by third party scripts supported within
3
3
  * the `koine` ecosystem.
4
4
  */
5
+
6
+ // as in type-fest start
7
+ type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };
8
+ // as in type-fest end
9
+
10
+ type NotNullProperties<T> = {
11
+ [P in keyof T]: NonNullable<T[P]>;
12
+ };
13
+
14
+ type RequiredNotNullable<T, K extends keyof T> = T &
15
+ Required<NotNullProperties<Pick<T, K>>>;
16
+
17
+ /**
18
+ * Tweak a model by making some properties required (not `optional` and not `nullable`)
19
+ *
20
+ * This is useful to tweak/correct the types generated from Swagger.
21
+ */
22
+ declare type Tweak<
23
+ TModel extends object,
24
+ TRequiredKeys extends keyof TModel | false,
25
+ TReplacements extends Partial<Record<keyof TModel, unknown>> | false,
26
+ > = Simplify<
27
+ TReplacements extends Partial<Record<keyof TModel, unknown>>
28
+ ? Omit<RequiredNotNullable<TModel, TRequiredKeys>, keyof TReplacements> &
29
+ TReplacements
30
+ : RequiredNotNullable<TModel, TRequiredKeys>
31
+ >;