Socket
Socket
Sign inDemoInstall

parcel-tracker-api

Package Overview
Dependencies
6
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    parcel-tracker-api

Parcel tracker for Node.js


Version published
Weekly downloads
29
increased by123.08%
Maintainers
1
Install size
782 kB
Created
Weekly downloads
 

Readme

Source

Parcel Tracker Api

npm version download

Parcel tracker for Node.js

Installation

Using npm:

npm install parcel-tracker-api

Supported carrier

  • DHL
  • UPS
  • Colissimo
  • Chronopost
  • Royal Mail

Usage

  • Node.js
const Tracker = require('parcel-tracker-api');
  • ES6 Import
import {Tracker} from "parcel-tracker-api";

API

Tracker configuration

You can configure the tracker by using a TrackerConfig object.

Api keys

Many carriers needs a api key to use their API's. You need to put them in the config object !.

Example:

const config = {
    apiKeys: {
        laPoste: 'API_KEY', // For Colissimo and Chronopost API
        DHL: 'API_KEY',
        royalMail: 'CLIENT_ID;CLIENT_SECRET',
    }
};

const tracker = new Tracker(config);
Disable CORS

Many carrier api's do not support CORS, which can be a problem if we want to use the API on front-end applications.

To bypass this problem you can use the enableCrossOrigin. With this option requests may be longer than expected, it's because a proxy to put CORS headers is used.

Example:

const config = {
    enableCrossOrigin: true,
};

const tracker = new Tracker(config);

getTrackingInformations(trackingNumber, carrier[, config])

  • Return tracking informations for a given tracking number and carrier
    • @param {string} trackingNumber: Tracking number
    • @param {string} carrier: Carrier name
    • @param {TrackerConfig} config: Tracking configaration can be optionnal
    • @return {ParcelInformations} parcel's informations
const config = {
    apiKeys: {
        DHL: 'API_KEY'
    }
};

const tracker = new Tracker(config);

tracker.getTrackingInformations('TRACKING_NUMBER', 'DHL').then((response) => {
    // DO WORK
})

You can use a specific tracker configuration for a unique request, it will override the default one

const defaultConfig = {
    apiKeys: {
        DHL: 'API_KEY'
    }
};

const specificOne = {
    enableCrossOrigin: true
};

const tracker = new Tracker(config);

tracker.getTrackingInformations('TRACKING_NUMBER', 'DHL', specificOne).then((response) => {
    // DO WORK
})
ParcelInformations
{
    //  Carrier used to get data
    carrier: string;

    // True if the parcel is delivered
    isDelivered: boolean;

    // Tracking events
    events: ParcelEvent[];

    // Tracker number
    trackingNumber: string;

    // The last status provided by the carrier
    status?: string;

    // Date of the last event
    lastUpdate?: Date;

    // Date of the first event
    entryDate?: Date;

    // Raw response from the api
    raw: any;
}
ParcelEvent
{
    // Label of the event
    label: string;
    
    // Event's date
    date: Date;
    
    // Event's location if it provided by the carrier
    location?: string;
}

getCarrier(trackingNumber)

  • Return the possible carriers for a given tracking number
    • @param {string} trackingNumber: Tracking number
    • @return {Array} possible carriers founds
const tracker = new Tracker();

tracker.getCarrier('1Z9999999999999999') // => ['UPS']

getCarriersList()

  • Return all available carriers
    • @return {Array} carriers
const tracker = new Tracker();

tracker.getCarriersList() // => ['UPS', 'DHL', 'Colissimo', ...]

License

MIT

Keywords

FAQs

Last updated on 03 May 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc