-
Notifications
You must be signed in to change notification settings - Fork 807
/
Copy pathindex.js
63 lines (54 loc) · 2.45 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const path = require("path");
module.exports = function (context, options) {
if (!options.apiKey) {
throw new Error(
`You need to specify an 'apiKey' to use posthog-docusaurus`
);
}
const {
apiKey,
appUrl = "https://us.i.posthog.com",
enableInDevelopment = false,
...rest
} = options;
if (!apiKey) {
throw new Error(
"You specified the `posthog` object in `themeConfig` but the `apiKey` field was missing. " +
"Please ensure this is not a mistake."
);
}
const posthogEnabled =
process.env.NODE_ENV === "production" || enableInDevelopment;
return {
name: "posthog-docusaurus",
getClientModules() {
return posthogEnabled ? [path.resolve(__dirname, "./posthog")] : [];
},
injectHtmlTags() {
if (!posthogEnabled) {
return {};
}
const posthogInitOptions = { api_host: appUrl, ...rest };
return {
headTags: [
{
tagName: "link",
attributes: {
rel: "preconnect",
href: appUrl,
},
},
{
tagName: "script",
innerHTML: `
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
posthog.init(${JSON.stringify(apiKey)}, ${JSON.stringify(
posthogInitOptions
)})
`,
},
],
};
},
};
};