@fgv/ts-utils 5.0.0-22 → 5.0.0-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/dist/ts-utils.d.ts +307 -33
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/packlets/base/index.d.ts +0 -2
- package/lib/packlets/base/index.js +1 -25
- package/lib/packlets/base/result.d.ts +49 -0
- package/lib/packlets/base/result.js +36 -0
- package/lib/packlets/collections/collector.d.ts +9 -0
- package/lib/packlets/collections/collector.js +6 -0
- package/lib/packlets/collections/validatingCollector.d.ts +5 -1
- package/lib/packlets/hash/hashingNormalizer.js +4 -3
- package/lib/packlets/logging/index.d.ts +3 -0
- package/{src/packlets/hash/index.ts → lib/packlets/logging/index.js} +19 -3
- package/lib/packlets/logging/logReporter.d.ts +69 -0
- package/lib/packlets/logging/logReporter.js +72 -0
- package/lib/packlets/logging/logger.d.ts +183 -0
- package/lib/packlets/logging/logger.js +237 -0
- package/lib/test/unit/consoleLogger.test.d.ts +2 -0
- package/lib/test/unit/hashingNormalizerCollisions.test.d.ts +2 -0
- package/package.json +1 -1
- package/lib/packlets/base/logger.d.ts +0 -52
- package/lib/packlets/base/logger.js +0 -128
- package/src/index.ts +0 -63
- package/src/packlets/base/brand.ts +0 -28
- package/src/packlets/base/index.ts +0 -31
- package/src/packlets/base/logger.ts +0 -156
- package/src/packlets/base/mapResults.ts +0 -302
- package/src/packlets/base/messageAggregator.ts +0 -120
- package/src/packlets/base/normalize.ts +0 -144
- package/src/packlets/base/result.ts +0 -961
- package/src/packlets/base/utils.ts +0 -236
- package/src/packlets/collections/collectible.ts +0 -238
- package/src/packlets/collections/collector.ts +0 -273
- package/src/packlets/collections/collectorValidator.ts +0 -178
- package/src/packlets/collections/common.ts +0 -27
- package/src/packlets/collections/convertingCollector.ts +0 -223
- package/src/packlets/collections/convertingCollectorValidator.ts +0 -164
- package/src/packlets/collections/index.ts +0 -39
- package/src/packlets/collections/keyValueConverters.ts +0 -142
- package/src/packlets/collections/readonlyResultMap.ts +0 -99
- package/src/packlets/collections/resultMap.ts +0 -322
- package/src/packlets/collections/resultMapValidator.ts +0 -188
- package/src/packlets/collections/utils.ts +0 -33
- package/src/packlets/collections/validatingCollector.ts +0 -123
- package/src/packlets/collections/validatingConvertingCollector.ts +0 -113
- package/src/packlets/collections/validatingResultMap.ts +0 -94
- package/src/packlets/conversion/baseConverter.ts +0 -330
- package/src/packlets/conversion/converter.ts +0 -260
- package/src/packlets/conversion/converters.ts +0 -1039
- package/src/packlets/conversion/defaultingConverter.ts +0 -188
- package/src/packlets/conversion/index.ts +0 -30
- package/src/packlets/conversion/objectConverter.ts +0 -259
- package/src/packlets/conversion/stringConverter.ts +0 -165
- package/src/packlets/file-tree/directoryItem.ts +0 -84
- package/src/packlets/file-tree/fileItem.ts +0 -119
- package/src/packlets/file-tree/fileTree.ts +0 -152
- package/src/packlets/file-tree/fileTreeAccessors.ts +0 -176
- package/src/packlets/file-tree/fsTree.ts +0 -118
- package/src/packlets/file-tree/in-memory/inMemoryTree.ts +0 -171
- package/src/packlets/file-tree/in-memory/index.ts +0 -23
- package/src/packlets/file-tree/in-memory/treeBuilder.ts +0 -203
- package/src/packlets/file-tree/index.ts +0 -31
- package/src/packlets/hash/crcNormalizer.ts +0 -81
- package/src/packlets/hash/hashingNormalizer.ts +0 -102
- package/src/packlets/validation/array.ts +0 -84
- package/src/packlets/validation/boolean.ts +0 -63
- package/src/packlets/validation/classes.ts +0 -38
- package/src/packlets/validation/common.ts +0 -28
- package/src/packlets/validation/field.ts +0 -99
- package/src/packlets/validation/genericValidator.ts +0 -204
- package/src/packlets/validation/index.ts +0 -31
- package/src/packlets/validation/number.ts +0 -66
- package/src/packlets/validation/object.ts +0 -208
- package/src/packlets/validation/oneOf.ts +0 -78
- package/src/packlets/validation/string.ts +0 -66
- package/src/packlets/validation/traits.ts +0 -113
- package/src/packlets/validation/typeGuard.ts +0 -83
- package/src/packlets/validation/validator.ts +0 -157
- package/src/packlets/validation/validatorBase.ts +0 -66
- package/src/packlets/validation/validators.ts +0 -254
package/dist/ts-utils.d.ts
CHANGED
|
@@ -490,6 +490,10 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
490
490
|
* {@inheritdoc Collections.ResultMap.values}
|
|
491
491
|
*/
|
|
492
492
|
values(): IterableIterator<TITEM>;
|
|
493
|
+
/**
|
|
494
|
+
* {@inheritdoc Collections.IReadOnlyCollector.valuesByIndex}
|
|
495
|
+
*/
|
|
496
|
+
valuesByIndex(): ReadonlyArray<TITEM>;
|
|
493
497
|
/**
|
|
494
498
|
* Gets a read-only version of this collector.
|
|
495
499
|
*/
|
|
@@ -559,6 +563,22 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
559
563
|
protected _convertValue(value: unknown): DetailedResult<TITEM, CollectorResultDetail>;
|
|
560
564
|
}
|
|
561
565
|
|
|
566
|
+
/**
|
|
567
|
+
* A console logger that outputs messages to the console.
|
|
568
|
+
* @public
|
|
569
|
+
*/
|
|
570
|
+
declare class ConsoleLogger extends LoggerBase {
|
|
571
|
+
/**
|
|
572
|
+
* Creates a new console logger.
|
|
573
|
+
* @param logLevel - The level of logging to be used.
|
|
574
|
+
*/
|
|
575
|
+
constructor(logLevel?: ReporterLogLevel);
|
|
576
|
+
/**
|
|
577
|
+
* {@inheritDoc Logging.LoggerBase._log}
|
|
578
|
+
*/
|
|
579
|
+
protected _log(message: string, level: MessageLogLevel): Success<string | undefined>;
|
|
580
|
+
}
|
|
581
|
+
|
|
562
582
|
/**
|
|
563
583
|
* A {@link Validation.Constraint | Constraint<T>} function returns
|
|
564
584
|
* `true` if the supplied value meets the constraint. Can return
|
|
@@ -1080,6 +1100,10 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
1080
1100
|
* {@inheritdoc IResult.withErrorFormat}
|
|
1081
1101
|
*/
|
|
1082
1102
|
withErrorFormat(cb: ErrorFormatter<TD>): DetailedResult<T, TD>;
|
|
1103
|
+
/**
|
|
1104
|
+
* {@inheritdoc IResult.report}
|
|
1105
|
+
*/
|
|
1106
|
+
report(reporter: IResultReporter<T, TD>, options?: IResultReportOptions): this;
|
|
1083
1107
|
orThrow(logOrFormat?: IResultLogger<TD> | ErrorFormatter<TD>): never;
|
|
1084
1108
|
orThrow(cb: ErrorFormatter): never;
|
|
1085
1109
|
/**
|
|
@@ -1168,6 +1192,10 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
1168
1192
|
* {@inheritdoc Success.withErrorFormat}
|
|
1169
1193
|
*/
|
|
1170
1194
|
withErrorFormat(cb: ErrorFormatter): DetailedResult<T, TD>;
|
|
1195
|
+
/**
|
|
1196
|
+
* {@inheritdoc IResult.report}
|
|
1197
|
+
*/
|
|
1198
|
+
report(reporter: IResultReporter<T, TD>, options?: IResultReportOptions): this;
|
|
1171
1199
|
/**
|
|
1172
1200
|
* Creates a {@link DetailedSuccess | DetailedSuccess<T, TD>} with the supplied value and
|
|
1173
1201
|
* optional detail.
|
|
@@ -1409,6 +1437,10 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
1409
1437
|
* {@inheritdoc IResult.aggregateError}
|
|
1410
1438
|
*/
|
|
1411
1439
|
aggregateError(errors: IMessageAggregator): this;
|
|
1440
|
+
/**
|
|
1441
|
+
* {@inheritdoc IResult.report}
|
|
1442
|
+
*/
|
|
1443
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
1412
1444
|
/**
|
|
1413
1445
|
* Get a 'friendly' string representation of this object.
|
|
1414
1446
|
* @remarks
|
|
@@ -2204,6 +2236,68 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2204
2236
|
value: Validator<TV, unknown> | Converter<TV, unknown> | ConverterFunc<TV, unknown>;
|
|
2205
2237
|
}
|
|
2206
2238
|
|
|
2239
|
+
/**
|
|
2240
|
+
* Generic Result-aware logger interface with multiple levels of logging.
|
|
2241
|
+
* @public
|
|
2242
|
+
*/
|
|
2243
|
+
declare interface ILogger {
|
|
2244
|
+
/**
|
|
2245
|
+
* The level of logging to be used.
|
|
2246
|
+
*/
|
|
2247
|
+
readonly logLevel: ReporterLogLevel;
|
|
2248
|
+
/**
|
|
2249
|
+
* Logs a message at the given level.
|
|
2250
|
+
* @param level - The level of the message.
|
|
2251
|
+
* @param message - The message to log.
|
|
2252
|
+
* @param parameters - The parameters to log.
|
|
2253
|
+
* @returns `Success` with the logged message if the level is enabled, or
|
|
2254
|
+
* `Success` with `undefined` if the message is suppressed.
|
|
2255
|
+
*/
|
|
2256
|
+
log(level: MessageLogLevel, message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2257
|
+
/**
|
|
2258
|
+
* Logs a detail message.
|
|
2259
|
+
* @param message - The message to log.
|
|
2260
|
+
* @param parameters - The parameters to log.
|
|
2261
|
+
* @returns `Success` with the logged message if the level is enabled, or
|
|
2262
|
+
* `Success` with `undefined` if the message is suppressed.
|
|
2263
|
+
*/
|
|
2264
|
+
detail(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2265
|
+
/**
|
|
2266
|
+
* Logs an info message.
|
|
2267
|
+
* @param message - The message to log.
|
|
2268
|
+
* @param parameters - The parameters to log.
|
|
2269
|
+
* @returns `Success` with the logged message if the level is enabled, or
|
|
2270
|
+
* `Success` with `undefined` if the message is suppressed.
|
|
2271
|
+
*/
|
|
2272
|
+
info(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2273
|
+
/**
|
|
2274
|
+
* Logs a warning message.
|
|
2275
|
+
* @param message - The message to log.
|
|
2276
|
+
* @param parameters - The parameters to log.
|
|
2277
|
+
* @returns `Success` with the logged message if the level is enabled, or
|
|
2278
|
+
* `Success` with `undefined` if the message is suppressed.
|
|
2279
|
+
*/
|
|
2280
|
+
warn(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2281
|
+
/**
|
|
2282
|
+
* Logs an error message.
|
|
2283
|
+
* @param message - The message to log.
|
|
2284
|
+
* @param parameters - The parameters to log.
|
|
2285
|
+
* @returns `Success` with the logged message if the level is enabled, or
|
|
2286
|
+
* `Success` with `undefined` if the message is suppressed.
|
|
2287
|
+
*/
|
|
2288
|
+
error(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2291
|
+
/**
|
|
2292
|
+
* Parameters for creating a {@link Logging.LogReporter | LogReporter}.
|
|
2293
|
+
* @public
|
|
2294
|
+
*/
|
|
2295
|
+
declare interface ILogReporterCreateParams<T, TD = unknown> {
|
|
2296
|
+
logger: ILogger;
|
|
2297
|
+
valueFormatter?: LogValueFormatter<T, TD>;
|
|
2298
|
+
messageFormatter?: LogMessageFormatter<TD>;
|
|
2299
|
+
}
|
|
2300
|
+
|
|
2207
2301
|
/**
|
|
2208
2302
|
* Simple error aggregator to simplify collecting all errors in
|
|
2209
2303
|
* a flow.
|
|
@@ -2263,17 +2357,47 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2263
2357
|
declare function inMemory(files: IInMemoryFile[], prefix?: string): Result<FileTree_2>;
|
|
2264
2358
|
|
|
2265
2359
|
/**
|
|
2360
|
+
* An in-memory logger that stores logged and suppressed messages.
|
|
2266
2361
|
* @public
|
|
2267
2362
|
*/
|
|
2268
2363
|
declare class InMemoryLogger extends LoggerBase {
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2364
|
+
/**
|
|
2365
|
+
* The messages that have been logged.
|
|
2366
|
+
*/
|
|
2367
|
+
protected _logged: string[];
|
|
2368
|
+
/**
|
|
2369
|
+
* The messages that have been suppressed.
|
|
2370
|
+
*/
|
|
2371
|
+
protected _suppressed: string[];
|
|
2372
|
+
/**
|
|
2373
|
+
* Creates a new in-memory logger.
|
|
2374
|
+
* @param logLevel - The level of logging to be used.
|
|
2375
|
+
*/
|
|
2376
|
+
constructor(logLevel?: ReporterLogLevel);
|
|
2377
|
+
/**
|
|
2378
|
+
* The messages that have been logged.
|
|
2379
|
+
*/
|
|
2380
|
+
get logged(): string[];
|
|
2381
|
+
/**
|
|
2382
|
+
* The messages that have been suppressed.
|
|
2383
|
+
*/
|
|
2384
|
+
get suppressed(): string[];
|
|
2385
|
+
/**
|
|
2386
|
+
* Clears the logged and suppressed messages.
|
|
2387
|
+
*/
|
|
2274
2388
|
clear(): void;
|
|
2275
|
-
|
|
2276
|
-
|
|
2389
|
+
/**
|
|
2390
|
+
* {@inheritDoc Logging.LoggerBase._log}
|
|
2391
|
+
*/
|
|
2392
|
+
protected _log(message: string, __level: MessageLogLevel): Success<string | undefined>;
|
|
2393
|
+
/**
|
|
2394
|
+
* {@inheritDoc Logging.LoggerBase._suppressLog}
|
|
2395
|
+
* @param level - The level of the message.
|
|
2396
|
+
* @param message - The message to suppress.
|
|
2397
|
+
* @param parameters - The parameters to suppress.
|
|
2398
|
+
* @returns `Success` with `undefined` if the message is suppressed.
|
|
2399
|
+
*/
|
|
2400
|
+
protected _suppressLog(level: MessageLogLevel, message?: unknown, ...parameters: unknown[]): Success<undefined>;
|
|
2277
2401
|
}
|
|
2278
2402
|
|
|
2279
2403
|
/**
|
|
@@ -2344,6 +2468,11 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2344
2468
|
* with an error if the index is out of range.
|
|
2345
2469
|
*/
|
|
2346
2470
|
getAt(index: number): Result<TITEM>;
|
|
2471
|
+
/**
|
|
2472
|
+
* Gets all items in the collection, ordered by index.
|
|
2473
|
+
* @returns An array of items in the collection, ordered by index.
|
|
2474
|
+
*/
|
|
2475
|
+
valuesByIndex(): ReadonlyArray<TITEM>;
|
|
2347
2476
|
}
|
|
2348
2477
|
|
|
2349
2478
|
/**
|
|
@@ -2444,7 +2573,11 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2444
2573
|
/**
|
|
2445
2574
|
* {@inheritdoc Collections.IReadOnlyValidatingCollector.getAt}
|
|
2446
2575
|
*/
|
|
2447
|
-
|
|
2576
|
+
getAt(index: number): Result<TITEM>;
|
|
2577
|
+
/**
|
|
2578
|
+
* {@inheritdoc Collections.IReadOnlyCollector.valuesByIndex}
|
|
2579
|
+
*/
|
|
2580
|
+
valuesByIndex(): ReadonlyArray<TITEM>;
|
|
2448
2581
|
}
|
|
2449
2582
|
|
|
2450
2583
|
/**
|
|
@@ -2634,6 +2767,12 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2634
2767
|
* errors will be aggregated.
|
|
2635
2768
|
*/
|
|
2636
2769
|
aggregateError(errors: IMessageAggregator): this;
|
|
2770
|
+
/**
|
|
2771
|
+
* Reports the result to the supplied reporter
|
|
2772
|
+
* @param reporter - The {@link IResultReporter | reporter} to which the result will be reported.
|
|
2773
|
+
* @param options - The {@link IResultReportOptions | options} for reporting the result.
|
|
2774
|
+
*/
|
|
2775
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
2637
2776
|
}
|
|
2638
2777
|
|
|
2639
2778
|
/**
|
|
@@ -2665,6 +2804,30 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2665
2804
|
converters: KeyValueConverters<TK, TV>;
|
|
2666
2805
|
}
|
|
2667
2806
|
|
|
2807
|
+
/**
|
|
2808
|
+
* Interface for reporting a result.
|
|
2809
|
+
* @public
|
|
2810
|
+
*/
|
|
2811
|
+
export declare interface IResultReporter<T, TD = unknown> {
|
|
2812
|
+
reportSuccess(level: MessageLogLevel, value: T, detail?: TD): void;
|
|
2813
|
+
reportFailure(level: MessageLogLevel, message: string, detail?: TD): void;
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
/**
|
|
2817
|
+
* Options for reporting a result.
|
|
2818
|
+
* @public
|
|
2819
|
+
*/
|
|
2820
|
+
export declare interface IResultReportOptions {
|
|
2821
|
+
/**
|
|
2822
|
+
* The level of reporting to be used for failure results. Default is 'error'.
|
|
2823
|
+
*/
|
|
2824
|
+
failure?: MessageLogLevel;
|
|
2825
|
+
/**
|
|
2826
|
+
* The level of reporting to be used for success results. Default is 'quiet'.
|
|
2827
|
+
*/
|
|
2828
|
+
success?: MessageLogLevel;
|
|
2829
|
+
}
|
|
2830
|
+
|
|
2668
2831
|
/**
|
|
2669
2832
|
* Helper function to create a {@link Converter | Converter} from a supplied type guard function.
|
|
2670
2833
|
* @param description - a description of the thing to be validated for use in error messages
|
|
@@ -2850,49 +3013,126 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
2850
3013
|
declare function literal_2<T extends string | number | boolean | symbol | null | undefined>(value: T): Validator<T>;
|
|
2851
3014
|
|
|
2852
3015
|
/**
|
|
3016
|
+
* Abstract base class which implements {@link Logging.ILogger | ILogger}.
|
|
2853
3017
|
* @public
|
|
2854
3018
|
*/
|
|
2855
|
-
declare
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
/**
|
|
2865
|
-
* @public
|
|
2866
|
-
*/
|
|
2867
|
-
declare abstract class LoggerBase {
|
|
2868
|
-
logLevel: LogLevel;
|
|
2869
|
-
constructor(logLevel?: LogLevel);
|
|
3019
|
+
declare abstract class LoggerBase implements ILogger {
|
|
3020
|
+
/**
|
|
3021
|
+
* {@inheritDoc Logging.ILogger.logLevel}
|
|
3022
|
+
*/
|
|
3023
|
+
logLevel: ReporterLogLevel;
|
|
3024
|
+
protected constructor(logLevel?: ReporterLogLevel);
|
|
3025
|
+
/**
|
|
3026
|
+
* {@inheritDoc Logging.ILogger.detail}
|
|
3027
|
+
*/
|
|
2870
3028
|
detail(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3029
|
+
/**
|
|
3030
|
+
* {@inheritDoc Logging.ILogger.info}
|
|
3031
|
+
*/
|
|
2871
3032
|
info(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3033
|
+
/**
|
|
3034
|
+
* {@inheritDoc Logging.ILogger.warn}
|
|
3035
|
+
*/
|
|
2872
3036
|
warn(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
3037
|
+
/**
|
|
3038
|
+
* {@inheritDoc Logging.ILogger.error}
|
|
3039
|
+
*/
|
|
3040
|
+
error(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3041
|
+
/**
|
|
3042
|
+
* {@inheritDoc Logging.ILogger.log}
|
|
3043
|
+
*/
|
|
3044
|
+
log(level: MessageLogLevel, message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3045
|
+
/**
|
|
3046
|
+
* Formats a message and parameters into a string.
|
|
3047
|
+
* @param message - The message to format.
|
|
3048
|
+
* @param parameters - The parameters to format.
|
|
3049
|
+
* @returns The formatted message.
|
|
3050
|
+
* @public
|
|
3051
|
+
*/
|
|
2876
3052
|
protected _format(message?: unknown, ...parameters: unknown[]): string;
|
|
2877
|
-
|
|
2878
|
-
|
|
3053
|
+
/**
|
|
3054
|
+
* Inner method called for suppressed log messages.
|
|
3055
|
+
*/
|
|
3056
|
+
protected _suppressLog(__level: MessageLogLevel, __message?: unknown, ...__parameters: unknown[]): Success<undefined>;
|
|
3057
|
+
protected abstract _log(message: string, level: MessageLogLevel): Success<string | undefined>;
|
|
2879
3058
|
}
|
|
2880
3059
|
|
|
2881
3060
|
declare namespace Logging {
|
|
2882
3061
|
export {
|
|
2883
|
-
|
|
2884
|
-
|
|
3062
|
+
shouldLog,
|
|
3063
|
+
ReporterLogLevel,
|
|
3064
|
+
ILogger,
|
|
2885
3065
|
LoggerBase,
|
|
2886
3066
|
InMemoryLogger,
|
|
2887
|
-
|
|
3067
|
+
ConsoleLogger,
|
|
3068
|
+
NoOpLogger,
|
|
3069
|
+
LogValueFormatter,
|
|
3070
|
+
LogMessageFormatter,
|
|
3071
|
+
ILogReporterCreateParams,
|
|
3072
|
+
LogReporter
|
|
2888
3073
|
}
|
|
2889
3074
|
}
|
|
2890
3075
|
export { Logging }
|
|
2891
3076
|
|
|
2892
3077
|
/**
|
|
3078
|
+
* A function that formats a message for logging.
|
|
3079
|
+
* @public
|
|
3080
|
+
*/
|
|
3081
|
+
declare type LogMessageFormatter<TD = unknown> = (message: string, detail?: TD) => string;
|
|
3082
|
+
|
|
3083
|
+
/**
|
|
3084
|
+
* Abstract base class which wraps an existing {@link Logging.ILogger | ILogger} to implement
|
|
3085
|
+
* both {@link Logging.ILogger | ILogger} and {@link IResultReporter | IResultReporter}.
|
|
3086
|
+
* @public
|
|
3087
|
+
*/
|
|
3088
|
+
declare class LogReporter<T, TD = unknown> implements ILogger, IResultReporter<T, TD> {
|
|
3089
|
+
protected readonly _logger: ILogger;
|
|
3090
|
+
protected readonly _valueFormatter: LogValueFormatter<T, TD>;
|
|
3091
|
+
protected readonly _messageFormatter: LogMessageFormatter<TD>;
|
|
3092
|
+
/**
|
|
3093
|
+
* Creates a new {@link Logging.LogReporter | LogReporter}.
|
|
3094
|
+
* @param params - The parameters for creating the {@link Logging.LogReporter | LogReporter}.
|
|
3095
|
+
*/
|
|
3096
|
+
constructor(params: ILogReporterCreateParams<T, TD>);
|
|
3097
|
+
/**
|
|
3098
|
+
* {@inheritDoc Logging.ILogger.logLevel}
|
|
3099
|
+
*/
|
|
3100
|
+
get logLevel(): ReporterLogLevel;
|
|
3101
|
+
/**
|
|
3102
|
+
* {@inheritDoc Logging.ILogger.detail}
|
|
3103
|
+
*/
|
|
3104
|
+
detail(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3105
|
+
/**
|
|
3106
|
+
* {@inheritDoc Logging.ILogger.info}
|
|
3107
|
+
*/
|
|
3108
|
+
info(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3109
|
+
/**
|
|
3110
|
+
* {@inheritDoc Logging.ILogger.warn}
|
|
3111
|
+
*/
|
|
3112
|
+
warn(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3113
|
+
/**
|
|
3114
|
+
* {@inheritDoc Logging.ILogger.error}
|
|
3115
|
+
*/
|
|
3116
|
+
error(message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3117
|
+
/**
|
|
3118
|
+
* {@inheritDoc Logging.ILogger.log}
|
|
3119
|
+
*/
|
|
3120
|
+
log(level: MessageLogLevel, message?: unknown, ...parameters: unknown[]): Success<string | undefined>;
|
|
3121
|
+
/**
|
|
3122
|
+
* {@inheritDoc IResultReporter.reportSuccess}
|
|
3123
|
+
*/
|
|
3124
|
+
reportSuccess(level: MessageLogLevel, value: T, detail?: TD): void;
|
|
3125
|
+
/**
|
|
3126
|
+
* {@inheritDoc IResultReporter.reportFailure}
|
|
3127
|
+
*/
|
|
3128
|
+
reportFailure(level: MessageLogLevel, message: string, detail?: TD): void;
|
|
3129
|
+
}
|
|
3130
|
+
|
|
3131
|
+
/**
|
|
3132
|
+
* A function that formats a value for logging.
|
|
2893
3133
|
* @public
|
|
2894
3134
|
*/
|
|
2895
|
-
declare type
|
|
3135
|
+
declare type LogValueFormatter<T, TD = unknown> = (value: T, detail?: TD) => string;
|
|
2896
3136
|
|
|
2897
3137
|
/**
|
|
2898
3138
|
* Aggregates successful results from a collection of {@link DetailedResult | DetailedResult<T, TD>},
|
|
@@ -3078,10 +3318,25 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
3078
3318
|
}
|
|
3079
3319
|
|
|
3080
3320
|
/**
|
|
3321
|
+
* The severity level at which a message should be logged.
|
|
3322
|
+
* @public
|
|
3323
|
+
*/
|
|
3324
|
+
export declare type MessageLogLevel = 'quiet' | 'detail' | 'info' | 'warning' | 'error';
|
|
3325
|
+
|
|
3326
|
+
/**
|
|
3327
|
+
* A no-op {@link Logging.LoggerBase | LoggerBase} that does not log anything.
|
|
3081
3328
|
* @public
|
|
3082
3329
|
*/
|
|
3083
3330
|
declare class NoOpLogger extends LoggerBase {
|
|
3084
|
-
|
|
3331
|
+
/**
|
|
3332
|
+
* Creates a new no-op logger.
|
|
3333
|
+
* @param logLevel - The level of logging to be used.
|
|
3334
|
+
*/
|
|
3335
|
+
constructor(logLevel?: ReporterLogLevel);
|
|
3336
|
+
/**
|
|
3337
|
+
* {@inheritDoc Logging.LoggerBase._log}
|
|
3338
|
+
*/
|
|
3339
|
+
protected _log(message: string, __level: MessageLogLevel): Success<string | undefined>;
|
|
3085
3340
|
}
|
|
3086
3341
|
|
|
3087
3342
|
/**
|
|
@@ -3781,6 +4036,12 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
3781
4036
|
*/
|
|
3782
4037
|
export declare function recordToMap<TS, TD, TK extends string = string>(src: Record<TK, TS>, factory: KeyedThingFactory<TS, TD, TK>): Result<Map<TK, TD>>;
|
|
3783
4038
|
|
|
4039
|
+
/**
|
|
4040
|
+
* The level of logging to be used.
|
|
4041
|
+
* @public
|
|
4042
|
+
*/
|
|
4043
|
+
declare type ReporterLogLevel = 'all' | 'detail' | 'info' | 'warning' | 'error' | 'silent';
|
|
4044
|
+
|
|
3784
4045
|
/**
|
|
3785
4046
|
* Represents the {@link IResult | result} of some operation or sequence of operations.
|
|
3786
4047
|
* @remarks
|
|
@@ -4041,6 +4302,15 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
4041
4302
|
*/
|
|
4042
4303
|
export declare type ResultValueType<T> = T extends Result<infer TV> ? TV : never;
|
|
4043
4304
|
|
|
4305
|
+
/**
|
|
4306
|
+
* Compares two log levels.
|
|
4307
|
+
* @param message - The first log level.
|
|
4308
|
+
* @param reporter - The second log level.
|
|
4309
|
+
* @returns `true` if the message should be logged, `false` if it should be suppressed.
|
|
4310
|
+
* @public
|
|
4311
|
+
*/
|
|
4312
|
+
declare function shouldLog(message: MessageLogLevel, reporter: ReporterLogLevel): boolean;
|
|
4313
|
+
|
|
4044
4314
|
/**
|
|
4045
4315
|
* Helper function to create a {@link Conversion.ObjectConverter | ObjectConverter} which converts an object
|
|
4046
4316
|
* without changing shape, a {@link Conversion.FieldConverters | FieldConverters<T, TC>} and an optional
|
|
@@ -4336,6 +4606,10 @@ declare class Collectible<TKEY extends string = string, TINDEX extends number =
|
|
|
4336
4606
|
* {@inheritdoc IResult.aggregateError}
|
|
4337
4607
|
*/
|
|
4338
4608
|
aggregateError(__errors: IMessageAggregator): this;
|
|
4609
|
+
/**
|
|
4610
|
+
* {@inheritdoc IResult.report}
|
|
4611
|
+
*/
|
|
4612
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
4339
4613
|
/**
|
|
4340
4614
|
* Creates a {@link Success | Success<T>} with the supplied value.
|
|
4341
4615
|
* @param value - The value to be returned.
|
package/lib/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ import * as Collections from './packlets/collections';
|
|
|
2
2
|
import * as Conversion from './packlets/conversion';
|
|
3
3
|
import * as Hash from './packlets/hash';
|
|
4
4
|
import * as FileTree from './packlets/file-tree';
|
|
5
|
+
import * as Logging from './packlets/logging';
|
|
5
6
|
import * as Validation from './packlets/validation';
|
|
6
7
|
import { Collector, ICollectible, ConvertingCollector, IReadOnlyResultMap, ResultMap, ValidatingCollector, ValidatingConvertingCollector, ValidatingResultMap } from './packlets/collections';
|
|
7
8
|
import { Converter, Converters, ObjectConverter, StringConverter } from './packlets/conversion';
|
|
8
9
|
import { Validator, Validators } from './packlets/validation';
|
|
9
10
|
export * from './packlets/base';
|
|
10
|
-
export { Collections, Collector, ConvertingCollector, Conversion, Converter, Converters, FileTree, Hash, ICollectible, IReadOnlyResultMap, ObjectConverter, ResultMap, StringConverter, ValidatingCollector, ValidatingConvertingCollector, ValidatingResultMap, Validation, Validator, Validators };
|
|
11
|
+
export { Collections, Collector, ConvertingCollector, Conversion, Converter, Converters, FileTree, Hash, ICollectible, IReadOnlyResultMap, Logging, ObjectConverter, ResultMap, StringConverter, ValidatingCollector, ValidatingConvertingCollector, ValidatingResultMap, Validation, Validator, Validators };
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.js
CHANGED
|
@@ -57,7 +57,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
57
57
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
58
58
|
};
|
|
59
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
-
exports.Validators = exports.Validation = exports.ValidatingResultMap = exports.ValidatingConvertingCollector = exports.ValidatingCollector = exports.StringConverter = exports.ResultMap = exports.ObjectConverter = exports.Hash = exports.FileTree = exports.Converters = exports.Conversion = exports.ConvertingCollector = exports.Collector = exports.Collections = void 0;
|
|
60
|
+
exports.Validators = exports.Validation = exports.ValidatingResultMap = exports.ValidatingConvertingCollector = exports.ValidatingCollector = exports.StringConverter = exports.ResultMap = exports.ObjectConverter = exports.Logging = exports.Hash = exports.FileTree = exports.Converters = exports.Conversion = exports.ConvertingCollector = exports.Collector = exports.Collections = void 0;
|
|
61
61
|
const Collections = __importStar(require("./packlets/collections"));
|
|
62
62
|
exports.Collections = Collections;
|
|
63
63
|
const Conversion = __importStar(require("./packlets/conversion"));
|
|
@@ -66,6 +66,8 @@ const Hash = __importStar(require("./packlets/hash"));
|
|
|
66
66
|
exports.Hash = Hash;
|
|
67
67
|
const FileTree = __importStar(require("./packlets/file-tree"));
|
|
68
68
|
exports.FileTree = FileTree;
|
|
69
|
+
const Logging = __importStar(require("./packlets/logging"));
|
|
70
|
+
exports.Logging = Logging;
|
|
69
71
|
const Validation = __importStar(require("./packlets/validation"));
|
|
70
72
|
exports.Validation = Validation;
|
|
71
73
|
const collections_1 = require("./packlets/collections");
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import * as Logging from './logger';
|
|
2
1
|
export * from './brand';
|
|
3
2
|
export * from './mapResults';
|
|
4
3
|
export * from './messageAggregator';
|
|
5
4
|
export { Normalizer } from './normalize';
|
|
6
5
|
export * from './result';
|
|
7
6
|
export * from './utils';
|
|
8
|
-
export { Logging };
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -31,35 +31,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
31
31
|
if (k2 === undefined) k2 = k;
|
|
32
32
|
o[k2] = m[k];
|
|
33
33
|
}));
|
|
34
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
-
}) : function(o, v) {
|
|
37
|
-
o["default"] = v;
|
|
38
|
-
});
|
|
39
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
-
var ownKeys = function(o) {
|
|
41
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
-
var ar = [];
|
|
43
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
-
return ar;
|
|
45
|
-
};
|
|
46
|
-
return ownKeys(o);
|
|
47
|
-
};
|
|
48
|
-
return function (mod) {
|
|
49
|
-
if (mod && mod.__esModule) return mod;
|
|
50
|
-
var result = {};
|
|
51
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
-
__setModuleDefault(result, mod);
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
})();
|
|
56
34
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
57
35
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
58
36
|
};
|
|
59
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
-
exports.
|
|
61
|
-
const Logging = __importStar(require("./logger"));
|
|
62
|
-
exports.Logging = Logging;
|
|
38
|
+
exports.Normalizer = void 0;
|
|
63
39
|
__exportStar(require("./brand"), exports);
|
|
64
40
|
__exportStar(require("./mapResults"), exports);
|
|
65
41
|
__exportStar(require("./messageAggregator"), exports);
|
|
@@ -41,6 +41,33 @@ export interface IResultLogger<TD = unknown> {
|
|
|
41
41
|
*/
|
|
42
42
|
error(message: string, detail?: TD): void;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* The severity level at which a message should be logged.
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
export type MessageLogLevel = 'quiet' | 'detail' | 'info' | 'warning' | 'error';
|
|
49
|
+
/**
|
|
50
|
+
* Options for reporting a result.
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
export interface IResultReportOptions {
|
|
54
|
+
/**
|
|
55
|
+
* The level of reporting to be used for failure results. Default is 'error'.
|
|
56
|
+
*/
|
|
57
|
+
failure?: MessageLogLevel;
|
|
58
|
+
/**
|
|
59
|
+
* The level of reporting to be used for success results. Default is 'quiet'.
|
|
60
|
+
*/
|
|
61
|
+
success?: MessageLogLevel;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Interface for reporting a result.
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
export interface IResultReporter<T, TD = unknown> {
|
|
68
|
+
reportSuccess(level: MessageLogLevel, value: T, detail?: TD): void;
|
|
69
|
+
reportFailure(level: MessageLogLevel, message: string, detail?: TD): void;
|
|
70
|
+
}
|
|
44
71
|
/**
|
|
45
72
|
* Simple error aggregator to simplify collecting all errors in
|
|
46
73
|
* a flow.
|
|
@@ -237,6 +264,12 @@ export interface IResult<T> {
|
|
|
237
264
|
* errors will be aggregated.
|
|
238
265
|
*/
|
|
239
266
|
aggregateError(errors: IMessageAggregator): this;
|
|
267
|
+
/**
|
|
268
|
+
* Reports the result to the supplied reporter
|
|
269
|
+
* @param reporter - The {@link IResultReporter | reporter} to which the result will be reported.
|
|
270
|
+
* @param options - The {@link IResultReportOptions | options} for reporting the result.
|
|
271
|
+
*/
|
|
272
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
240
273
|
}
|
|
241
274
|
/**
|
|
242
275
|
* Reports a successful {@link IResult | result} from some operation and the
|
|
@@ -323,6 +356,10 @@ export declare class Success<T> implements IResult<T> {
|
|
|
323
356
|
* {@inheritdoc IResult.aggregateError}
|
|
324
357
|
*/
|
|
325
358
|
aggregateError(__errors: IMessageAggregator): this;
|
|
359
|
+
/**
|
|
360
|
+
* {@inheritdoc IResult.report}
|
|
361
|
+
*/
|
|
362
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
326
363
|
/**
|
|
327
364
|
* Creates a {@link Success | Success<T>} with the supplied value.
|
|
328
365
|
* @param value - The value to be returned.
|
|
@@ -415,6 +452,10 @@ export declare class Failure<T> implements IResult<T> {
|
|
|
415
452
|
* {@inheritdoc IResult.aggregateError}
|
|
416
453
|
*/
|
|
417
454
|
aggregateError(errors: IMessageAggregator): this;
|
|
455
|
+
/**
|
|
456
|
+
* {@inheritdoc IResult.report}
|
|
457
|
+
*/
|
|
458
|
+
report(reporter: IResultReporter<T>, options?: IResultReportOptions): this;
|
|
418
459
|
/**
|
|
419
460
|
* Get a 'friendly' string representation of this object.
|
|
420
461
|
* @remarks
|
|
@@ -537,6 +578,10 @@ export declare class DetailedSuccess<T, TD> extends Success<T> {
|
|
|
537
578
|
* {@inheritdoc Success.withErrorFormat}
|
|
538
579
|
*/
|
|
539
580
|
withErrorFormat(cb: ErrorFormatter): DetailedResult<T, TD>;
|
|
581
|
+
/**
|
|
582
|
+
* {@inheritdoc IResult.report}
|
|
583
|
+
*/
|
|
584
|
+
report(reporter: IResultReporter<T, TD>, options?: IResultReportOptions): this;
|
|
540
585
|
/**
|
|
541
586
|
* Creates a {@link DetailedSuccess | DetailedSuccess<T, TD>} with the supplied value and
|
|
542
587
|
* optional detail.
|
|
@@ -599,6 +644,10 @@ export declare class DetailedFailure<T, TD> extends Failure<T> {
|
|
|
599
644
|
* {@inheritdoc IResult.withErrorFormat}
|
|
600
645
|
*/
|
|
601
646
|
withErrorFormat(cb: ErrorFormatter<TD>): DetailedResult<T, TD>;
|
|
647
|
+
/**
|
|
648
|
+
* {@inheritdoc IResult.report}
|
|
649
|
+
*/
|
|
650
|
+
report(reporter: IResultReporter<T, TD>, options?: IResultReportOptions): this;
|
|
602
651
|
orThrow(logOrFormat?: IResultLogger<TD> | ErrorFormatter<TD>): never;
|
|
603
652
|
orThrow(cb: ErrorFormatter): never;
|
|
604
653
|
/**
|