analytics/tracker/installation_support/detector.js

46 lines
1.2 KiB
JavaScript

import { waitForPlausibleFunction } from './wait-for-plausible-function'
import { checkWordPress } from './check-wordpress'
import { checkGTM } from './check-gtm'
import { checkNPM } from './check-npm'
window.scanPageBeforePlausibleInstallation = async function ({
detectV1,
debug,
timeoutMs
}) {
function log(message) {
if (debug) console.log('[Plausible Verification]', message)
}
let v1Detected = null
if (detectV1) {
log('Waiting for Plausible function...')
const plausibleFound = await waitForPlausibleFunction(timeoutMs)
log(`plausibleFound: ${plausibleFound}`)
v1Detected = plausibleFound && typeof window.plausible.s === 'undefined'
log(`v1Detected: ${v1Detected}`)
}
const { wordpressPlugin, wordpressLikely } = checkWordPress(document)
log(`wordpressPlugin: ${wordpressPlugin}`)
log(`wordpressLikely: ${wordpressLikely}`)
const gtmLikely = checkGTM(document)
log(`gtmLikely: ${gtmLikely}`)
const npm = checkNPM(document)
log(`npm: ${npm}`)
return {
data: {
completed: true,
v1Detected: v1Detected,
wordpressPlugin: wordpressPlugin,
wordpressLikely: wordpressLikely,
gtmLikely: gtmLikely,
npm: npm
}
}
}