@squiz/optimization-utils 3.0.0 → 3.1.0

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chunkify_1 = require("../chunkify");
4
+ describe('Chunkify Function', () => {
5
+ it('should chunk array into smaller arrays', () => {
6
+ const input = [1, 2, 3, 4, 5];
7
+ const size = 2;
8
+ const expectedOutput = [[1, 2], [3, 4], [5]];
9
+ expect((0, chunkify_1.chunkify)(input, size)).toEqual(expectedOutput);
10
+ });
11
+ it('should return single chunk if size is greater than array length', () => {
12
+ const input = [1, 2, 3];
13
+ const size = 5;
14
+ const expectedOutput = [[1, 2, 3]];
15
+ expect((0, chunkify_1.chunkify)(input, size)).toEqual(expectedOutput);
16
+ });
17
+ it('should return empty array if input is empty', () => {
18
+ const input = [];
19
+ const size = 2;
20
+ const expectedOutput = [];
21
+ expect((0, chunkify_1.chunkify)(input, size)).toEqual(expectedOutput);
22
+ });
23
+ it('should throw error if size is less than 1', () => {
24
+ const input = [1, 2, 3];
25
+ const size = 0;
26
+ expect(() => (0, chunkify_1.chunkify)(input, size)).toThrow('Size must be greater than 0');
27
+ });
28
+ });
29
+ //# sourceMappingURL=chunkify.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkify.test.js","sourceRoot":"","sources":["../../../src/array/__tests__/chunkify.test.ts"],"names":[],"mappings":";;AAAA,0CAAuC;AAEvC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,CAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,CAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,cAAc,GAAyB,EAAE,CAAC;QAEhD,MAAM,CAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC;QAEf,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.chunkify = void 0;
4
4
  const chunkify = (input, size) => {
5
+ if (size === 0) {
6
+ throw new RangeError(`Size must be greater than 0`);
7
+ }
5
8
  const result = [];
6
9
  for (let i = 0; i < input.length; i += size) {
7
10
  result.push(input.slice(i, i + size));
@@ -1 +1 @@
1
- {"version":3,"file":"chunkify.js","sourceRoot":"","sources":["../../src/array/chunkify.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAI,KAAe,EAAE,IAAY,EAAmB,EAAE;IAC5E,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,QAAQ,YAQnB"}
1
+ {"version":3,"file":"chunkify.js","sourceRoot":"","sources":["../../src/array/chunkify.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAI,KAAe,EAAE,IAAY,EAAmB,EAAE;IAC5E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB"}
@@ -0,0 +1,2 @@
1
+ export * from './chunkify';
2
+ export * from './uniqueWith';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./chunkify"), exports);
18
+ __exportStar(require("./uniqueWith"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/array/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B"}
@@ -0,0 +1,22 @@
1
+ export declare class Result<T, TError = Error> {
2
+ readonly type: 'success' | 'failure';
3
+ readonly data?: T;
4
+ readonly error?: TError;
5
+ private constructor();
6
+ static success<U>(data?: U): Result<U, never>;
7
+ static failure<TError>(error: TError): Result<never, TError>;
8
+ isSuccess(): this is Result<T, never> & {
9
+ type: 'success';
10
+ data: T;
11
+ };
12
+ isFailure(): this is Result<never, TError> & {
13
+ type: 'failure';
14
+ error: TError;
15
+ };
16
+ throw(): never | void;
17
+ unwrap(): T;
18
+ match<TResult, TErrorResult>(handlers: {
19
+ success: (data: T, resultThis: Result<T, TError>) => TResult;
20
+ failure: (error: TError, resultThis: Result<T, TError>) => TErrorResult;
21
+ }): TResult | TErrorResult;
22
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
4
+ class Result {
5
+ type;
6
+ data;
7
+ error;
8
+ constructor(type, data, error) {
9
+ this.type = type;
10
+ this.data = data;
11
+ this.error = error;
12
+ }
13
+ static success(data) {
14
+ return new Result('success', data, undefined);
15
+ }
16
+ static failure(error) {
17
+ return new Result('failure', undefined, error);
18
+ }
19
+ isSuccess() {
20
+ return this.type === 'success';
21
+ }
22
+ isFailure() {
23
+ return this.type === 'failure';
24
+ }
25
+ throw() {
26
+ if (this.error) {
27
+ throw this.error;
28
+ }
29
+ }
30
+ unwrap() {
31
+ if (this.isFailure()) {
32
+ throw this.error;
33
+ }
34
+ else {
35
+ return this.data;
36
+ }
37
+ }
38
+ match(handlers) {
39
+ if (this.isSuccess()) {
40
+ return handlers.success(this.data, this);
41
+ }
42
+ else {
43
+ return handlers.failure(this.error, this);
44
+ }
45
+ }
46
+ }
47
+ exports.Result = Result;
48
+ //# sourceMappingURL=Result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/data-structures/Result.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACD,IAAI,CAAwB;IAC5B,IAAI,CAAK;IACT,KAAK,CAAU;IAE/B,YAAoB,IAA2B,EAAE,IAAQ,EAAE,KAAc;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAI,IAAQ;QACxB,OAAO,IAAI,MAAM,CAAW,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAS,KAAa;QAClC,OAAO,IAAI,MAAM,CAAgB,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,SAAS;QAIP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,IAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAwB,QAG5B;QACC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAtDD,wBAsDC"}
@@ -0,0 +1 @@
1
+ export * from './Result';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Result"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-structures/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './types/utilities';
2
- export * from './object/getProperty';
3
- export * from './array/uniqueWith';
4
- export * from './array/chunkify';
1
+ export * from './data-structures';
2
+ export * from './array';
3
+ export * from './object';
4
+ export * from './types';
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types/utilities"), exports);
18
- __exportStar(require("./object/getProperty"), exports);
19
- __exportStar(require("./array/uniqueWith"), exports);
20
- __exportStar(require("./array/chunkify"), exports);
17
+ __exportStar(require("./data-structures"), exports);
18
+ __exportStar(require("./array"), exports);
19
+ __exportStar(require("./object"), exports);
20
+ __exportStar(require("./types"), exports);
21
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAElC,uDAAqC;AAErC,qDAAmC;AACnC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB"}
@@ -0,0 +1 @@
1
+ export * from './getProperty';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getProperty"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=utilities.js.map
3
+ //# sourceMappingURL=class-utilities-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-utilities-types.js","sourceRoot":"","sources":["../../src/types/class-utilities-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './class-utilities-types';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./class-utilities-types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/optimization-utils",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,6 +9,27 @@
9
9
  "build": "tsc",
10
10
  "build:check": "tsc --noEmit"
11
11
  },
12
+ "exports": {
13
+ ".": {
14
+ "default": "./dist/index.js"
15
+ },
16
+ "./array": {
17
+ "default": "./dist/array/index.js",
18
+ "types": "./dist/array/index.d.ts"
19
+ },
20
+ "./object": {
21
+ "default": "./dist/object/index.js",
22
+ "types": "./dist/object/index.d.ts"
23
+ },
24
+ "./data-structures": {
25
+ "default": "./dist/data-structures/index.js",
26
+ "types": "./dist/data-structures/index.d.ts"
27
+ },
28
+ "./types": {
29
+ "default": "./dist/types/index.js",
30
+ "types": "./dist/types/index.d.ts"
31
+ }
32
+ },
12
33
  "dependencies": {},
13
34
  "devDependencies": {},
14
35
  "author": "",
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/types/utilities.ts"],"names":[],"mappings":""}