diff options
author | Sebastian <sebasjm@gmail.com> | 2024-05-17 17:07:18 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-05-17 17:07:18 -0300 |
commit | 9381ac6d1031ac16882023c617dc82b53df7a961 (patch) | |
tree | 91760c3bce964e47cd8e83dc541609fa2b05b03b /packages/taler-util/src/codec.ts | |
parent | f5ef863a77fa6366848b6c50126e49988ece99c1 (diff) | |
download | wallet-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.ts | 13 |
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 { |