aboutsummaryrefslogtreecommitdiff
path: root/src/types.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-28 00:00:26 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-28 00:00:26 +0200
commit489b8cb45e4a13ab85d008946acf91ac438851fa (patch)
treead0ea5a5f655a02c844e229b454b11d59693aa48 /src/types.ts
parentbd17ead09a1baad43e8947d729f43257b4fb6d08 (diff)
downloadwallet-core-489b8cb45e4a13ab85d008946acf91ac438851fa.tar.xz
correct and simplify test cases
Diffstat (limited to 'src/types.ts')
-rw-r--r--src/types.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/types.ts b/src/types.ts
index 240275975..53f98948e 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -741,6 +741,21 @@ export namespace Amounts {
export function isNonZero(a: AmountJson) {
return a.value > 0 || a.fraction > 0;
}
+
+ /**
+ * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.
+ */
+ export function parse(s: string): AmountJson|undefined {
+ let res = s.match(/([a-zA-Z0-9_*-]+):([0-9])+([.][0-9]+)?/);
+ if (!res) {
+ return undefined;
+ }
+ return {
+ currency: res[1],
+ value: Number.parseInt(res[2]),
+ fraction: Math.round(fractionalBase * Number.parseFloat(res[3] || "0")),
+ }
+ }
}