@fgv/ts-utils 1.3.1 → 1.4.1
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/brand.d.ts +1 -1
- package/brand.d.ts.map +1 -1
- package/converter.d.ts +4 -4
- package/converter.d.ts.map +1 -1
- package/converters.d.ts +16 -16
- package/converters.d.ts.map +1 -1
- package/converters.js +10 -10
- package/csvHelpers.js +3 -6
- package/formatter.d.ts +4 -4
- package/formatter.d.ts.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +4 -2
- package/logger.d.ts +1 -1
- package/logger.d.ts.map +1 -1
- package/normalize.d.ts +43 -0
- package/normalize.d.ts.map +1 -0
- package/normalize.js +139 -0
- package/package.json +11 -10
- package/result.d.ts +17 -17
- package/result.d.ts.map +1 -1
- package/result.js +7 -7
- package/utils.d.ts +1 -1
- package/utils.d.ts.map +1 -1
- package/validation/boolean.d.ts +1 -1
- package/validation/boolean.d.ts.map +1 -1
- package/validation/genericValidator.d.ts +1 -1
- package/validation/genericValidator.d.ts.map +1 -1
- package/validation/number.d.ts +1 -1
- package/validation/number.d.ts.map +1 -1
- package/validation/object.d.ts +1 -1
- package/validation/object.d.ts.map +1 -1
- package/validation/string.d.ts +1 -1
- package/validation/string.d.ts.map +1 -1
- package/validation/traits.d.ts +1 -1
- package/validation/traits.d.ts.map +1 -1
- package/validation/validator.d.ts +1 -1
- package/validation/validator.d.ts.map +1 -1
- package/validation/validatorBase.d.ts +1 -1
- package/validation/validatorBase.d.ts.map +1 -1
- package/ts-utils.d.ts +0 -2475
- package/tsdoc-metadata.json +0 -11
package/formatter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAsC,MAAM,UAAU,CAAC;AAKtE;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAsC,MAAM,UAAU,CAAC;AAKtE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAC,UAAU,GAAC,OAAO,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,qBAAa,eAAe;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAC,SAAS,GAAG,IAAI;IAO/F;;OAEG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;CAGlD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,CAAC,GAAG,SAAS,aAAa,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,0BAA0B,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAEjF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAOrG"}
|
package/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from './formatter';
|
|
|
5
5
|
export * from './rangeOf';
|
|
6
6
|
export * from './result';
|
|
7
7
|
export * from './utils';
|
|
8
|
+
export { Normalizer } from './normalize';
|
|
8
9
|
import * as Converters from './converters';
|
|
9
10
|
import * as Csv from './csvHelpers';
|
|
10
11
|
import * as Hash from './hash';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
|
package/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.Validation = exports.Hash = exports.Csv = exports.Converters = void 0;
|
|
29
|
+
exports.Validation = exports.Hash = exports.Csv = exports.Converters = exports.Normalizer = void 0;
|
|
30
30
|
/*
|
|
31
31
|
* Copyright (c) 2020 Erik Fortune
|
|
32
32
|
*
|
|
@@ -55,6 +55,8 @@ __exportStar(require("./formatter"), exports);
|
|
|
55
55
|
__exportStar(require("./rangeOf"), exports);
|
|
56
56
|
__exportStar(require("./result"), exports);
|
|
57
57
|
__exportStar(require("./utils"), exports);
|
|
58
|
+
var normalize_1 = require("./normalize");
|
|
59
|
+
Object.defineProperty(exports, "Normalizer", { enumerable: true, get: function () { return normalize_1.Normalizer; } });
|
|
58
60
|
const Converters = __importStar(require("./converters"));
|
|
59
61
|
exports.Converters = Converters;
|
|
60
62
|
const Csv = __importStar(require("./csvHelpers"));
|
|
@@ -63,4 +65,4 @@ const Hash = __importStar(require("./hash"));
|
|
|
63
65
|
exports.Hash = Hash;
|
|
64
66
|
const Validation = __importStar(require("./validation"));
|
|
65
67
|
exports.Validation = Validation;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCwwQ0FBd0I7QUFDeEIsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIseUNBQXlDO0FBQWhDLHVHQUFBLFVBQVUsT0FBQTtBQUVuQix5REFBMkM7QUFJbEMsZ0NBQVU7QUFIbkIsa0RBQW9DO0FBR2Ysa0JBQUc7QUFGeEIsNkNBQStCO0FBRUwsb0JBQUk7QUFEOUIseURBQTJDO0FBQ1gsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIwIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vYnJhbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJ0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9leHRlbmRlZEFycmF5JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2VPZic7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3VsdCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IE5vcm1hbGl6ZXIgfSBmcm9tICcuL25vcm1hbGl6ZSc7XG5cbmltcG9ydCAqIGFzIENvbnZlcnRlcnMgZnJvbSAnLi9jb252ZXJ0ZXJzJztcbmltcG9ydCAqIGFzIENzdiBmcm9tICcuL2NzdkhlbHBlcnMnO1xuaW1wb3J0ICogYXMgSGFzaCBmcm9tICcuL2hhc2gnO1xuaW1wb3J0ICogYXMgVmFsaWRhdGlvbiBmcm9tICcuL3ZhbGlkYXRpb24nO1xuZXhwb3J0IHsgQ29udmVydGVycywgQ3N2LCBIYXNoLCBWYWxpZGF0aW9uIH07XG4iXX0=
|
package/logger.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Failure, Success } from './result';
|
|
2
|
-
export
|
|
2
|
+
export type LogLevel = 'detail' | 'info' | 'warning' | 'error' | 'silent';
|
|
3
3
|
export interface Logger {
|
|
4
4
|
log(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
5
5
|
detail(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
package/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/normalize.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Result } from './result';
|
|
2
|
+
export type Entry<T> = [string | number | symbol, T];
|
|
3
|
+
export type ResultEntry<T> = [string | number | symbol, Result<T>];
|
|
4
|
+
/**
|
|
5
|
+
* Normalizes an arbitrary JSON object
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export declare class Normalizer {
|
|
9
|
+
/**
|
|
10
|
+
* Normalizes the supplied value
|
|
11
|
+
*
|
|
12
|
+
* @param from - The value to be normalized
|
|
13
|
+
* @returns A normalized version of the value
|
|
14
|
+
*/
|
|
15
|
+
normalize<T>(from: T): Result<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Compares two property names from some object being normalized.
|
|
18
|
+
* @param k1 - First key to be compared.
|
|
19
|
+
* @param k2 - Second key to be compared.
|
|
20
|
+
* @returns `1` if `k1` is greater, `-1` if `k2` is greater and
|
|
21
|
+
* `0` if they are equal.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
protected _compareKeys(k1: unknown, k2: unknown): number;
|
|
25
|
+
/**
|
|
26
|
+
* Normalizes an array of object property entries (e.g. as returned by `Object.entries()`).
|
|
27
|
+
* @remarks
|
|
28
|
+
* Converts property names (entry key) to string and then sorts as string.
|
|
29
|
+
* @param entries - The entries to be normalized.
|
|
30
|
+
* @returns A normalized sorted array of entries.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
protected _normalizeEntries<T = unknown>(entries: Iterable<Entry<T>>): Entry<T>[];
|
|
34
|
+
protected _normalizeArray(from: unknown[]): Result<unknown[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Normalizes the supplied literal value
|
|
37
|
+
* @param from - The literal value to be normalized.
|
|
38
|
+
* @returns A normalized value for the literal.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
protected _normalizeLiteral<T>(from: T): Result<T>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAA6B,MAAM,UAAU,CAAC;AAE7D,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE;;;GAGG;AACH,qBAAa,UAAU;IACnB;;;;;OAKG;IACI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IA+BvC;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM;IAexD;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAQjF,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAI7D;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CAyBrD"}
|
package/normalize.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2021 Erik Fortune
|
|
4
|
+
*
|
|
5
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
* in the Software without restriction, including without limitation the rights
|
|
8
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
* furnished to do so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
* copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
* SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.Normalizer = void 0;
|
|
25
|
+
const result_1 = require("./result");
|
|
26
|
+
/**
|
|
27
|
+
* Normalizes an arbitrary JSON object
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
class Normalizer {
|
|
31
|
+
/**
|
|
32
|
+
* Normalizes the supplied value
|
|
33
|
+
*
|
|
34
|
+
* @param from - The value to be normalized
|
|
35
|
+
* @returns A normalized version of the value
|
|
36
|
+
*/
|
|
37
|
+
normalize(from) {
|
|
38
|
+
switch (typeof from) {
|
|
39
|
+
case 'string':
|
|
40
|
+
case 'bigint':
|
|
41
|
+
case 'boolean':
|
|
42
|
+
case 'number':
|
|
43
|
+
case 'symbol':
|
|
44
|
+
case 'undefined':
|
|
45
|
+
return this._normalizeLiteral(from);
|
|
46
|
+
case 'object':
|
|
47
|
+
if ((from === null) || (from instanceof Date) || (from instanceof RegExp)) {
|
|
48
|
+
return this._normalizeLiteral(from);
|
|
49
|
+
}
|
|
50
|
+
else if (Array.isArray(from)) {
|
|
51
|
+
return this._normalizeArray(from);
|
|
52
|
+
}
|
|
53
|
+
else if (from instanceof Map) {
|
|
54
|
+
return (0, result_1.succeed)(new Map(this._normalizeEntries(from.entries())));
|
|
55
|
+
}
|
|
56
|
+
else if (from instanceof Set) {
|
|
57
|
+
return (0, result_1.succeed)(new Set(this._normalizeEntries(from.entries())));
|
|
58
|
+
}
|
|
59
|
+
const obj = {};
|
|
60
|
+
for (const e of this._normalizeEntries(Object.entries(from))) {
|
|
61
|
+
obj[e[0]] = e[1];
|
|
62
|
+
}
|
|
63
|
+
return (0, result_1.succeed)(obj);
|
|
64
|
+
}
|
|
65
|
+
return (0, result_1.fail)(`normalize: Unexpected type - cannot normalize '${typeof from}'`);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Compares two property names from some object being normalized.
|
|
69
|
+
* @param k1 - First key to be compared.
|
|
70
|
+
* @param k2 - Second key to be compared.
|
|
71
|
+
* @returns `1` if `k1` is greater, `-1` if `k2` is greater and
|
|
72
|
+
* `0` if they are equal.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
_compareKeys(k1, k2) {
|
|
76
|
+
const cs1 = String(k1);
|
|
77
|
+
const cs2 = String(k2);
|
|
78
|
+
if (cs1 > cs2) {
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
// istanbul ignore else
|
|
82
|
+
if (cs2 > cs1) {
|
|
83
|
+
return -1;
|
|
84
|
+
}
|
|
85
|
+
// istanbul ignore next
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Normalizes an array of object property entries (e.g. as returned by `Object.entries()`).
|
|
90
|
+
* @remarks
|
|
91
|
+
* Converts property names (entry key) to string and then sorts as string.
|
|
92
|
+
* @param entries - The entries to be normalized.
|
|
93
|
+
* @returns A normalized sorted array of entries.
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
_normalizeEntries(entries) {
|
|
97
|
+
return Array.from(entries)
|
|
98
|
+
.sort((e1, e2) => this._compareKeys(e1[0], e2[0]))
|
|
99
|
+
.map((e) => [e[0], this.normalize(e[1])])
|
|
100
|
+
.filter((e) => e[1].isSuccess())
|
|
101
|
+
.map((e) => [e[0], e[1].getValueOrThrow()]);
|
|
102
|
+
}
|
|
103
|
+
_normalizeArray(from) {
|
|
104
|
+
return (0, result_1.mapResults)(from.map((v) => this.normalize(v)));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Normalizes the supplied literal value
|
|
108
|
+
* @param from - The literal value to be normalized.
|
|
109
|
+
* @returns A normalized value for the literal.
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
_normalizeLiteral(from) {
|
|
113
|
+
// TODO: Apply configurable normalization rules
|
|
114
|
+
switch (typeof from) {
|
|
115
|
+
case 'string':
|
|
116
|
+
return (0, result_1.succeed)(from);
|
|
117
|
+
case 'bigint':
|
|
118
|
+
case 'boolean':
|
|
119
|
+
case 'number':
|
|
120
|
+
case 'symbol':
|
|
121
|
+
case 'undefined':
|
|
122
|
+
return (0, result_1.succeed)(from);
|
|
123
|
+
}
|
|
124
|
+
if (from === null) {
|
|
125
|
+
return (0, result_1.succeed)(from);
|
|
126
|
+
}
|
|
127
|
+
if (from instanceof Date) {
|
|
128
|
+
return (0, result_1.succeed)(from);
|
|
129
|
+
}
|
|
130
|
+
// istanbul ignore else
|
|
131
|
+
if (from instanceof RegExp) {
|
|
132
|
+
return (0, result_1.succeed)(from);
|
|
133
|
+
}
|
|
134
|
+
// istanbul ignore next
|
|
135
|
+
return (0, result_1.fail)(`cannot normalize ${JSON.stringify(from)}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.Normalizer = Normalizer;
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCxxQ0FBNkQ7QUFLN0Q7OztHQUdHO0FBQ0gsTUFBYSxVQUFVO0lBQ25COzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFJLElBQU87UUFDdkIsUUFBUSxPQUFPLElBQUksRUFBRTtZQUNqQixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxXQUFXO2dCQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLEtBQUssUUFBUTtnQkFDVCxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxFQUFFO29CQUN2RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdkM7cUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUF5QixDQUFDO2lCQUM3RDtxQkFDSSxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7b0JBQzFCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBaUIsQ0FBQyxDQUFDO2lCQUNuRjtxQkFDSSxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7b0JBQzFCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksR0FBRyxDQUFDLElB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SUFBSSxDQUFDLENBQUM7U0FDeEI7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFO1lBQ3hCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBQSxhQUFJLEVBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDSjtBQWhIRCxnQ0FnSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBtYXBSZXN1bHRzLCBzdWNjZWVkIH0gZnJvbSAnLi9yZXN1bHQnO1xuXG5leHBvcnQgdHlwZSBFbnRyeTxUPiA9IFtzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIFRdO1xuZXhwb3J0IHR5cGUgUmVzdWx0RW50cnk8VD4gPSBbc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCBSZXN1bHQ8VD5dO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXJiaXRyYXJ5IEpTT04gb2JqZWN0XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVyIHtcbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemVzIHRoZSBzdXBwbGllZCB2YWx1ZVxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgdmFsdWUgdG8gYmUgbm9ybWFsaXplZFxuICAgICAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCB2ZXJzaW9uIG9mIHRoZSB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBub3JtYWxpemU8VD4oZnJvbTogVCk6IFJlc3VsdDxUPiB7XG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGZyb20pIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUxpdGVyYWwoZnJvbSk7XG4gICAgICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgICAgICAgIGlmICgoZnJvbSA9PT0gbnVsbCkgfHwgKGZyb20gaW5zdGFuY2VvZiBEYXRlKSB8fCAoZnJvbSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUxpdGVyYWwoZnJvbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZnJvbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUFycmF5KGZyb20pIGFzIHVua25vd24gYXMgUmVzdWx0PFQ+O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChmcm9tIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKG5ldyBNYXAodGhpcy5fbm9ybWFsaXplRW50cmllcyhmcm9tLmVudHJpZXMoKSkpIGFzIHVua25vd24gYXMgVCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZyb20gaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQobmV3IFNldCh0aGlzLl9ub3JtYWxpemVFbnRyaWVzKGZyb20uZW50cmllcygpKSkgYXMgdW5rbm93biBhcyBUKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqOiB7IFtrZXkgaW4gbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogdW5rbm93biB9ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIHRoaXMuX25vcm1hbGl6ZUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZnJvbSBhcyB1bmtub3duIGFzIG9iamVjdCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtlWzBdXSA9IGVbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKG9iaiBhcyBUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbChgbm9ybWFsaXplOiBVbmV4cGVjdGVkIHR5cGUgLSBjYW5ub3Qgbm9ybWFsaXplICcke3R5cGVvZiBmcm9tfSdgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wYXJlcyB0d28gcHJvcGVydHkgbmFtZXMgZnJvbSBzb21lIG9iamVjdCBiZWluZyBub3JtYWxpemVkLlxuICAgICAqIEBwYXJhbSBrMSAtIEZpcnN0IGtleSB0byBiZSBjb21wYXJlZC5cbiAgICAgKiBAcGFyYW0gazIgLSBTZWNvbmQga2V5IHRvIGJlIGNvbXBhcmVkLlxuICAgICAqIEByZXR1cm5zIGAxYCBpZiBgazFgIGlzIGdyZWF0ZXIsIGAtMWAgaWYgYGsyYCBpcyBncmVhdGVyIGFuZFxuICAgICAqIGAwYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbXBhcmVLZXlzKGsxOiB1bmtub3duLCBrMjogdW5rbm93bik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNzMSA9IFN0cmluZyhrMSk7XG4gICAgICAgIGNvbnN0IGNzMiA9IFN0cmluZyhrMik7XG4gICAgICAgIGlmIChjczEgPiBjczIpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgICAgIGlmIChjczIgPiBjczEpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgYW4gYXJyYXkgb2Ygb2JqZWN0IHByb3BlcnR5IGVudHJpZXMgKGUuZy4gYXMgcmV0dXJuZWQgYnkgYE9iamVjdC5lbnRyaWVzKClgKS5cbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIENvbnZlcnRzIHByb3BlcnR5IG5hbWVzIChlbnRyeSBrZXkpIHRvIHN0cmluZyBhbmQgdGhlbiBzb3J0cyBhcyBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVudHJpZXMgLSBUaGUgZW50cmllcyB0byBiZSBub3JtYWxpemVkLlxuICAgICAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCBzb3J0ZWQgYXJyYXkgb2YgZW50cmllcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX25vcm1hbGl6ZUVudHJpZXM8VCA9IHVua25vd24+KGVudHJpZXM6IEl0ZXJhYmxlPEVudHJ5PFQ+Pik6IEVudHJ5PFQ+W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShlbnRyaWVzKVxuICAgICAgICAgICAgLnNvcnQoKGUxLCBlMikgPT4gdGhpcy5fY29tcGFyZUtleXMoZTFbMF0sIGUyWzBdKSlcbiAgICAgICAgICAgIC5tYXAoKGUpID0+IFtlWzBdLCB0aGlzLm5vcm1hbGl6ZShlWzFdKV0gYXMgUmVzdWx0RW50cnk8VD4pXG4gICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlWzFdLmlzU3VjY2VzcygpKVxuICAgICAgICAgICAgLm1hcCgoZSkgPT4gW2VbMF0sIGVbMV0uZ2V0VmFsdWVPclRocm93KCldKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX25vcm1hbGl6ZUFycmF5KGZyb206IHVua25vd25bXSk6IFJlc3VsdDx1bmtub3duW10+IHtcbiAgICAgICAgcmV0dXJuIG1hcFJlc3VsdHMoZnJvbS5tYXAoKHYpID0+IHRoaXMubm9ybWFsaXplKHYpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm9ybWFsaXplcyB0aGUgc3VwcGxpZWQgbGl0ZXJhbCB2YWx1ZVxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGxpdGVyYWwgdmFsdWUgdG8gYmUgbm9ybWFsaXplZC5cbiAgICAgKiBAcmV0dXJucyBBIG5vcm1hbGl6ZWQgdmFsdWUgZm9yIHRoZSBsaXRlcmFsLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfbm9ybWFsaXplTGl0ZXJhbDxUPihmcm9tOiBUKTogUmVzdWx0PFQ+IHtcbiAgICAgICAgLy8gVE9ETzogQXBwbHkgY29uZmlndXJhYmxlIG5vcm1hbGl6YXRpb24gcnVsZXNcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgZnJvbSkge1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZChmcm9tKTtcbiAgICAgICAgICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZChmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZnJvbSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZyb20gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZChmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgICAgICBpZiAoZnJvbSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgcmV0dXJuIGZhaWwoYGNhbm5vdCBub3JtYWxpemUgJHtKU09OLnN0cmluZ2lmeShmcm9tKX1gKTtcbiAgICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fgv/ts-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Assorted Typescript Utilities",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/DidjaRedo/ts-utils#readme",
|
|
33
33
|
"devDependencies": {
|
|
34
|
+
"@jest/expect-utils": "^29.3.1",
|
|
34
35
|
"@microsoft/api-documenter": "^7.16.0",
|
|
35
36
|
"@microsoft/api-extractor": "^7.19.5",
|
|
36
|
-
"@types/jest": "^
|
|
37
|
-
"@types/luxon": "^
|
|
37
|
+
"@types/jest": "^29.2.4",
|
|
38
|
+
"@types/luxon": "^3.1.0",
|
|
38
39
|
"@types/mustache": "^4.1.2",
|
|
39
|
-
"@types/node": "^
|
|
40
|
+
"@types/node": "^18.11.12",
|
|
40
41
|
"@typescript-eslint/eslint-plugin": "^5.15.0",
|
|
41
42
|
"@typescript-eslint/parser": "^5.15.0",
|
|
42
43
|
"eslint": "^8.11.0",
|
|
@@ -44,17 +45,17 @@
|
|
|
44
45
|
"eslint-plugin-import": "^2.24.2",
|
|
45
46
|
"eslint-plugin-node": "^11.1.0",
|
|
46
47
|
"eslint-plugin-promise": "^6.0.0",
|
|
47
|
-
"jest": "^
|
|
48
|
-
"jest-extended": "^2.0
|
|
49
|
-
"jest-matcher-utils": "^
|
|
48
|
+
"jest": "^29.3.1",
|
|
49
|
+
"jest-extended": "^3.2.0",
|
|
50
|
+
"jest-matcher-utils": "^29.3.1",
|
|
50
51
|
"rimraf": "^3.0.2",
|
|
51
|
-
"ts-jest": "^
|
|
52
|
+
"ts-jest": "^29.0.3",
|
|
52
53
|
"ts-node": "^10.2.1",
|
|
53
54
|
"typescript": "^4.4.3"
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"csv-parse": "^
|
|
57
|
-
"luxon": "^
|
|
57
|
+
"csv-parse": "^5.3.3",
|
|
58
|
+
"luxon": "^3.1.1",
|
|
58
59
|
"mustache": "^4.0.1"
|
|
59
60
|
}
|
|
60
61
|
}
|
package/result.d.ts
CHANGED
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
* Represents the {@link IResult | result} of some operation or sequence of operations.
|
|
3
3
|
* @remarks
|
|
4
4
|
* {@link Success | Success<T>} and {@link Failure | Failure<T>} share the common
|
|
5
|
-
* contract {@link IResult}, enabling
|
|
5
|
+
* contract {@link IResult}, enabling commingled discriminated usage.
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export type Result<T> = Success<T> | Failure<T>;
|
|
9
9
|
/**
|
|
10
10
|
* Continuation callback to be called in the event that an
|
|
11
11
|
* {@link Result} is successful.
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export type SuccessContinuation<T, TN> = (value: T) => Result<TN>;
|
|
15
15
|
/**
|
|
16
16
|
* Continuation callback to be called in the event that an
|
|
17
17
|
* {@link Result} fails.
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
|
-
export
|
|
20
|
+
export type FailureContinuation<T> = (message: string) => Result<T>;
|
|
21
21
|
/**
|
|
22
22
|
* Type inference to determine the result type of an {@link Result}.
|
|
23
23
|
* @beta
|
|
24
24
|
*/
|
|
25
|
-
export
|
|
25
|
+
export type ResultValueType<T> = T extends Result<infer TV> ? TV : never;
|
|
26
26
|
/**
|
|
27
27
|
* Simple logger interface used by {@link IResult.getValueOrThrow}.
|
|
28
28
|
* @public
|
|
@@ -37,7 +37,7 @@ export interface IResultLogger {
|
|
|
37
37
|
/**
|
|
38
38
|
* Represents the result of some operation of sequence of operations.
|
|
39
39
|
* @remarks
|
|
40
|
-
* This common contract enables
|
|
40
|
+
* This common contract enables commingled discriminated usage of {@link Success | Success<T>}
|
|
41
41
|
* and {@link Failure | Failure<T>}.
|
|
42
42
|
* @public
|
|
43
43
|
*/
|
|
@@ -116,7 +116,7 @@ export interface IResult<T> {
|
|
|
116
116
|
* @param successDetail - An optional detail to be added if this result was successful.
|
|
117
117
|
* @returns A new {@link DetailedResult | DetailedResult<T, TD>} with either
|
|
118
118
|
* the success result or the error message from this {@link IResult} and the
|
|
119
|
-
*
|
|
119
|
+
* appropriate added detail.
|
|
120
120
|
*/
|
|
121
121
|
withDetail<TD>(detail: TD, successDetail?: TD): DetailedResult<T, TD>;
|
|
122
122
|
}
|
|
@@ -257,7 +257,7 @@ export declare function fail<T>(message: string): Failure<T>;
|
|
|
257
257
|
* success results to chain through intermediate result types.
|
|
258
258
|
* @public
|
|
259
259
|
*/
|
|
260
|
-
export
|
|
260
|
+
export type DetailedSuccessContinuation<T, TD, TN> = (value: T, detail?: TD) => DetailedResult<TN, TD>;
|
|
261
261
|
/**
|
|
262
262
|
* Callback to be called when a {@link DetailedResult} encounters a failure.
|
|
263
263
|
* @remarks
|
|
@@ -265,7 +265,7 @@ export declare type DetailedSuccessContinuation<T, TD, TN> = (value: T, detail?:
|
|
|
265
265
|
* or it can change or embellish the error message, but it cannot change the success return type.
|
|
266
266
|
* @public
|
|
267
267
|
*/
|
|
268
|
-
export
|
|
268
|
+
export type DetailedFailureContinuation<T, TD> = (message: string, detail: TD) => DetailedResult<T, TD>;
|
|
269
269
|
/**
|
|
270
270
|
* A {@link DetailedSuccess} extends {@link Success} to report optional success details in
|
|
271
271
|
* addition to the error message.
|
|
@@ -370,12 +370,12 @@ export declare class DetailedFailure<T, TD> extends Failure<T> {
|
|
|
370
370
|
* Type inference to determine the result type `T` of a {@link DetailedResult | DetailedResult<T, TD>}.
|
|
371
371
|
* @beta
|
|
372
372
|
*/
|
|
373
|
-
export
|
|
373
|
+
export type DetailedResult<T, TD> = DetailedSuccess<T, TD> | DetailedFailure<T, TD>;
|
|
374
374
|
/**
|
|
375
375
|
* Type inference to determine the detail type `TD` of a {@link DetailedResult | DetailedResult<T, TD>}.
|
|
376
376
|
* @beta
|
|
377
377
|
*/
|
|
378
|
-
export
|
|
378
|
+
export type ResultDetailType<T> = T extends DetailedResult<unknown, infer TD> ? TD : never;
|
|
379
379
|
/**
|
|
380
380
|
* Returns {@link DetailedSuccess | DetailedSuccess<T, TD>} with a supplied value and optional
|
|
381
381
|
* detail.
|
|
@@ -418,7 +418,7 @@ export declare function propagateWithDetail<T, TD>(result: Result<T>, detail: TD
|
|
|
418
418
|
*/
|
|
419
419
|
export declare function captureResult<T>(func: () => T): Result<T>;
|
|
420
420
|
/**
|
|
421
|
-
* Aggregates
|
|
421
|
+
* Aggregates successful result values from a collection of {@link Result | Result<T>}.
|
|
422
422
|
* @param results - The collection of {@link Result | Result<T>} to be mapped.
|
|
423
423
|
* @returns If all {@link Result | results} are successful, returns {@link Success} with an
|
|
424
424
|
* array containing all returned values. If any {@link Result | results} failed, returns
|
|
@@ -427,14 +427,14 @@ export declare function captureResult<T>(func: () => T): Result<T>;
|
|
|
427
427
|
*/
|
|
428
428
|
export declare function mapResults<T>(results: Iterable<Result<T>>): Result<T[]>;
|
|
429
429
|
/**
|
|
430
|
-
* Aggregates
|
|
430
|
+
* Aggregates successful results from a collection of {@link DetailedResult | DetailedResult<T, TD>},
|
|
431
431
|
* optionally ignoring certain error details.
|
|
432
432
|
* @param results - The collection of {@link DetailedResult | DetailedResult<T, TD>} to be mapped.
|
|
433
433
|
* @param ignore - An array of error detail values (of type `<TD>`) that should be ignored.
|
|
434
434
|
* @returns {@link Success} with an array containing all successful results if all results either
|
|
435
|
-
*
|
|
435
|
+
* succeeded or returned error details listed in `ignore`. If any results failed with details
|
|
436
436
|
* that cannot be ignored, returns {@link Failure} with an concatenated summary of all non-ignorable
|
|
437
|
-
* error
|
|
437
|
+
* error messages.
|
|
438
438
|
* @public
|
|
439
439
|
*/
|
|
440
440
|
export declare function mapDetailedResults<T, TD>(results: Iterable<DetailedResult<T, TD>>, ignore: TD[]): Result<T[]>;
|
|
@@ -450,7 +450,7 @@ export declare function mapDetailedResults<T, TD>(results: Iterable<DetailedResu
|
|
|
450
450
|
export declare function mapSuccess<T>(results: Iterable<Result<T>>): Result<T[]>;
|
|
451
451
|
/**
|
|
452
452
|
* Aggregates error messages from a collection of {@link Result | Result<T>}.
|
|
453
|
-
* @param results - An
|
|
453
|
+
* @param results - An iterable collection of {@link Result | Result<T>} for which
|
|
454
454
|
* error messages are aggregated.
|
|
455
455
|
* @returns An array of strings consisting of all error messages returned by
|
|
456
456
|
* {@link Result | results} in the source collection. Ignores {@link Success}
|
|
@@ -471,7 +471,7 @@ export declare function allSucceed<T>(results: Iterable<Result<unknown>>, succes
|
|
|
471
471
|
* String-keyed record of initialization functions to be passed to {@link populateObject}.
|
|
472
472
|
* @public
|
|
473
473
|
*/
|
|
474
|
-
export
|
|
474
|
+
export type FieldInitializers<T> = {
|
|
475
475
|
[key in keyof T]: (state: Partial<T>) => Result<T[key]>;
|
|
476
476
|
};
|
|
477
477
|
/**
|
package/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|