Added FieldWithRow interface and Joi Schema

This commit is contained in:
Alexander Cerutti
2022-11-09 19:30:04 +01:00
parent 4e548094d0
commit e4fc8feda8
2 changed files with 13 additions and 9 deletions

View File

@@ -22,6 +22,10 @@ export interface Field {
numberStyle?: string; numberStyle?: string;
} }
export interface FieldWithRow extends Field {
row?: 0 | 1;
}
export const Field = Joi.object<Field>().keys({ export const Field = Joi.object<Field>().keys({
attributedValue: Joi.alternatives( attributedValue: Joi.alternatives(
Joi.string().allow(""), Joi.string().allow(""),
@@ -72,3 +76,9 @@ export const Field = Joi.object<Field>().keys({
otherwise: Joi.string().forbidden(), otherwise: Joi.string().forbidden(),
}), }),
}); });
export const FieldWithRow = Field.concat(
Joi.object<FieldWithRow>().keys({
row: Joi.number().min(0).max(1),
}),
);

View File

@@ -1,5 +1,5 @@
import Joi from "joi"; import Joi from "joi";
import { Field } from "./Field"; import { Field, FieldWithRow } from "./Field";
export type TransitType = export type TransitType =
| "PKTransitTypeAir" | "PKTransitTypeAir"
@@ -13,7 +13,7 @@ export const TransitType = Joi.string().regex(
); );
export interface PassFields { export interface PassFields {
auxiliaryFields: (Field & { row?: number })[]; auxiliaryFields: FieldWithRow[];
backFields: Field[]; backFields: Field[];
headerFields: Field[]; headerFields: Field[];
primaryFields: Field[]; primaryFields: Field[];
@@ -22,13 +22,7 @@ export interface PassFields {
} }
export const PassFields = Joi.object<PassFields>().keys({ export const PassFields = Joi.object<PassFields>().keys({
auxiliaryFields: Joi.array().items( auxiliaryFields: Joi.array().items(FieldWithRow),
Joi.object()
.keys({
row: Joi.number().max(1).min(0),
})
.concat(Field),
),
backFields: Joi.array().items(Field), backFields: Joi.array().items(Field),
headerFields: Joi.array().items(Field), headerFields: Joi.array().items(Field),
primaryFields: Joi.array().items(Field), primaryFields: Joi.array().items(Field),