mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 22:25:24 +00:00
Fixed tests, added tests, fixed ducked up things
This commit is contained in:
@@ -1,12 +1,24 @@
|
||||
import Joi from "joi";
|
||||
import { Field } from "./PassFieldContent";
|
||||
|
||||
export type TransitType =
|
||||
| "PKTransitTypeAir"
|
||||
| "PKTransitTypeBoat"
|
||||
| "PKTransitTypeBus"
|
||||
| "PKTransitTypeGeneric"
|
||||
| "PKTransitTypeTrain";
|
||||
|
||||
export const TransitType = Joi.string().regex(
|
||||
/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/,
|
||||
);
|
||||
|
||||
export interface PassFields {
|
||||
auxiliaryFields: (Field & { row?: number })[];
|
||||
backFields: Field[];
|
||||
headerFields: Field[];
|
||||
primaryFields: Field[];
|
||||
secondaryFields: Field[];
|
||||
transitType?: TransitType;
|
||||
}
|
||||
|
||||
export const PassFields = Joi.object<PassFields>().keys({
|
||||
@@ -21,15 +33,5 @@ export const PassFields = Joi.object<PassFields>().keys({
|
||||
headerFields: Joi.array().items(Field),
|
||||
primaryFields: Joi.array().items(Field),
|
||||
secondaryFields: Joi.array().items(Field),
|
||||
transitType: TransitType,
|
||||
});
|
||||
|
||||
export type TransitType =
|
||||
| "PKTransitTypeAir"
|
||||
| "PKTransitTypeBoat"
|
||||
| "PKTransitTypeBus"
|
||||
| "PKTransitTypeGeneric"
|
||||
| "PKTransitTypeTrain";
|
||||
|
||||
export const TransitType = Joi.string().regex(
|
||||
/(PKTransitTypeAir|PKTransitTypeBoat|PKTransitTypeBus|PKTransitTypeGeneric|PKTransitTypeTrain)/,
|
||||
);
|
||||
|
||||
@@ -103,13 +103,11 @@ export const PassPropsFromMethods = Joi.object<PassPropsFromMethods>({
|
||||
});
|
||||
|
||||
export const PassKindsProps = Joi.object<PassKindsProps>({
|
||||
coupon: Joi.array().items(Field),
|
||||
generic: Joi.array().items(Field),
|
||||
storeCard: Joi.array().items(Field),
|
||||
eventTicket: Joi.array().items(Field),
|
||||
boardingPass: Joi.array().items(
|
||||
Field.concat(Joi.object({ transitType: TransitType })),
|
||||
),
|
||||
coupon: PassFields.disallow("transitType"),
|
||||
generic: PassFields.disallow("transitType"),
|
||||
storeCard: PassFields.disallow("transitType"),
|
||||
eventTicket: PassFields.disallow("transitType"),
|
||||
boardingPass: PassFields,
|
||||
});
|
||||
|
||||
export const PassType = Joi.string().regex(
|
||||
@@ -144,11 +142,10 @@ export const OverridablePassProps = Joi.object<OverridablePassProps>({
|
||||
|
||||
export const PassProps = Joi.object<
|
||||
OverridablePassProps & PassKindsProps & PassPropsFromMethods
|
||||
>({
|
||||
...OverridablePassProps,
|
||||
...PassKindsProps,
|
||||
...PassPropsFromMethods,
|
||||
});
|
||||
>()
|
||||
.concat(OverridablePassProps)
|
||||
.concat(PassKindsProps)
|
||||
.concat(PassPropsFromMethods);
|
||||
|
||||
export interface Template {
|
||||
model: string;
|
||||
|
||||
Reference in New Issue
Block a user