aboutsummaryrefslogtreecommitdiff
path: root/packages/bank-ui/src/utils.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-03-11 14:56:25 -0300
committerSebastian <sebasjm@gmail.com>2024-03-11 14:57:48 -0300
commit37f46f4d6b821d163c3e4db5c374b1120212ac74 (patch)
tree641c5bccd6d1b77fa440e67b80543eec9378ef4a /packages/bank-ui/src/utils.ts
parent4cbe754aca72b6edee922e3a84f251030293f088 (diff)
downloadwallet-core-37f46f4d6b821d163c3e4db5c374b1120212ac74.tar.xz
obs and cancel request, plus lint
Diffstat (limited to 'packages/bank-ui/src/utils.ts')
-rw-r--r--packages/bank-ui/src/utils.ts82
1 files changed, 35 insertions, 47 deletions
diff --git a/packages/bank-ui/src/utils.ts b/packages/bank-ui/src/utils.ts
index 8b0febe42..305f13803 100644
--- a/packages/bank-ui/src/utils.ts
+++ b/packages/bank-ui/src/utils.ts
@@ -15,6 +15,7 @@
*/
import {
+ AbsoluteTime,
AmountString,
PaytoString,
TalerError,
@@ -73,36 +74,36 @@ export type PartialButDefined<T> = {
*/
export type WithIntermediate<Type> = {
[prop in keyof Type]: Type[prop] extends PaytoString
- ? Type[prop] | undefined
- : Type[prop] extends AmountString
- ? Type[prop] | undefined
- : Type[prop] extends TranslatedString
- ? Type[prop] | undefined
- : Type[prop] extends object
- ? WithIntermediate<Type[prop]>
- : Type[prop] | undefined;
+ ? Type[prop] | undefined
+ : Type[prop] extends AmountString
+ ? Type[prop] | undefined
+ : Type[prop] extends TranslatedString
+ ? Type[prop] | undefined
+ : Type[prop] extends object
+ ? WithIntermediate<Type[prop]>
+ : Type[prop] | undefined;
};
export type RecursivePartial<Type> = {
[P in keyof Type]?: Type[P] extends (infer U)[]
- ? RecursivePartial<U>[]
- : Type[P] extends object
- ? RecursivePartial<Type[P]>
- : Type[P];
+ ? RecursivePartial<U>[]
+ : Type[P] extends object
+ ? RecursivePartial<Type[P]>
+ : Type[P];
};
export type ErrorMessageMappingFor<Type> = {
[prop in keyof Type]+?: Exclude<Type[prop], undefined> extends PaytoString // enumerate known object
- ? TranslatedString
- : Exclude<Type[prop], undefined> extends AmountString
- ? TranslatedString
- : Exclude<Type[prop], undefined> extends TranslatedString
- ? TranslatedString
- : // arrays: every element
- Exclude<Type[prop], undefined> extends (infer U)[]
- ? ErrorMessageMappingFor<U>[]
- : // map: every field
- Exclude<Type[prop], undefined> extends object
- ? ErrorMessageMappingFor<Type[prop]>
- : TranslatedString;
+ ? TranslatedString
+ : Exclude<Type[prop], undefined> extends AmountString
+ ? TranslatedString
+ : Exclude<Type[prop], undefined> extends TranslatedString
+ ? TranslatedString
+ : // arrays: every element
+ Exclude<Type[prop], undefined> extends (infer U)[]
+ ? ErrorMessageMappingFor<U>[]
+ : // map: every field
+ Exclude<Type[prop], undefined> extends object
+ ? ErrorMessageMappingFor<Type[prop]>
+ : TranslatedString;
};
export enum TanChannel {
@@ -155,6 +156,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Request timeout`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -164,6 +166,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Request throttled`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -173,6 +176,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Malformed response`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -182,6 +186,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Network error`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -191,6 +196,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Unexpected request error`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -200,6 +206,7 @@ export function buildRequestErrorMessage(
title: i18n.str`Unexpected error`,
description: cause.message as TranslatedString,
debug: JSON.stringify(cause.errorDetail, undefined, 2),
+ when: AbsoluteTime.now(),
};
break;
}
@@ -373,11 +380,10 @@ export function validateIBAN(
i18n: InternationalizationAPI,
): TranslatedString | undefined {
if (!IBAN_REGEX.test(account)) {
- return i18n.str`IBAN only have uppercased letters and numbers`
+ return i18n.str`IBAN only have uppercased letters and numbers`;
}
// Check total length
- if (account.length < 4)
- return i18n.str`IBAN numbers have more that 4 digits`;
+ if (account.length < 4) return i18n.str`IBAN numbers have more that 4 digits`;
if (account.length > 34)
return i18n.str`IBAN numbers have less that 34 digits`;
@@ -423,25 +429,7 @@ export function validateTalerBank(
i18n: InternationalizationAPI,
): TranslatedString | undefined {
if (!USERNAME_REGEX.test(account)) {
- return i18n.str`Account only have letters and numbers`
+ return i18n.str`Account only have letters and numbers`;
}
- return undefined
-}
-
-export function validateRawIBAN(
- payto: string,
- i18n: InternationalizationAPI,
-): TranslatedString | undefined {
- return undefined
-}
-
-
-
-export function validateRawTalerBank(
- payto: string,
- currentHost: string,
- i18n: InternationalizationAPI,
-): TranslatedString | undefined {
- return undefined
+ return undefined;
}
-