franken-ui
Version:
Franken UI is an HTML-first, open-source library of UI components based on the utility-first Tailwind CSS with UIkit 3 compatibility. The design is based on shadcn/ui ported to be framework-agnostic.
49 lines (48 loc) • 1.99 kB
JavaScript
import { existsSync, copyFileSync } from 'fs';
import { join, dirname } from 'path';
import { parseArgs } from '../helpers/common.js';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const extensions = ['js', 'cjs', 'ts'];
function copy(stub, filename) {
copyFileSync(join(__dirname, 'stubs', stub), join(process.cwd(), filename));
console.log('Created config file:', filename);
}
export default function (args) {
const map = { p: '--postcss', r: '--raw', i: '--fine', f: '--force' };
const safelist = ['-r', '--raw', '-i', '--fine', '-p', '--postcss', '-f', '--force'];
args = parseArgs(args, safelist, map);
if (extensions.some((extension) => existsSync(`tailwind.config.${extension}`))) {
console.error('tailwind.config.js already exists');
}
else {
(() => {
if (args.some((arg) => ['--raw', '--fine'].includes(arg))) {
if (args.includes('--raw') && args.includes('--fine')) {
console.error('Choose only one of the two --raw or --fine');
return;
}
else {
if (args.includes('--raw')) {
copy('tailwind.config.raw.js', 'tailwind.config.js');
return;
}
if (args.includes('--fine')) {
copy('tailwind.config.fine.js', 'tailwind.config.js');
return;
}
}
return;
}
copy('tailwind.config.recommended.js', 'tailwind.config.js');
})();
}
if (args.includes('--postcss')) {
if (extensions.some((extension) => existsSync(`postcss.config.${extension}`))) {
console.error('postcss.config.js already exists');
return;
}
copy('postcss.config.cjs', 'postcss.config.cjs');
}
}