keep checkable annotations on amount for now

This commit is contained in:
Florian Dold 2019-12-14 23:15:56 +01:00
parent a0b5aba71c
commit f4043a0f81
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 10 additions and 3 deletions

View File

@ -45,27 +45,34 @@ export const maxAmountValue = 2 ** 52;
* Non-negative financial amount. Fractional values are expressed as multiples * Non-negative financial amount. Fractional values are expressed as multiples
* of 1e-8. * of 1e-8.
*/ */
export interface AmountJson { @Checkable.Class()
export class AmountJson {
/** /**
* Value, must be an integer. * Value, must be an integer.
*/ */
@Checkable.Number()
readonly value: number; readonly value: number;
/** /**
* Fraction, must be an integer. Represent 1/1e8 of a unit. * Fraction, must be an integer. Represent 1/1e8 of a unit.
*/ */
@Checkable.Number()
readonly fraction: number; readonly fraction: number;
/** /**
* Currency of the amount. * Currency of the amount.
*/ */
@Checkable.String()
readonly currency: string; readonly currency: string;
static checked: (obj: any) => AmountJson;
} }
const amountJsonCodec: Codec<AmountJson> = objectCodec<AmountJson>() const amountJsonCodec: Codec<AmountJson> = objectCodec<AmountJson>()
.property("value", numberCodec) .property("value", numberCodec)
.property("fraction", numberCodec)
.property("currency", stringCodec) .property("currency", stringCodec)
.build<AmountJson>("AmountJson"); .build("AmountJson");
/** /**
* Result of a possibly overflowing operation. * Result of a possibly overflowing operation.

View File

@ -46,7 +46,7 @@ type MyUnion = AltOne | AltTwo;
test("basic codec", t => { test("basic codec", t => {
const myObjCodec = objectCodec<MyObj>() const myObjCodec = objectCodec<MyObj>()
.property("foo", stringCodec) .property("foo", stringCodec)
.build<MyObj>("MyObj"); .build("MyObj");
const res = myObjCodec.decode({ foo: "hello" }); const res = myObjCodec.decode({ foo: "hello" });
t.assert(res.foo === "hello"); t.assert(res.foo === "hello");