New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

push-notification

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

push-notification

push notification for apple push notification (APN) and google cloud messaging (GCM)

latest
Source
npmnpm
Version
0.2.5
Version published
Maintainers
1
Created
Source

push-notification NPM version Build Status Dependency Status Coverage percentage

Installation

$ npm install --save push-notification

Usage

const PushNotification = require('push-notification');
const DeviceType = PushNotification.DeviceType;

const pn = PushNotification({
    apn: {
        cert: path.resolve('./cert/cert.pem'),
        key: path.resolve('./cert/key.pem'),
        production: false,
    },
    gcm: {
        apiKey: 'gcm-api-key'
    }
});

const data = {
    title: 'Title',
    message: 'Message',
    badge: '',
    sound: '',
    payload: {
        param1: 'additional data',
        param2: 'another data'
    }
};

pn.pushToAPN('ios-device-token', data); // push to single ios device
pn.pushToAPN(['token1', 'token2', 'token3'], data); // push to multiple ios devices

pn.push('device-token', data, DeviceType.IOS); // push to single ios device
pn.push(['token1', 'token2', 'token3'], data, DeviceType.IOS); // push to multiple ios devices

pn.pushToGCM('android-device-token', data); // push to single android device
pn.pushToGCM(['token1', 'token2', 'token3'], data); // push to multiple android devices

pn.push('device-token', data, DeviceType.ANDROID); // push to single android device
pn.push(['token1', 'token2', 'token3'], data, DeviceType.ANDROID); // push to multiple android devices

const devices = [
    { token: 'token1', type: DeviceType.IOS },
    { token: 'token2', type: DeviceType.ANDROID }
];

// send notification to all devices
Promise.all(devices.map(device => pn.push(device.token, data, device.type)));

// or this might be more performant 
const iosTokens = devices.filter(d => d.type === DeviceType.IOS).map(d => d.token);
const andTokens = devices.filter(d => d.type === DeviceType.ANDROID).map(d => d.token);
Promise.all([
    iosTokens.length ? pn.push(iosTokens, data, DeviceType.IOS) : Promise.resolve(),
    andTokens.length ? pn.push(andTokens, data, DeviceType.ANDROID) : Promise.resolve()
]);

push, pushToAPN, pushToGCM return Promise instance

pn.push(...).then(res => console.log(res)).catch(err => console.log(err));

Reference

PushNotification(options)

Arguments

options

  • apn
    • cert: path to cert.pem
    • key: path to key.pem
  • gcm
    • apiKey

pushToAPN(tokens, data)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

Returns

Promise resolves push result

pushToGCM(tokens, data)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

Returns

Promise resolves push result

push(tokens, data, type)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

type

  • (DeviceType) DeviceType.IOS or DeviceType.ANDROID

Returns

Promise resolves push result

Configuring APN and GCM

APN

GCM

License

MIT © Dongwon Lim

Keywords

push-notification

FAQs

Package last updated on 01 Sep 2017

Did you know?

Socket

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