aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src/codec.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-05-17 17:07:18 -0300
committerSebastian <sebasjm@gmail.com>2024-05-17 17:07:18 -0300
commit9381ac6d1031ac16882023c617dc82b53df7a961 (patch)
tree91760c3bce964e47cd8e83dc541609fa2b05b03b /packages/taler-util/src/codec.ts
parentf5ef863a77fa6366848b6c50126e49988ece99c1 (diff)
downloadwallet-core-9381ac6d1031ac16882023c617dc82b53df7a961.tar.xz
base_url is optional
Diffstat (limited to 'packages/taler-util/src/codec.ts')
-rw-r--r--packages/taler-util/src/codec.ts13
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/taler-util/src/codec.ts b/packages/taler-util/src/codec.ts
index 54d450d82..b04ce0612 100644
--- a/packages/taler-util/src/codec.ts
+++ b/packages/taler-util/src/codec.ts
@@ -146,7 +146,7 @@ class UnionCodecBuilder<
constructor(
private discriminator: TagPropertyLabel,
private baseCodec?: Codec<CommonBaseType>,
- ) {}
+ ) { }
/**
* Define a property for the object.
@@ -491,6 +491,17 @@ export function codecOptional<V>(innerCodec: Codec<V>): Codec<V | undefined> {
};
}
+export function codecOptionalDefault<V>(innerCodec: Codec<V>, def: V): Codec<V> {
+ return {
+ decode(x: any, c?: Context): V {
+ if (x === undefined || x === null) {
+ return def;
+ }
+ return innerCodec.decode(x, c);
+ },
+ };
+}
+
export function codecForLazy<V>(innerCodec: () => Codec<V>): Codec<V> {
let instance: Codec<V> | undefined = undefined
return {