UNPKG

lightswind

Version:

A collection of beautifully crafted React Components, Blocks & Templates for Modern Developers. Create stunning web applications effortlessly by using our 160+ professional and animated react components.

47 lines 2.23 kB
"use strict"; const fs = require('fs'); const path = require('path'); const uiDir = path.join(__dirname, 'dist/components/ui'); const files = fs.readdirSync(uiDir).filter(f => f.endsWith('.tsx') || f.endsWith('.ts')); let stats = { changed: 0, skipped: 0, files: [] }; files.forEach(file => { const fp = path.join(uiDir, file); let content = fs.readFileSync(fp, 'utf8'); const original = content; // Normalize ../../lib/utils → @/lib/utils content = content.replace(/from\s+["']\.\.\/\.\.\/lib\/utils["']/g, 'from "@/lib/utils"'); // Normalize ../../lib/hooks → @/lib/hooks content = content.replace(/from\s+["']\.\.\/\.\.\/lib\/hooks["']/g, 'from "@/lib/hooks"'); // Normalize ../lib/utils (single level) → @/lib/utils content = content.replace(/from\s+["']\.\.\/lib\/utils["']/g, 'from "@/lib/utils"'); // Normalize ../lib/hooks (single level) → @/lib/hooks content = content.replace(/from\s+["']\.\.\/lib\/hooks["']/g, 'from "@/lib/hooks"'); // Normalize cross-component relative imports: from "./<comp>" that refer to other // lightswind components → @/components/lightswind/<comp> // NOTE: We only rewrite from "./<name>" if the target file exists in the ui dir const relativeImportRegex = /from\s+["']\.\/([\w-]+)["']/g; content = content.replace(relativeImportRegex, (match, compName) => { const targetFile = path.join(uiDir, `${compName}.tsx`); const targetFileTs = path.join(uiDir, `${compName}.ts`); if (fs.existsSync(targetFile) || fs.existsSync(targetFileTs)) { return `from "@/components/lightswind/${compName}"`; } return match; // leave non-component relative imports alone }); if (content !== original) { fs.writeFileSync(fp, content, 'utf8'); stats.changed++; stats.files.push(file); } else { stats.skipped++; } }); console.log(`\n✅ Done!`); console.log(`Changed: ${stats.changed} files`); console.log(`Skipped: ${stats.skipped} files (no changes needed)`); if (stats.files.length > 0) { console.log(`\nChanged files:`); stats.files.forEach(f => console.log(` • ${f}`)); } //# sourceMappingURL=normalize-imports.js.map