gatsby-plugin-rudderstack 1.0.5 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
File without changes
package/README.md CHANGED
@@ -85,7 +85,7 @@ plugins: [
85
85
  // number (default to 1000); time to wait after the page loads
86
86
  // to load the RudderStack SDK
87
87
  // To be used when `delayLoad` is set to `true`
88
- delayLoadTime: 1000
88
+ delayLoadTime: 1000,
89
89
 
90
90
  // Whether to completely skip calling `analytics.load()`.
91
91
  // ADVANCED FEATURE: only use if you are calling `analytics.load()` manually
@@ -93,13 +93,19 @@ plugins: [
93
93
  // that will call it for you.
94
94
  // Useful for only loading the tracking script once a user has opted in to being tracked, for example.
95
95
  // *Another use case is if you want to add callbacks to the methods at load time.
96
- manualLoad: false
96
+ manualLoad: false,
97
97
 
98
98
  // string ('async' or 'defer'); whether to load the RudderStack SDK async or defer. Anything else
99
99
  // will load normally.
100
100
  // 'async' will load the SDK as <script async></script>
101
101
  // 'defer' will load the SDK as <script defer></script>
102
- loadType: 'default'
102
+ loadType: 'default',
103
+
104
+ // Options to the `load` API
105
+ // Note: The above `controlPlaneUrl` overrides the `configUrl` field in this object
106
+ loadOptions: {
107
+ ...
108
+ }
103
109
  }
104
110
  }
105
111
  ];
package/gatsby-ssr.js CHANGED
@@ -4,38 +4,64 @@ var _react = require("react");
4
4
 
5
5
  var _react2 = _interopRequireDefault(_react);
6
6
 
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
+ function _interopRequireDefault(obj) {
8
+ return obj && obj.__esModule ? obj : { default: obj };
9
+ }
8
10
 
