UNPKG

astro-tw-autoreference

Version:

Automaticaly inject tailwind `@reference` directives into Astro component style blocks.

30 lines (29 loc) 985 B
import { generateReferences, normalizeOptions, shouldInjectReferences, } from './lib.js'; const DEFAULTS = { include: ['src/components', 'src/layouts', 'src/pages'], exclude: [], references: [], }; export default function astroTwAutoreference(options = {}) { const normalizedOptions = normalizeOptions({ ...DEFAULTS, ...options }); const referenceLines = generateReferences(normalizedOptions.references); return { name: 'vite-plugin-astro-tw-autoreference', enforce: 'pre', transform(code, id) { if (!shouldInjectReferences(id, code, normalizedOptions)) return; let result = ''; for (const refline of referenceLines) { if (!code.includes(refline)) { result += `${refline}\n`; } } result += code; return { code: result, map: null, }; }, }; }