|
@@ -0,0 +1,46 @@
|
|
|
|
+#!/usr/bin/env node
|
|
|
|
+
|
|
|
|
+'use strict'
|
|
|
|
+
|
|
|
|
+import { readFileSync, writeFileSync } from 'node:fs';
|
|
|
|
+import { join, dirname, basename } from 'node:path';
|
|
|
|
+import { fileURLToPath } from 'node:url'
|
|
|
|
+import { sync } from 'glob';
|
|
|
|
+import banner from '@repo/banner';
|
|
|
|
+
|
|
|
|
+const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
|
|
+
|
|
|
|
+const styles = sync(join(__dirname, '..', 'dist', 'css', '*.css'))
|
|
|
|
+
|
|
|
|
+const plugins = {
|
|
|
|
+ 'tabler-flags': 'Flags',
|
|
|
|
+ 'tabler-flags.rtl': 'Flags RTL',
|
|
|
|
+ 'tabler-marketing': 'Marketing',
|
|
|
|
+ 'tabler-marketing.rtl': 'Marketing RTL',
|
|
|
|
+ 'tabler-payments': 'Payments',
|
|
|
|
+ 'tabler-payments.rtl': 'Payments RTL',
|
|
|
|
+ 'tabler-socials': 'Socials',
|
|
|
|
+ 'tabler-socials.rtl': 'Socials RTL',
|
|
|
|
+ 'tabler-vendors': 'Vendors',
|
|
|
|
+ 'tabler-vendors.rtl': 'Vendors RTL',
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+styles.forEach((file, i) => {
|
|
|
|
+ const content = readFileSync(file, 'utf8')
|
|
|
|
+ const filename = basename(file)
|
|
|
|
+ const pluginKey = Object.keys(plugins).find(plugin => filename.includes(plugin))
|
|
|
|
+ const plugin = plugins[pluginKey]
|
|
|
|
+ const regex = /^(@charset ['"][a-zA-Z0-9-]+['"];?)\n?/i
|
|
|
|
+
|
|
|
|
+ let newContent = ''
|
|
|
|
+
|
|
|
|
+ if (content.match(regex)) {
|
|
|
|
+ newContent = content.replace(regex, (m, m1) => {
|
|
|
|
+ return `${m1}\n${banner(plugin)}\n`
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ newContent = `${banner(plugin)}\n${content}`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ writeFileSync(file, newContent, 'utf8')
|
|
|
|
+})
|