featherbone-shipengine
Version:
Forked and patched version of the official ShipEngine JavaScript SDK for Node.js
173 lines • 6.04 kB
JavaScript
export function formatParams(params) {
return {
shipment: mapShipment(params.shipment),
is_return_label: params.isReturnLabel,
rma_number: params.rmaNumber,
charge_event: params.chargeEvent,
outbound_label_id: params.outboundLabelId,
validate_address: params.validateAddress,
label_download_type: params.labelDownloadType,
label_format: params.labelFormat,
display_scheme: params.displayScheme,
label_layout: params.labelLayout,
label_image_id: params.labelImageId,
};
}
function mapShipment(params) {
if (!params)
return undefined;
return {
external_order_id: params.externalOrderId,
items: params.items,
tax_identifiers: mapTaxIdentifiers(params.taxIdentifiers),
external_shipment_id: params.externalShipmentId,
ship_to: mapShipTo(params.shipTo),
ship_from: mapShipFrom(params.shipFrom),
warehouse_id: params.warehouseId,
return_to: mapReturnTo(params.returnTo),
confirmation: params.confirmation,
customs: mapCustoms(params.customs),
advanced_options: mapAdvancedOptions(params.advancedOptions),
origin_type: params.originType,
insurance_provider: params.insuranceProvider,
order_source_code: params.orderSourceCode,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
service_code: params.serviceCode,
packages: mapPackages(params.packages),
};
}
function mapShipTo(params) {
if (!params)
return undefined;
return {
name: params.name,
phone: params.phone,
company_name: params.companyName,
address_line1: params.addressLine1,
address_line2: params.addressLine2,
address_line3: params.addressLine3,
city_locality: params.cityLocality,
state_province: params.stateProvince,
postal_code: params.postalCode,
country_code: params.countryCode,
address_residential_indicator: params.addressResidentialIndicator,
};
}
function mapShipFrom(params) {
if (!params)
return undefined;
return {
name: params.name,
phone: params.phone,
company_name: params.companyName,
address_line1: params.addressLine1,
address_line2: params.addressLine2,
address_line3: params.addressLine3,
city_locality: params.cityLocality,
state_province: params.stateProvince,
postal_code: params.postalCode,
country_code: params.countryCode,
address_residential_indicator: params.addressResidentialIndicator,
};
}
function mapReturnTo(params) {
if (!params)
return undefined;
return {
name: params.name,
phone: params.phone,
company_name: params.companyName,
address_line1: params.addressLine1,
address_line2: params.addressLine2,
address_line3: params.addressLine3,
city_locality: params.cityLocality,
state_province: params.stateProvince,
postal_code: params.postalCode,
country_code: params.countryCode,
address_residential_indicator: params.addressResidentialIndicator,
};
}
function mapPackages(params) {
return params.map((pkg) => ({
package_code: pkg.packageCode,
weight: pkg.weight,
dimensions: pkg.dimensions,
insured_value: pkg.insuredValue,
label_messages: pkg.labelMessages,
external_package_id: pkg.externalPackageId,
}));
}
function mapTaxIdentifiers(params) {
if (!params)
return undefined;
return params.map((taxId) => ({
taxable_entity_type: taxId.taxableEntityType,
identifier_type: taxId.identifierType,
issuing_authority: taxId.issuingAuthority,
value: taxId.value,
}));
}
function mapCustoms(params) {
if (!params)
return undefined;
let custom_items = [];
if (params.customsItems) {
custom_items = params.customsItems.map((customItem) => ({
quantity: customItem.quantity,
value: customItem.value,
harmonized_tariff_code: customItem.harmonizedTariffCode,
country_of_origin: customItem.countryOfOrigin,
unit_of_measure: customItem.unitOfMeasure,
sku: customItem.sku,
sku_description: customItem.skuDescription,
description: customItem.description
}));
}
return {
contents: params.contents,
non_delivery: params.nonDelivery,
customs_items: custom_items,
};
}
function mapAdvancedOptions(params) {
if (!params)
return undefined;
return {
bill_to_account: params.billToAccount,
bill_to_country_code: params.billToCountryCode,
bill_to_party: params.billToParty,
bill_to_postal_code: params.billToPostalCode,
contains_alcohol: params.containsAlcohol,
delivered_duty_paid: params.deliveredDutyPaid,
dry_ice: params.dryIce,
dry_ice_weight: params.dryIceWeight,
non_machinable: params.nonMachinable,
saturday_delivery: params.saturdayDelivery,
use_ups_ground_freight_pricing: params.useUpsGroundFreightPricing,
freight_class: params.freightClass,
custom_field1: params.customField1,
custom_field2: params.customField2,
custom_field3: params.customField3,
origin_type: params.originType,
shipper_release: params.shipperRelease,
collect_on_delivery: mapCollectOnDelivery(params.collectOnDelivery),
};
}
function mapCollectOnDelivery(params) {
if (!params)
return undefined;
return {
payment_type: params.paymentType,
payment_amount: mapPaymentAmount(params.paymentAmount),
};
}
function mapPaymentAmount(params) {
if (!params)
return undefined;
return {
currency: params.currency,
amount: params.amount,
};
}
//# sourceMappingURL=format-params.js.map