9
11
  exports.onRenderBody = function (_ref, pluginOptions) {
10
12
  var setHeadComponents = _ref.setHeadComponents;
11
13
  var trackPage = pluginOptions.trackPage,
12
- prodKey = pluginOptions.prodKey,
13
- devKey = pluginOptions.devKey,
14
- _pluginOptions$dataPl = pluginOptions.dataPlaneUrl,
15
- dataPlaneUrl = _pluginOptions$dataPl === undefined ? "https://hosted.rudderlabs.com" : _pluginOptions$dataPl,
16
- controlPlaneUrl = pluginOptions.controlPlaneUrl,
17
- delayLoad = pluginOptions.delayLoad,
18
- delayLoadTime = pluginOptions.delayLoadTime,
19
- manualLoad = pluginOptions.manualLoad,
20
- loadType = pluginOptions.loadType,
21
- useNewSDK = pluginOptions.useNewSDK;
22
-
14
+ prodKey = pluginOptions.prodKey,
15
+ devKey = pluginOptions.devKey,
16
+ _pluginOptions$dataPl = pluginOptions.dataPlaneUrl,
17
+ dataPlaneUrl =
18
+ _pluginOptions$dataPl === undefined
19
+ ? "https://hosted.rudderlabs.com"
20
+ : _pluginOptions$dataPl,
21
+ controlPlaneUrl = pluginOptions.controlPlaneUrl,
22
+ delayLoad = pluginOptions.delayLoad,
23
+ delayLoadTime = pluginOptions.delayLoadTime,
24
+ manualLoad = pluginOptions.manualLoad,
25
+ loadType = pluginOptions.loadType,
26
+ useNewSDK = pluginOptions.useNewSDK,
27
+ useBetaSDK = pluginOptions.useBetaSDK,
28
+ loadOptions = pluginOptions.loadOptions,
29
+ sdkURL = pluginOptions.sdkURL;
23
30
 
24
31
  var sdkSrc = "https://cdn.rudderlabs.com/v1/rudder-analytics.min.js";
25
- if (useNewSDK) {
32
+ if (sdkURL) sdkSrc = sdkURL;
33
+ else if (useBetaSDK) {
34
+ sdkSrc = "https://cdn.rudderlabs.com/v1.1/beta/rudder-analytics.min.js";
35
+ } else if (useNewSDK) {
26
36
  sdkSrc = "https://cdn.rudderlabs.com/v1.1/rudder-analytics.min.js";
27
37
  }
28
38
 
29
- if (!prodKey || prodKey.length < 10) console.error("Your Rudderstack prodKey must be at least 10 char in length.");
39
+ if (!prodKey || prodKey.length < 10)
40
+ console.error(
41
+ "Your RudderStack prodKey must be at least 10 char in length."
42
+ );
30
43
 
31
- if (devKey && devKey.length < 10) console.error("If present, your Rudderstack devKey must be at least 10 char in length.");
44
+ if (devKey && devKey.length < 10)
45
+ console.error(
46
+ "If present, your RudderStack devKey must be at least 10 char in length."
47
+ );
32
48
 
33
49
  var writeKey = process.env.NODE_ENV === "production" ? prodKey : devKey;
34
50
 
35
- var loadConfig = controlPlaneUrl ? "'" + writeKey + "', '" + dataPlaneUrl + "', {configUrl: '" + controlPlaneUrl + "'}" : "'" + writeKey + "', '" + dataPlaneUrl + "'";
51
+ var loadConfig = "'" + writeKey + "', '" + dataPlaneUrl + "'";
36
52
 
53
+ if (loadOptions) {
54
+ // Override config URL if provided separately
55
+ loadOptions.configUrl = controlPlaneUrl || loadOptions.configUrl;
56
+ loadConfig += ", " + JSON.stringify(loadOptions);
57
+ }
37
58
 
38
- var snippet = "rudderanalytics=window.rudderanalytics=[];for(var methods=[\"load\",\"page\",\"track\",\"identify\",\"alias\",\"group\",\"ready\",\"reset\",\"getAnonymousId\",\"setAnonymousId\"],i=0;i<methods.length;i++){var method=methods[i];rudderanalytics[method]=function(a){return function(){rudderanalytics.push([a].concat(Array.prototype.slice.call(arguments)))}}(method)}\n " + (delayLoad || manualLoad ? "" : "rudderanalytics.load(" + loadConfig + ")") + ";\n";
59
+ var snippet =
60
+ 'rudderanalytics=window.rudderanalytics=[];for(var methods=["load","page","track","identify","alias","group","ready","reset","getAnonymousId","setAnonymousId"],i=0;i<methods.length;i++){var method=methods[i];rudderanalytics[method]=function(a){return function(){rudderanalytics.push([a].concat(Array.prototype.slice.call(arguments)))}}(method)}\n ' +
61
+ (delayLoad || manualLoad
62
+ ? ""
63
+ : "rudderanalytics.load(" + loadConfig + ")") +
64
+ ";\n";
39
65
 
40
66
  const delayedLoader = `
41
67
  window.rudderSnippetLoaded = false;
@@ -71,30 +97,39 @@ exports.onRenderBody = function (_ref, pluginOptions) {
71
97
  );
72
98
  `;
73
99
 
74
- var snippetToUse = "\n " + (delayLoad && !manualLoad ? delayedLoader : "") + "\n " + snippet + "\n ";
100
+ var snippetToUse =
101
+ "\n " +
102
+ (delayLoad && !manualLoad ? delayedLoader : "") +
103
+ "\n " +
104
+ snippet +
105
+ "\n ";
75
106
 
76
107
  if (writeKey) {
77
- var tags = [_react2.default.createElement("script", {
78
- key: "plugin-rudderstack",
79
- dangerouslySetInnerHTML: { __html: snippetToUse }
80
- })];
108
+ var tags = [
109
+ _react2.default.createElement("script", {
110
+ key: "plugin-rudderstack",
111
+ dangerouslySetInnerHTML: { __html: snippetToUse },
112
+ }),
113
+ ];
81
114
 
82
115
  var tag = void 0;
83
116
 
84
- if (loadType == 'async') {
85
- tag = _react2.default.createElement("script", { async: true,
117
+ if (loadType == "async") {
118
+ tag = _react2.default.createElement("script", {
119
+ async: true,
86
120
  key: "rudderstack-cdn",
87
- src: sdkSrc
121
+ src: sdkSrc,
88
122
  });
89
- } else if (loadType == 'defer') {
90
- tag = _react2.default.createElement("script", { defer: true,
123
+ } else if (loadType == "defer") {
124
+ tag = _react2.default.createElement("script", {
125
+ defer: true,
91
126
  key: "rudderstack-cdn",
92
- src: sdkSrc
127
+ src: sdkSrc,
93
128
  });
94
129
  } else {
95
130
  tag = _react2.default.createElement("script", {
96
131
  key: "rudderstack-cdn",
97
- src: sdkSrc
132
+ src: sdkSrc,
98
133
  });
99
134
  }
100
135
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gatsby-plugin-rudderstack",
3
- "version": "1.0.5",
4
- "description": "Event tracking with Rudderstack in your Gatsby frontend.",
3
+ "version": "1.1.2",
4
+ "description": "Event tracking with RudderStack in your Gatsby frontend.",
5
5
  "main": "gatsby-ssr.js",
6
6
  "scripts": {
7
7
  "build": "babel src --out-dir . --ignore __tests__",
@@ -18,7 +18,7 @@
18
18
  "gatsby",
19
19
  "gatsby-plugin"
20
20
  ],
21
- "author": "Rudderstack",
21
+ "author": "RudderStack",
22
22
  "license": "AGPL-3.0-only",
23
23
  "bugs": {
24
24
  "url": "https://github.com/rudderlabs/gatsby-plugin-rudderstack/issues"