mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-03-12 20:34:46 +00:00
48 lines
1.9 KiB
JavaScript
48 lines
1.9 KiB
JavaScript
const googleAnalytics = require("./google-analytics");
|
|
const umamiAnalytics = require("./umami-analytics");
|
|
const plausibleAnalytics = require("./plausible-analytics");
|
|
const matomoAnalytics = require("./matomo-analytics");
|
|
|
|
/**
|
|
* Returns a string that represents the javascript that is required to insert the selected Analytics' script
|
|
* into a webpage.
|
|
* @param {typeof import("../model/status_page").StatusPage} statusPage Status page populate HTML with
|
|
* @returns {string} HTML script tags to inject into page
|
|
*/
|
|
function getAnalyticsScript(statusPage) {
|
|
switch (statusPage.analyticsType) {
|
|
case "google":
|
|
return googleAnalytics.getGoogleAnalyticsScript(statusPage.analyticsId);
|
|
case "umami":
|
|
return umamiAnalytics.getUmamiAnalyticsScript(statusPage.analyticsDomainUrl, statusPage.analyticsId);
|
|
case "plausible":
|
|
return plausibleAnalytics.getPlausibleAnalyticsScript(statusPage.analyticsDomainUrl, statusPage.analyticsId);
|
|
case "matomo":
|
|
return matomoAnalytics.getMatomoAnalyticsScript(statusPage.analyticsDomainUrl, statusPage.analyticsId);
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function that checks wether the selected analytics has been configured properly
|
|
* @param {typeof import("../model/status_page").StatusPage} statusPage Status page populate HTML with
|
|
* @returns {boolean} Boolean defining if the analytics config is valid
|
|
*/
|
|
function isValidAnalyticsConfig(statusPage) {
|
|
switch (statusPage.analyticsType) {
|
|
case "google":
|
|
return statusPage.analyticsId != null;
|
|
case "umami":
|
|
case "plausible":
|
|
case "matomo":
|
|
return statusPage.analyticsId != null && statusPage.analyticsDomainUrl != null;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
getAnalyticsScript,
|
|
isValidAnalyticsConfig
|
|
};
|