@augment-vir/common 14.2.1 → 14.3.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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeAndReturnError = exports.ensureError = exports.extractErrorMessage = exports.combineErrorMessages = exports.combineErrors = void 0;
3
+ exports.executeAndReturnError = exports.wrapInTry = exports.ensureError = exports.extractErrorMessage = exports.combineErrorMessages = exports.combineErrors = void 0;
4
4
  const __1 = require("..");
5
5
  function combineErrors(errors) {
6
6
  if (!errors || errors.length === 0) {
@@ -41,6 +41,20 @@ function ensureError(input) {
41
41
  }
42
42
  }
43
43
  exports.ensureError = ensureError;
44
+ function wrapInTry(inputs) {
45
+ try {
46
+ return inputs.callback();
47
+ }
48
+ catch (error) {
49
+ if (inputs.catchCallback) {
50
+ return inputs.catchCallback(error);
51
+ }
52
+ else {
53
+ return inputs.fallbackValue;
54
+ }
55
+ }
56
+ }
57
+ exports.wrapInTry = wrapInTry;
44
58
  function executeAndReturnError(callback) {
45
59
  let caughtError;
46
60
  try {
@@ -34,6 +34,19 @@ export function ensureError(input) {
34
34
  return new Error(extractErrorMessage(input));
35
35
  }
36
36
  }
37
+ export function wrapInTry(inputs) {
38
+ try {
39
+ return inputs.callback();
40
+ }
41
+ catch (error) {
42
+ if (inputs.catchCallback) {
43
+ return inputs.catchCallback(error);
44
+ }
45
+ else {
46
+ return inputs.fallbackValue;
47
+ }
48
+ }
49
+ }
37
50
  export function executeAndReturnError(callback) {
38
51
  let caughtError;
39
52
  try {
@@ -1,3 +1,4 @@
1
+ import { RequireExactlyOne } from 'type-fest';
1
2
  import { AtLeastTuple, NoInputsFunction, UnPromise } from '..';
2
3
  export declare function combineErrors(errors: AtLeastTuple<Error, 1>): Error;
3
4
  export declare function combineErrors(errors: ReadonlyArray<never>): undefined;
@@ -6,5 +7,12 @@ export declare function combineErrors(errors?: undefined): undefined;
6
7
  export declare function combineErrorMessages(errors?: ReadonlyArray<Error | string | undefined> | undefined): string;
7
8
  export declare function extractErrorMessage(error: unknown): string;
8
9
  export declare function ensureError(input: unknown): Error;
10
+ export type TryWrapInputs<CallbackReturn, FallbackReturn> = {
11
+ callback: () => CallbackReturn;
12
+ } & RequireExactlyOne<{
13
+ fallbackValue: FallbackReturn;
14
+ catchCallback: (error: unknown) => FallbackReturn;
15
+ }>;
16
+ export declare function wrapInTry<CallbackReturn, FallbackReturn>(inputs: TryWrapInputs<CallbackReturn, FallbackReturn>): FallbackReturn | CallbackReturn;
9
17
  export declare function executeAndReturnError<CallbackGeneric extends NoInputsFunction<PromiseLike<any>>>(callback: CallbackGeneric): Promise<Error | UnPromise<ReturnType<CallbackGeneric>>>;
10
18
  export declare function executeAndReturnError<CallbackGeneric extends NoInputsFunction>(callback: CallbackGeneric): Error | ReturnType<CallbackGeneric>;
@@ -1,11 +1,11 @@
1
1
  import { UnionToIntersection } from 'type-fest';
2
2
  import { PropertyValueType } from './object';
3
3
  export type NestedSequentialKeys<ObjectGeneric extends object> = PropertyValueType<{
4
- [Prop in keyof ObjectGeneric]: NonNullable<ObjectGeneric[Prop]> extends object ? [Prop, ...(NestedSequentialKeys<NonNullable<ObjectGeneric[Prop]>> | [])] : [Prop];
4
+ [Prop in keyof ObjectGeneric]: NonNullable<ObjectGeneric[Prop]> extends object ? Readonly<[Prop, ...(NestedSequentialKeys<NonNullable<ObjectGeneric[Prop]>> | [])]> : Readonly<[Prop]>;
5
5
  }>;
6
6
  export type NestedKeys<ObjectGeneric extends object> = UnionToIntersection<Extract<PropertyValueType<ObjectGeneric>, object>> extends object ? [
7
7
  keyof ObjectGeneric,
8
8
  ...(NestedKeys<UnionToIntersection<Extract<PropertyValueType<ObjectGeneric>, object>>> | [])
9
9
  ] : [keyof ObjectGeneric];
10
10
  export type NestedValue<ObjectGeneric extends object, NestedKeysGeneric extends NestedSequentialKeys<ObjectGeneric>> = NestedKeysGeneric extends readonly [infer FirstEntry, ...infer FollowingEntries] ? FirstEntry extends keyof ObjectGeneric ? FollowingEntries extends never[] ? ObjectGeneric[FirstEntry] : ObjectGeneric[FirstEntry] extends object ? FollowingEntries extends NestedSequentialKeys<ObjectGeneric[FirstEntry]> ? NestedValue<ObjectGeneric[FirstEntry], FollowingEntries> : never : never : never : never;
11
- export declare function getValueFromNestedKeys<ObjectGeneric extends object, KeysGeneric extends NestedSequentialKeys<ObjectGeneric>>(inputObject: ObjectGeneric, nestedKeys: KeysGeneric): NestedValue<ObjectGeneric, KeysGeneric> | undefined;
11
+ export declare function getValueFromNestedKeys<const ObjectGeneric extends object, const KeysGeneric extends NestedSequentialKeys<ObjectGeneric>>(inputObject: ObjectGeneric, nestedKeys: KeysGeneric): NestedValue<ObjectGeneric, KeysGeneric> | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@augment-vir/common",
3
- "version": "14.2.1",
3
+ "version": "14.3.0",
4
4
  "homepage": "https://github.com/electrovir/augment-vir/tree/main/packages/common",
5
5
  "bugs": {
6
6
  "url": "https://github.com/electrovir/augment-vir/issues"
@@ -27,7 +27,7 @@
27
27
  "type-fest": "^3.11.1"
28
28
  },
29
29
  "devDependencies": {
30
- "typescript": "^5.0.4"
30
+ "typescript": "^5.1.3"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public"