feat(plausible): disable plausible instance for self hosted instance
This commit is contained in:
		
							parent
							
								
									a599528044
								
							
						
					
					
						commit
						aa4dc0418e
					
				| @ -29,6 +29,12 @@ export const config = figue({ | |||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|   plausible: { |   plausible: { | ||||||
|  |     isTrackerEnabled: { | ||||||
|  |       doc: 'Is the tracker enabled', | ||||||
|  |       format: 'boolean', | ||||||
|  |       default: false, | ||||||
|  |       env: 'VITE_TRACKER_ENABLED', | ||||||
|  |     }, | ||||||
|     domain: { |     domain: { | ||||||
|       doc: 'Plausible current domain', |       doc: 'Plausible current domain', | ||||||
|       format: 'string', |       format: 'string', | ||||||
|  | |||||||
| @ -1,11 +1,36 @@ | |||||||
| import { config } from '@/config'; | import { config } from '@/config'; | ||||||
|  | import { noop } from 'lodash'; | ||||||
| 
 | 
 | ||||||
| import Plausible from 'plausible-tracker'; | import Plausible from 'plausible-tracker'; | ||||||
| import type { App } from 'vue'; | 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 = { | export const plausible = { | ||||||
|   install: (app: App) => { |   install: (app: App) => { | ||||||
|     const plausible = Plausible(config.plausible); |     const plausible = createPlausibleInstance({ config: config.plausible }); | ||||||
|     plausible.enableAutoPageviews(); |     plausible.enableAutoPageviews(); | ||||||
| 
 | 
 | ||||||
|     app.provide('plausible', plausible); |     app.provide('plausible', plausible); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user