analytics-plugin-plausible
Version:
Plausible support for Analytics
65 lines • 2.44 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var plausible_tracker_1 = __importDefault(require("plausible-tracker"));
var defaultConfig = {
enabled: true,
};
function plausiblePlugin(pluginConfig) {
var context = {
plausible: null,
};
return {
name: "plausible-analytics",
config: __assign(__assign({}, defaultConfig), pluginConfig),
initialize: function (_a) {
var config = _a.config;
var apiHost = config.apiHost, domain = config.domain, hashMode = config.hashMode, trackLocalhost = config.trackLocalhost;
var plausibleConfig = {
apiHost: apiHost,
domain: domain,
hashMode: hashMode,
trackLocalhost: trackLocalhost,
};
context.plausible = plausible_tracker_1.default(Object.keys(plausibleConfig).reduce(function (acc, key) {
var _a;
if (typeof plausibleConfig[key] !== "undefined") {
return __assign(__assign({}, acc), (_a = {}, _a[key] = plausibleConfig[key], _a));
}
return acc;
}, {}));
},
loaded: function () {
return Boolean(context.plausible);
},
page: function (_a) {
var payload = _a.payload;
if (!context.plausible)
return;
var properties = payload.properties;
context.plausible.trackPageview({}, { props: properties });
},
track: function (_a) {
var payload = _a.payload;
if (!context.plausible)
return;
var properties = payload.properties, event = payload.event;
context.plausible.trackEvent(event, { props: properties });
},
};
}
exports.default = plausiblePlugin;
//# sourceMappingURL=plausible.js.map