MatteoGabriele/vue-gtag

View on GitHub
src/options.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { mergeDeep } from "@/utils";

export const getDefaultParams = () => ({
  bootstrap: true,
  onReady: null,
  onError: null,
  onBeforeTrack: null,
  onAfterTrack: null,
  pageTrackerTemplate: null,
  customResourceURL: "https://www.googletagmanager.com/gtag/js",
  customPreconnectOrigin: "https://www.googletagmanager.com",
  deferScriptLoad: false,
  pageTrackerExcludedRoutes: [],
  pageTrackerEnabled: true,
  enabled: true,
  disableScriptLoad: false,
  pageTrackerScreenviewEnabled: false,
  appName: null,
  pageTrackerUseFullPath: false,
  pageTrackerPrependBase: true,
  pageTrackerSkipSamePath: true,
  globalDataLayerName: "dataLayer",
  globalObjectName: "gtag",
  defaultGroupName: "default",
  includes: null,
  config: {
    id: null,
    params: {
      send_page_view: false,
    },
  },
});

let params = {};

export const setOptions = (options = {}) => {
  const defaultParams = getDefaultParams();
  params = mergeDeep(defaultParams, options);
};

export const getOptions = () => {
  return params;
};