Skip to content

Latest commit

 

History

History
115 lines (88 loc) · 2.53 KB

README.md

File metadata and controls

115 lines (88 loc) · 2.53 KB

ts-shipment-tracking

Unified shipment tracking data from FedEx, UPS, and USPS APIs.

Table of Contents
  1. About
  2. Installation
  3. Usage
  4. Built With
  5. Acknowledgements

About

Returns a unified response from FedEx, UPS, and USPS tracking APIs.

Installation

$ npm install ts-shipment-tracking

Usage

Courier API credentials are stored using dotenv. If you do not have dotenv installed:

$ npm install dotenv

Add the following credentials to your .env file:

FEDEX_KEY=
FEDEX_PASSWORD=
FEDEX_ACCOUNT_NUMBER=
FEDEX_METER_NUMBER=
UPS_ACCESS_LICENSE_NUMBER=
USPS_USER_ID=

Example input:

import 'dotenv/config';
import { TrackingInfo, track, trackByCourier, trackFedex } from 'ts-shipment-tracking';

(async () => {
  const exampleOne: TrackingInfo | undefined = await track('<any_tracking_number>');
  console.log(exampleOne);

  // or

  const exampleTwo: TrackingInfo | undefined = await trackByCourier('ups', '<ups_tracking_number>');
  console.log(exampleTwo);

  // or

  const exampleThree: TrackingInfo | undefined = await trackFedex('<fedex_tracking_number>');
  console.log(exampleThree);
})();

Example output:

{
  events: [
    {
      status: 'IN_TRANSIT',
      label: 'Arrived at FedEx location',
      location: 'LEBANON TN US 37090',
      date: 1616823540000
    },
    ...
  ],
  estimatedDeliveryDate: 1616996340000
}

⚠️ Currently the output will be undefined when the courier api does not have tracking info for the given tracking number or when any error occurs (including courier api not responding). Better error handling will be added in the future.

Statuses:

'UNAVAILABLE'
'LABEL_CREATED'
'IN_TRANSIT'
'OUT_FOR_DELIVERY'
'DELIVERY_ATTEMPTED'
'RETURNED_TO_SENDER'
'EXCEPTION'
'DELIVERED'

Built With

Acknowledgements