Merge pull request #4442 from lbguilherme/patch-3

Add definitions for the Piwik NodeJS tracker
This commit is contained in:
Masahiro Wakame
2015-05-26 10:46:14 +09:00
2 changed files with 123 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
/// <reference path="../node/node.d.ts" />
/// <reference path="piwik-tracker.d.ts" />
// Example code taken from https://www.npmjs.com/package/piwik-tracker
var PiwikTracker = require('piwik-tracker');
// Initialize with your site ID and Piwik URL
var piwik = new PiwikTracker(1, 'http://mywebsite.com/piwik.php');
// Optional: Respond to tracking errors
piwik.on('error', function(err : Error) {
console.log('error tracking request: ', err)
})
// Track a request URL:
// Either as a simple string …
piwik.track('http://example.com/track/this/url');
// … or provide further options:
piwik.track({
url: 'http://example.com/track/this/url',
action_name: 'This will be shown in your dashboard',
ua: 'Node.js v0.10.24',
cvar: JSON.stringify({
'1': ['custom variable name', 'custom variable value']
})
});
+95
View File
@@ -0,0 +1,95 @@
// Type definitions for PiwikTracker v0.1.1
// Project: https://www.npmjs.com/package/piwik-tracker
// Definitions by: Guilherme Bernal <https://github.com/lbguilherme>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../node/node.d.ts" />
declare module "piwik-tracker" {
import events = require('events');
export = PiwikTracker;
// refer to http://developer.piwik.org/api-reference/tracking-api
interface PiwikTrackOptions {
// Required parameters
url : string;
// Recommended parameters
action_name? : string;
_id? : string;
rand? : string;
apiv? : number;
// Optional User info
urlref? : string;
_cvar? : string;
_idvc? : string;
_viewts? : string;
_idts? : string;
_rcn? : string;
_rck? : string;
res? : string;
h? : number;
m? : number;
s? : number;
ua? : string;
lang? : string;
uid? : string;
cid? : string;
new_visit? : number;
// Optional Action info
cvar? : string;
link? : string;
download? : string;
search? : string;
search_cat? : string;
search_count? : number;
idgoal? : number;
revenue? : number;
gt_ms? : number;
cs? : string;
// Optional Event Tracking info
e_c? : string;
e_a? : string;
e_n? : string;
e_v? : string;
// Optional Content Tracking info
c_n? : string;
c_p? : string;
c_t? : string;
c_i? : string;
// Optional Ecommerce info
ec_id? : string;
ec_items? : string;
ec_st? : number;
ec_tx? : number;
ec_sh? : number;
ec_dt? : number;
_ects? : number;
// Other parameters (require authentication via token_auth)
token_auth? : string;
cip? : string;
cdt? : string;
country? : string;
region? : string;
city? : string;
lat? : string;
long? : string;
// Other parameters
send_image? : number;
}
class PiwikTracker extends events.EventEmitter {
constructor(siteId : number, trackerUrl : string);
track(options : PiwikTrackOptions) : void;
}
}