UNPKG

@shipengine/connect-carrier-api

Version:

This is the typescript/javascript definitions for carrier api

55 lines (50 loc) 1.91 kB
import Joi from 'joi'; export interface ShippingOption { Name: string; Type: ShippingOptionEnum; Description: string; } export type ShippingOptionDescription = { Name: string; Description: string }; export type ShippingOptionDictionary = { [Key in ShippingOptionEnum]?: ShippingOptionDescription; }; export const ShippingOptionDescriptionSchema = Joi.object({ Name: Joi.string().required().max(50), Description: Joi.string().required().max(255), }).optional(); export enum ShippingOptionEnum { ContainsAlcohol = 'alcohol', B13ACanada = 'b13a-canada', BillToSender = 'bill-to-sender', BillToThirdParty = 'bill-to-third-party', CollectOnDelivery = 'collect-on-delivery', ConsequentialLoss = 'consequential-loss', DangerousGoods = 'dangerous-goods', DeliveryMessage = 'delivery-message', DontPrepayPostage = 'dont-prepay-postage', DryIce = 'dry-ice', EmailNotification = 'email-notification', FreightClass = 'freight-class', HoldForPickup = 'hold-for-pickup', IncludeReturnLabel = 'include-return-label', LocalCollect = 'local-collect', NonMachinable = 'non-machinable', NotificationType = 'notification-type', ReleaseNoSignature = 'shipper-release', RequiresAdditionalHandling = 'additional-handling', Safeplace = 'safeplace', SaturdayDelivery = 'saturday-delivery', SaturdayGuarantee = 'saturday-guarantee', SmsNotification = 'sms-notification', SpecialHandling = 'special-handling', ThirdPartyConsignee = 'third-party-consignee', CarrierInsurance = 'carrier-insurance', WindsorFrameworkMovementIndicator = 'windsor-framework-movement-indicator', WindsorFrameworkNotAtRisk = 'windsor-framework-not-at-risk', } export const ShippingOptionDictionarySchema = Joi.object( Object.values(ShippingOptionEnum).reduce((accumulator: any, option) => { accumulator[option] = ShippingOptionDescriptionSchema; return accumulator; }, {}), );