| import fs from 'fs' | |
| import path from 'path' | |
| import { fileURLToPath } from 'url' | |
| import g from 'generatorics' | |
| const __dirname = path.dirname(fileURLToPath(import.meta.url)) | |
| function idToGlobal(id) { | |
| return `COMPILE_${id.replace('-', '_').toUpperCase()}` | |
| } | |
| const LEGACY_VARIANT_NAMES = [ | |
| 'hash', | |
| 'outbound-links', | |
| 'exclusions', | |
| 'compat', | |
| 'local', | |
| 'manual', | |
| 'file-downloads', | |
| 'pageview-props', | |
| 'tagged-events', | |
| 'revenue' | |
| ] | |
| let legacyVariants = [...g.clone.powerSet(LEGACY_VARIANT_NAMES)] | |
| .map((a) => a.sort()) | |
| .map((variant) => ({ | |
| name: | |
| variant.length > 0 ? `plausible.${variant.join('.')}.js` : 'plausible.js', | |
| globals: { | |
| ...Object.fromEntries(variant.map((id) => [idToGlobal(id), true])), | |
| COMPILE_PLAUSIBLE_LEGACY_VARIANT: true | |
| } | |
| })) | |
| const variantsFile = path.join(__dirname, 'variants.json') | |
| const existingData = JSON.parse(fs.readFileSync(variantsFile, 'utf8')) | |
| fs.writeFileSync( | |
| variantsFile, | |
| JSON.stringify({ ...existingData, legacyVariants }, null, 2) + '\n' | |
| ) | |