1
0
Fork 0
mirror of https://github.com/CorentinTh/it-tools.git synced 2025-07-23 07:09:37 +02:00
it-tools/src/plugins/plausible.plugin.ts

38 lines
838 B
TypeScript

import { config } from '@/config';
import { noop } from 'lodash';
import Plausible from 'plausible-tracker';
import type { App } from 'vue';
function createFakePlausibleInstance(): Pick<ReturnType<typeof Plausible>, 'trackEvent' | 'enableAutoPageviews'> {
return {
trackEvent: noop,
enableAutoPageviews: () => noop,
};
}
function createPlausibleInstance({
config,
}: {
config: {
isTrackerEnabled: boolean;
domain: string;
apiHost: string;
trackLocalhost: boolean;
};
}) {
if (config.isTrackerEnabled) {
return Plausible(config);
}
return createFakePlausibleInstance();
}
export const plausible = {
install: (app: App) => {
const plausible = createPlausibleInstance({ config: config.plausible });
plausible.enableAutoPageviews();
app.provide('plausible', plausible);
},
};