add node-gcm type definition file

This commit is contained in:
Horiuchi_H
2015-05-14 18:00:13 +09:00
parent 846a250e0a
commit adf53d0cc0
2 changed files with 134 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
/// <reference path="node-gcm.d.ts" />
import gcm = require('node-gcm');
// Create a message
// ... with default values
var message = new gcm.Message();
// ... or some given values
var message = new gcm.Message({
collapseKey: 'demo',
delayWhileIdle: true,
timeToLive: 3,
data: {
key1: 'message1',
key2: 'message2'
}
});
// Change the message data
// ... as key-value
message.addData('key1','message1');
message.addData('key2','message2');
// ... or as a data object (overwrites previous data object)
message.addData({
key1: 'message1',
key2: 'message2'
});
// Change the message variables
message.collapseKey = 'demo';
message.delayWhileIdle = true;
message.timeToLive = 3;
message.dryRun = true;
// Set up the sender with you API key
var sender = new gcm.Sender('insert Google Server API Key here');
// Add the registration IDs of the devices you want to send to
var registrationIds: string[] = [];
registrationIds.push('regId1');
registrationIds.push('regId2');
// Send the message
// ... trying only once
sender.sendNoRetry(message, registrationIds, (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result);
}
});
// ... or retrying
sender.send(message, registrationIds, (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result);
}
});
// ... or retrying a specific number of times (10)
sender.send(message, registrationIds, 10, (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result);
}
});
+62
View File
@@ -0,0 +1,62 @@
// Type definitions for node-gcm 0.9.15
// Project: https://www.npmjs.org/package/node-gcm
// Definitions by: Hiroki Horiuchi <https://github.com/horiuchi>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module "node-gcm" {
export interface IMessageOptions {
collapseKey?: string;
delayWhileIdle?: boolean;
timeToLive?: number;
dryRun?: boolean;
}
export class Message {
constructor(options?: IMessageOptions);
collapseKey: string;
delayWhileIdle: boolean;
timeToLive: number;
dryRun: boolean;
addData(key: string, value: string): void;
addData(data: any): void;
}
export interface ISenderOptions {
proxy?: any;
maxSockets?: number;
timeout?: number;
}
export interface ISenderSendOptions {
retries?: number;
backoff?: number;
}
export class Sender {
constructor(key: string, options?: ISenderOptions);
key: string;
options: ISenderOptions;
send(message: Message, registrationIds: string|string[], callback: (err: any, resJson: IResponseBody) => void): void;
send(message: Message, registrationIds: string|string[], retries: number, callback: (err: any, resJson: IResponseBody) => void): void;
send(message: Message, registrationIds: string|string[], options: ISenderSendOptions, callback: (err: any, resJson: IResponseBody) => void): void;
sendNoRetry(message: Message, registrationIds: string|string[], callback: (err: any, resJson: IResponseBody) => void): void;
}
export interface IResponseBody {
success: number;
failure: number;
canonical_ids: number;
multicast_id?: number;
results?: {
message_id?: string;
registration_id?: string;
error?: string;
}[];
}
}