From 9cf5c9bd633faf5e7f5d851e74f1a8e5659eca70 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Thu, 22 Feb 2018 14:37:30 -0500 Subject: [PATCH 1/2] Adds types for google.analytics 'require' and 'provide' calls. --- types/google.analytics/google.analytics-tests.ts | 6 ++++++ types/google.analytics/index.d.ts | 2 ++ 2 files changed, 8 insertions(+) diff --git a/types/google.analytics/google.analytics-tests.ts b/types/google.analytics/google.analytics-tests.ts index 5256f636c7..a130e2c600 100644 --- a/types/google.analytics/google.analytics-tests.ts +++ b/types/google.analytics/google.analytics-tests.ts @@ -33,6 +33,12 @@ describe('UniversalAnalytics', () => { ga('send', 'timing', {timingCategory: 'category', timingVar: 'lookup', timingValue: 123, timingLabel: 'label'}); ga('trackerName.send', 'event', 'load'); + ga('require', 'somePlugin'); + ga('require', 'somePlugin', { some: 'options' }); + ga('provide', 'somePlugin', () => {}); + ga('provide', 'somePlugin', tracker => {}); + ga('provide', 'somePlugin', (tracker, options) => {}); + ga.create('UA-65432-1', 'auto'); ga.create('UA-65432-1', {some: 'config'}); ga.create('UA-65432-1', 'auto', {some: 'config'}); diff --git a/types/google.analytics/index.d.ts b/types/google.analytics/index.d.ts index b7d4a8a6f4..6d61962520 100644 --- a/types/google.analytics/index.d.ts +++ b/types/google.analytics/index.d.ts @@ -601,6 +601,8 @@ declare namespace UniversalAnalytics { }): void; (command: 'send', fieldsObject: FieldsObject): void; (command: string, hitType: HitType, ...fields: any[]): void; + (command: 'require', pluginName: string, pluginOptions?: Object): void; + (command: 'provide', pluginName: string, pluginConstructor: (tracker: Tracker, pluginOptions?: Object) => void): void; (command: 'create', trackingId: string, cookieDomain?: string, name?: string, fieldsObject?: FieldsObject): void; (command: 'remove'): void; From 05143e9d80add9d9058b3d1bae7b69480e5d24df Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Thu, 22 Feb 2018 14:43:33 -0500 Subject: [PATCH 2/2] Corrects the ga('require'e', ...) plugin options type, since plugin options can actually have any type. --- types/google.analytics/google.analytics-tests.ts | 1 + types/google.analytics/index.d.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/types/google.analytics/google.analytics-tests.ts b/types/google.analytics/google.analytics-tests.ts index a130e2c600..63ca4e5ca4 100644 --- a/types/google.analytics/google.analytics-tests.ts +++ b/types/google.analytics/google.analytics-tests.ts @@ -34,6 +34,7 @@ describe('UniversalAnalytics', () => { ga('trackerName.send', 'event', 'load'); ga('require', 'somePlugin'); + ga('require', 'somePlugin', 'option'); ga('require', 'somePlugin', { some: 'options' }); ga('provide', 'somePlugin', () => {}); ga('provide', 'somePlugin', tracker => {}); diff --git a/types/google.analytics/index.d.ts b/types/google.analytics/index.d.ts index 6d61962520..b71fdef286 100644 --- a/types/google.analytics/index.d.ts +++ b/types/google.analytics/index.d.ts @@ -601,7 +601,7 @@ declare namespace UniversalAnalytics { }): void; (command: 'send', fieldsObject: FieldsObject): void; (command: string, hitType: HitType, ...fields: any[]): void; - (command: 'require', pluginName: string, pluginOptions?: Object): void; + (command: 'require', pluginName: string, pluginOptions?: any): void; (command: 'provide', pluginName: string, pluginConstructor: (tracker: Tracker, pluginOptions?: Object) => void): void; (command: 'create', trackingId: string, cookieDomain?: string, name?: string, fieldsObject?: FieldsObject): void;