@naturalcycles/js-lib 15.6.0 → 15.6.1
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.
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
declare global {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
2
|
+
var dataLayer: any[];
|
|
3
|
+
var gtag: (...args: any[]) => void;
|
|
4
|
+
var hj: (...args: any[]) => void;
|
|
6
5
|
}
|
|
7
6
|
/**
|
|
8
|
-
* Pass enabled = false to only init
|
|
7
|
+
* Pass enabled = false to only init globalThis.gtag, but not load actual gtag script (e.g in dev mode).
|
|
9
8
|
*/
|
|
10
9
|
export declare function loadGTag(gtagId: string, enabled?: boolean): Promise<void>;
|
|
11
10
|
export declare function loadGTM(gtmId: string, enabled?: boolean): Promise<void>;
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { isServerSide } from '../index.js';
|
|
2
2
|
import { loadScript } from './script.util.js';
|
|
3
|
-
/* eslint-disable unicorn/prefer-global-this */
|
|
4
3
|
/**
|
|
5
|
-
* Pass enabled = false to only init
|
|
4
|
+
* Pass enabled = false to only init globalThis.gtag, but not load actual gtag script (e.g in dev mode).
|
|
6
5
|
*/
|
|
7
6
|
export async function loadGTag(gtagId, enabled = true) {
|
|
8
7
|
if (isServerSide())
|
|
9
8
|
return;
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
globalThis.dataLayer ||= [];
|
|
10
|
+
globalThis.gtag ||= function gtag() {
|
|
12
11
|
// biome-ignore lint/complexity/useArrowFunction: ok
|
|
13
12
|
// biome-ignore lint/complexity/noArguments: ok
|
|
14
|
-
|
|
13
|
+
globalThis.dataLayer.push(arguments);
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
globalThis.gtag('js', new Date());
|
|
16
|
+
globalThis.gtag('config', gtagId);
|
|
18
17
|
if (!enabled)
|
|
19
18
|
return;
|
|
20
19
|
await loadScript(`https://www.googletagmanager.com/gtag/js?id=${gtagId}`);
|
|
@@ -22,8 +21,8 @@ export async function loadGTag(gtagId, enabled = true) {
|
|
|
22
21
|
export async function loadGTM(gtmId, enabled = true) {
|
|
23
22
|
if (isServerSide())
|
|
24
23
|
return;
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
globalThis.dataLayer ||= [];
|
|
25
|
+
globalThis.dataLayer.push({
|
|
27
26
|
'gtm.start': Date.now(),
|
|
28
27
|
event: 'gtm.js',
|
|
29
28
|
});
|
|
@@ -49,6 +48,6 @@ export function loadHotjar(hjid) {
|
|
|
49
48
|
r.async = 1;
|
|
50
49
|
r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
|
|
51
50
|
a.append(r);
|
|
52
|
-
})(
|
|
51
|
+
})(globalThis, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');
|
|
53
52
|
/* eslint-enable */
|
|
54
53
|
}
|
package/package.json
CHANGED
|
@@ -2,28 +2,25 @@ import { isServerSide } from '../index.js'
|
|
|
2
2
|
import { loadScript } from './script.util.js'
|
|
3
3
|
|
|
4
4
|
declare global {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
5
|
+
var dataLayer: any[]
|
|
6
|
+
var gtag: (...args: any[]) => void
|
|
7
|
+
var hj: (...args: any[]) => void
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
/* eslint-disable unicorn/prefer-global-this */
|
|
12
|
-
|
|
13
10
|
/**
|
|
14
|
-
* Pass enabled = false to only init
|
|
11
|
+
* Pass enabled = false to only init globalThis.gtag, but not load actual gtag script (e.g in dev mode).
|
|
15
12
|
*/
|
|
16
13
|
export async function loadGTag(gtagId: string, enabled = true): Promise<void> {
|
|
17
14
|
if (isServerSide()) return
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
globalThis.dataLayer ||= []
|
|
17
|
+
globalThis.gtag ||= function gtag() {
|
|
21
18
|
// biome-ignore lint/complexity/useArrowFunction: ok
|
|
22
19
|
// biome-ignore lint/complexity/noArguments: ok
|
|
23
|
-
|
|
20
|
+
globalThis.dataLayer.push(arguments)
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
globalThis.gtag('js', new Date())
|
|
23
|
+
globalThis.gtag('config', gtagId)
|
|
27
24
|
|
|
28
25
|
if (!enabled) return
|
|
29
26
|
|
|
@@ -33,8 +30,8 @@ export async function loadGTag(gtagId: string, enabled = true): Promise<void> {
|
|
|
33
30
|
export async function loadGTM(gtmId: string, enabled = true): Promise<void> {
|
|
34
31
|
if (isServerSide()) return
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
globalThis.dataLayer ||= []
|
|
34
|
+
globalThis.dataLayer.push({
|
|
38
35
|
'gtm.start': Date.now(),
|
|
39
36
|
event: 'gtm.js',
|
|
40
37
|
})
|
|
@@ -63,6 +60,6 @@ export function loadHotjar(hjid: number): void {
|
|
|
63
60
|
r.async = 1
|
|
64
61
|
r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv
|
|
65
62
|
a.append(r)
|
|
66
|
-
})(
|
|
63
|
+
})(globalThis, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=')
|
|
67
64
|
/* eslint-enable */
|
|
68
65
|
}
|