Skip to content

Commit

Permalink
implementing review comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
sayan-rudder committed Oct 1, 2019
1 parent f3096fd commit f92fce1
Show file tree
Hide file tree
Showing 11 changed files with 145 additions and 140 deletions.
78 changes: 37 additions & 41 deletions rudder-client-javascript/RudderAnalytics.old.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { getJSONTrimmed } from "./utils/utils";
import { CONFIG_URL } from "./utils/constants";
import { RudderElementBuilder } from "./utils/RudderElementBuilder";
import { EventRepository } from "./utils/EventRepository";
import { RudderConfig } from "./utils/RudderConfig";
import { getJSONTrimmed } from "./analytics/utils/utils";
import { CONFIG_URL } from "./analytics/utils/constants";
import { RudderElementBuilder } from "./analytics/utils/RudderElementBuilder";
import { EventRepository } from "./analytics/utils/EventRepository";
import { RudderConfig } from "./analytics/utils/RudderConfig";

class test {
constructor() {
Expand All @@ -18,20 +18,19 @@ class test {
console.log("page called " + this.prop1);
//}
var rudderElement = new RudderElementBuilder().build();
console.log(typeof(arguments[0]))
if(arguments.length > 0){
console.log("arg length ",arguments.length)
let methodArguments = arguments//arguments[0]
if(methodArguments[0]){
console.log("arg0 ", methodArguments[0])
rudderElement['rl_message']['rl_name'] = methodArguments[0]//JSON.parse(arguments[1]);
}
console.log("arg1 ",methodArguments[1])
if(methodArguments[1]){
console.log(JSON.parse(JSON.stringify(methodArguments[1])))
rudderElement['rl_message']['rl_properties'] = methodArguments[1]//JSON.parse(arguments[1]);
}

console.log(typeof arguments[0]);
if (arguments.length > 0) {
console.log("arg length ", arguments.length);
let methodArguments = arguments; //arguments[0]
if (methodArguments[0]) {
console.log("arg0 ", methodArguments[0]);
rudderElement["rl_message"]["rl_name"] = methodArguments[0]; //JSON.parse(arguments[1]);
}
console.log("arg1 ", methodArguments[1]);
if (methodArguments[1]) {
console.log(JSON.parse(JSON.stringify(methodArguments[1])));
rudderElement["rl_message"]["rl_properties"] = methodArguments[1]; //JSON.parse(arguments[1]);
}
}
console.log(JSON.stringify(rudderElement));
this.eventRepository.flush(rudderElement);
Expand All @@ -42,20 +41,19 @@ class test {
console.log("track called " + this.prop2);
//}
var rudderElement = new RudderElementBuilder().build();
if(arguments.length > 0){
console.log("arg length ",arguments.length)
let methodArguments = arguments//arguments[0]
if(methodArguments[0]){
console.log("arg0 ", methodArguments[0])
//rudderElement['rl_message']['rl_name'] = methodArguments[0]//JSON.parse(arguments[1]);
rudderElement.setEventName(methodArguments[0])
}
console.log("arg1 ",methodArguments[1])
if(methodArguments[1]){
console.log(JSON.parse(JSON.stringify(methodArguments[1])))
rudderElement.setProperty(methodArguments[1])
}

if (arguments.length > 0) {
console.log("arg length ", arguments.length);
let methodArguments = arguments; //arguments[0]
if (methodArguments[0]) {
console.log("arg0 ", methodArguments[0]);
//rudderElement['rl_message']['rl_name'] = methodArguments[0]//JSON.parse(arguments[1]);
rudderElement.setEventName(methodArguments[0]);
}
console.log("arg1 ", methodArguments[1]);
if (methodArguments[1]) {
console.log(JSON.parse(JSON.stringify(methodArguments[1])));
rudderElement.setProperty(methodArguments[1]);
}
}
console.log(JSON.stringify(rudderElement));
}
Expand Down Expand Up @@ -106,22 +104,20 @@ if (window) {
console.log(methodCalls);
methodCalls.forEach(element => {
let argsLength = element.length;
console.log("====", argsLength, element)
let methodName = element[0]
element.shift()
if(argsLength > 0){
console.log("slice====", ...element)
console.log("====", argsLength, element);
let methodName = element[0];
element.shift();
if (argsLength > 0) {
console.log("slice====", ...element);
instance[methodName](...element);
} else {
instance[methodName]();
}
});
}



let page = instance.page.bind(instance);
let track = instance.track.bind(instance);
let load = instance.load.bind(instance);

export { page, track, load };
export { page, track, load };
62 changes: 36 additions & 26 deletions rudder-client-javascript/RudderClient.old.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,41 @@

"use strict";

var MessageType = require("./utils/constants.js").MessageType;
var ECommerceParamNames = require("./utils/constants.js").ECommerceParamNames;
var ECommerceEvents = require("./utils/constants.js").ECommerceEvents;
var RudderIntegrationPlatform = require("./utils/constants.js")
var MessageType = require("./analytics/utils/constants.js.js").MessageType;
var ECommerceParamNames = require("./analytics/utils/constants.js.js")
.ECommerceParamNames;
var ECommerceEvents = require("./analytics/utils/constants.js.js")
.ECommerceEvents;
var RudderIntegrationPlatform = require("./analytics/utils/constants.js.js")
.RudderIntegrationPlatform;
var BASE_URL = require("./utils/constants.js").BASE_URL;
var CONFIG_URL = require("./utils/constants.js").CONFIG_URL;
var FLUSH_QUEUE_SIZE = require("./utils/constants.js").FLUSH_QUEUE_SIZE;

var replacer = require("./utils/utils.js").replacer;
var generateUUID = require("./utils/utils.js").generateUUID;
var getCurrentTimeFormatted = require("./utils/utils.js")
var BASE_URL = require("./analytics/utils/constants.js.js").BASE_URL;
var CONFIG_URL = require("./analytics/utils/constants.js.js").CONFIG_URL;
var FLUSH_QUEUE_SIZE = require("./analytics/utils/constants.js.js")
.FLUSH_QUEUE_SIZE;

var replacer = require("./analytics/utils/utils.js.js").replacer;
var generateUUID = require("./analytics/utils/utils.js.js").generateUUID;
var getCurrentTimeFormatted = require("./analytics/utils/utils.js.js")
.getCurrentTimeFormatted;
var getJSON = require("./utils/utils.js").getJSON;
var RudderConfig = require("./utils/RudderConfig.js").RudderConfig;
var AnalyticsManager = require("./utils/AnalyticsManager.js");
var EventRepository = require("./utils/EventRepository.js").EventRepository;
var RudderPayload = require("./utils/RudderPayload.js");
var RudderElement = require("./utils/RudderElement.js");
var RudderElementBuilder = require("./utils/RudderElementBuilder.js").RudderElementBuilder;
var RudderMessage = require("./utils/RudderMessage.js");
var RudderContext = require("./utils/RudderContext.js");
var RudderApp = require("./utils/RudderApp.js");
var RudderTraits = require("./utils/RudderTraits.js").RudderTraits;
var TraitsAddress = require("./utils/RudderTraits.js").TraitsAddress;
var TraitsCompany = require("./utils/RudderTraits.js").TraitsCompany;
var RudderLibraryInfo = require("./utils/RudderInfo.js").RudderLibraryInfo;
var getJSON = require("./analytics/utils/utils.js.js").getJSON;
var RudderConfig = require("./analytics/utils/RudderConfig.js.js").RudderConfig;
var AnalyticsManager = require("./analytics/utils/AnalyticsManager.js.js");
var EventRepository = require("./analytics/utils/EventRepository.js.js")
.EventRepository;
var RudderPayload = require("./analytics/utils/RudderPayload.js");
var RudderElement = require("./analytics/utils/RudderElement.js.js");
var RudderElementBuilder = require("./analytics/utils/RudderElementBuilder.js.js")
.RudderElementBuilder;
var RudderMessage = require("./analytics/utils/RudderMessage.js.js");
var RudderContext = require("./analytics/utils/RudderContext.js.js");
var RudderApp = require("./analytics/utils/RudderApp.js.js");
var RudderTraits = require("./analytics/utils/RudderTraits.js.js").RudderTraits;
var TraitsAddress = require("./analytics/utils/RudderTraits.js.js")
.TraitsAddress;
var TraitsCompany = require("./analytics/utils/RudderTraits.js.js")
.TraitsCompany;
var RudderLibraryInfo = require("./analytics/utils/RudderInfo.js.js")
.RudderLibraryInfo;

//Singleton implementation of the core SDK client class
var RudderClient = (function() {
Expand Down Expand Up @@ -123,7 +131,9 @@ var RudderClient = (function() {
//Check that valid input object instances have been provided for creating
//RudderClient instance
console.log(RudderConfig);
var rudderConfig = new RudderConfig().getDefaultConfig().setFlushQueueSize(1)
var rudderConfig = new RudderConfig()
.getDefaultConfig()
.setFlushQueueSize(1);

if (!writeKey || 0 === writeKey.length) {
throw new Error("writeKey cannot be null or empty");
Expand Down
122 changes: 58 additions & 64 deletions rudder-client-javascript/analytics/analytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,43 +9,9 @@ import PromotionViewedEvent from "./utils/PromotionViewedEvent";
import ECommercePromotion from "./utils/ECommercePromotion";

//https://unpkg.com/test-rudder-sdk@1.0.5/dist/browser.js
function init(intgArray, configArray) {
console.log("supported intgs ", integrations);
let i = 0;
this.clientIntegrationObjects = [];
if (!intgArray || intgArray.length == 0) {
this.toBeProcessedByIntegrationArray = [];
return;
}
intgArray.forEach(intg => {
//console.log("--name--", intg);
let intgClass = integrations[intg];
//console.log("--class-- ", intgClass);
if (intg === "HS") {
let hubId = configArray[i].hubId;
//console.log("==hubId== " + hubId);
hubId = "6405167";
let intgInstance = new intgClass(hubId);
intgInstance.init();

this.clientIntegrationObjects.push(intgInstance);
}
});

for (let i = 0; i < this.clientIntegrationObjects.length; i++) {
//send the queued events to the fetched integration
this.toBeProcessedByIntegrationArray.forEach(event => {
let methodName = event[0];
event.shift();
/* console.log(
"replay on integrations " + "method " + methodName + " args " + event
); */
//uncomment to send data to destination
this.clientIntegrationObjects[i][methodName](...event);
});
}

this.toBeProcessedByIntegrationArray = [];
if (process.prod) {
console.log = () => {};
}

function flush(rudderElement) {
Expand Down Expand Up @@ -103,14 +69,50 @@ class Analytics {
this.configArray.push(destination.config);
}
}, this);
init.call(this, this.clientIntegrations, this.configArray);
//init.call(this, this.clientIntegrations, this.configArray);
this.init(this.clientIntegrations, this.configArray);
}

page(category, name, properties, options, callback) {
//console.log("type=== " + typeof arguments);
init(intgArray, configArray) {
console.log("supported intgs ", integrations);
let i = 0;
this.clientIntegrationObjects = [];
if (!intgArray || intgArray.length == 0) {
this.toBeProcessedByIntegrationArray = [];
return;
}
intgArray.forEach(intg => {
//console.log("--name--", intg);
let intgClass = integrations[intg];
//console.log("--class-- ", intgClass);
if (intg === "HS") {
let hubId = configArray[i].hubId;
//console.log("==hubId== " + hubId);
hubId = "6405167";
let intgInstance = new intgClass(hubId);
intgInstance.init();

this.clientIntegrationObjects.push(intgInstance);
}
});

for (let i = 0; i < this.clientIntegrationObjects.length; i++) {
//send the queued events to the fetched integration
this.toBeProcessedByIntegrationArray.forEach(event => {
let methodName = event[0];
event.shift();
/* console.log(
"replay on integrations " + "method " + methodName + " args " + event
); */
//uncomment to send data to destination
this.clientIntegrationObjects[i][methodName](...event);
});
}

this.toBeProcessedByIntegrationArray = [];
}

let args = Array.from(arguments);
console.log("args ", args);
page(category, name, properties, options, callback) {
if (typeof options == "function") (callback = options), (options = null);
if (typeof properties == "function")
(callback = properties), (options = properties = null);
Expand Down Expand Up @@ -158,27 +160,15 @@ class Analytics {
//try to first send to all integrations, if list populated from BE
if (this.clientIntegrationObjects) {
this.clientIntegrationObjects.forEach(obj => {
//obj.page(...arguments);
//console.log("called in normal flow");
//obj.page({ rl_message: { rl_properties: { path: "/abc-123" } } }); //test
obj.page(rudderElement);
});
}

if (
!this.clientIntegrationObjects
/*this.clientIntegrationObjects.length === 0 &&
args[args.length - 1] != "wait" */
) {
//console.log("pushing in replay queue");
//args.unshift("page");
//this.toBeProcessedArray.push(args); //new event processing after analytics initialized but integrations not fetched from BE
if (!this.clientIntegrationObjects) {
//new event processing after analytics initialized but integrations not fetched from BE
this.toBeProcessedByIntegrationArray.push(["page", rudderElement]);
}

// self analytics process
//console.log("args ", args.slice(0, args.length - 1));

flush.call(this, rudderElement);

console.log("page called " + this.prop1);
Expand Down Expand Up @@ -250,16 +240,10 @@ class Analytics {
let rudderTraits = new RudderTraits();
console.log(traits);
if (traits) {
for (let k in traits) {
if (!!Object.getOwnPropertyDescriptor(traits, k) && traits[k]) {
rudderTraits[k] = traits[k];
}
}
this.userTraits = traits;
this.storage.setUserTraits(this.userTraits);
}

this.userTraits = traits;
this.storage.setUserTraits(this.userTraits);

rudderElement["rl_message"]["rl_context"]["rl_traits"] = this.userTraits;
rudderElement["rl_message"]["rl_anonymous_id"] = rudderElement[
"rl_message"
Expand Down Expand Up @@ -346,4 +330,14 @@ let track = instance.track.bind(instance);
let reset = instance.reset.bind(instance);
let load = instance.load.bind(instance);

export { page, track, load, identify, reset, RudderElementBuilder, PromotionViewedEvent, ECommercePromotion, ECommerceEvents };
export {
page,
track,
load,
identify,
reset,
RudderElementBuilder,
PromotionViewedEvent,
ECommercePromotion,
ECommerceEvents
};
2 changes: 1 addition & 1 deletion rudder-client-javascript/analytics/dist/browser.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion rudder-client-javascript/analytics/dist/node.js

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@ class HubSpot {
/* _hsq.push(["identify",{
email: "testtrackpage@email.com"
}]); */
if(rudderElement.rl_message.rl_properties && rudderElement.rl_message.rl_properties.path){
if (
rudderElement.rl_message.rl_properties &&
rudderElement.rl_message.rl_properties.path
) {
_hsq.push(["setPath", rudderElement.rl_message.rl_properties.path]);
}
_hsq.push(["trackPageView"]);
Expand Down
4 changes: 2 additions & 2 deletions rudder-client-javascript/analytics/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"buildDevBrowser": "NODE_ENV=false uglify=false rollup -c",
"buildProdBrowser": "NODE_ENV=false uglify=true rollup -c",
"buildProdBrowser": "NODE_ENV=false ENV=prod uglify=true rollup -c",
"buildDevNode": "NODE_ENV=true uglify=false rollup -c",
"buildProdNode": "NODE_ENV=true uglify=true rollup -c"
"buildProdNode": "NODE_ENV=true ENV=prod uglify=true rollup -c"
},
"author": "",
"license": "ISC",
Expand Down
3 changes: 2 additions & 1 deletion rudder-client-javascript/analytics/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ export default {
],
plugins: [
replace({
"process.browser": process.env.NODE_ENV == "true" ? false : true
"process.browser": process.env.NODE_ENV == "true" ? false : true,
"process.prod": process.env.ENV == "prod" ? true : false
}),
resolve(),
commonjs(),
Expand Down
2 changes: 1 addition & 1 deletion rudder-client-javascript/analytics/utils/RudderContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class RudderContext {
//dimensions can be set
//User agent and locale can be retrieved only for browser
//For server-side integration, same needs to be set by calling program
if (typeof window === "undefined") {
if (process.browser) {
//server-side integration
screen.rl_width = 0;
screen.rl_height = 0;
Expand Down

0 comments on commit f92fce1

Please sign in to comment.