Parcel tracker for Node.js
npm install parcel-tracker-apiParcel tracker for Node.js
Using npm:
`````
npm install parcel-tracker-api
* DHL
* UPS
* Colissimo
* Chronopost
* Royal Mail
* Node.js
``javascript``
const Tracker = require('parcel-tracker-api');
* ES6 Import
``javascript``
import {Tracker} from "parcel-tracker-api";
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:
``javascript
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:
``javascript
const config = {
enableCrossOrigin: true,
};
const tracker = new Tracker(config);
``
``javascript
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
``javascript
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
``javascript
{
// 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
``javascript``
{
// Label of the event
label: string;
// Event's date
date: Date;
// Event's location if it provided by the carrier
location?: string;
}
javascript
const tracker = new Tracker();tracker.getCarrier('1Z9999999999999999') // => ['UPS']
``$3
* Return all available carriers
* @return {Array } carriers
``javascript
const tracker = new Tracker();tracker.getCarriersList() // => ['UPS', 'DHL', 'Colissimo', ...]
```