UNPKG

nuxt-users

Version:

A comprehensive user management module for Nuxt 3 and Nuxt 4 applications with authentication, authorization, database support, and CLI tools

76 lines (62 loc) 2.6 kB
#!/usr/bin/env node import { fileURLToPath } from 'node:url' import { dirname, join } from 'node:path' import { existsSync, writeFileSync, rmdirSync, unlinkSync, readdirSync, readFileSync } from 'node:fs' const __dirname = dirname(fileURLToPath(import.meta.url)) const projectRoot = join(__dirname, '..') const distDir = join(projectRoot, 'dist') const utilsDir = join(distDir, 'utils') const utilsIndexFile = join(utilsDir, 'index.js') const utilsRootFile = join(distDir, 'utils.js') // Remove existing utils directory if it exists if (existsSync(utilsDir)) { try { if (existsSync(utilsIndexFile)) { unlinkSync(utilsIndexFile) } rmdirSync(utilsDir) } catch { // Ignore errors } } // Create utils.js in the dist root to handle "../../../utils" imports // This allows imports like "../../../utils" to resolve to a file instead of directory const rootIndexContent = `export * from './utils.mjs' ` writeFileSync(utilsRootFile, rootIndexContent) // Note: Types imports should be handled by TypeScript compilation, not runtime // Fix import paths in built files to include .js extensions for ES modules const runtimeUtilsDir = join(distDir, 'runtime') // Function to recursively find and fix import statements function fixImportPaths(dir) { const items = readdirSync(dir, { withFileTypes: true }) for (const item of items) { const fullPath = join(dir, item.name) if (item.isDirectory()) { fixImportPaths(fullPath) } else if (item.isFile() && (item.name.endsWith('.js') || item.name.endsWith('.mjs') || item.name.endsWith('.vue') || item.name.endsWith('.ts'))) { let content = readFileSync(fullPath, 'utf8') let modified = false // Transform relative imports to utils/imports back to nuxt-users/utils for consumers const relativeImportsRegex = /from\s+["'](\.\.[/\\])*utils[/\\]imports["']/g if (relativeImportsRegex.test(content)) { content = content.replace(relativeImportsRegex, 'from "nuxt-users/utils"') modified = true } // Transform other relative utils imports const utilsImportRegex = /from\s+["']\.\.[/\\]utils[/\\]imports["']/g if (utilsImportRegex.test(content)) { content = content.replace(utilsImportRegex, 'from "nuxt-users/utils"') modified = true } if (modified) { writeFileSync(fullPath, content) console.log(`[Nuxt Users] Transformed import paths in ${fullPath}`) } } } } fixImportPaths(runtimeUtilsDir) console.log('[Nuxt Users] Created utils.js file and fixed import paths for ES modules')