Something went wrong. Try again.
[READ-ONLY]
a fast, modern browser for the npm registry forked from npmx.dev/npmx.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142import { defineNuxtModule, useNuxt, addServerTemplate } from 'nuxt/kit'import process from 'node:process'import { join } from 'node:path'import { appendFileSync, existsSync, readFileSync } from 'node:fs'import { randomUUID } from 'node:crypto'import { getEnv } from '../config/env.ts'
export default defineNuxtModule({ meta: { name: 'oauth', }, async setup() { const nuxt = useNuxt()
const { previewUrl, productionUrl } = await getEnv(nuxt.options.dev) const clientUri = productionUrl || previewUrl || 'http://127.0.0.1:3000'
// bake it into a virtual file addServerTemplate({ filename: '#oauth/config', getContents: () => `export const clientUri = ${JSON.stringify(clientUri)};`, })
if (nuxt.options._prepare || process.env.NUXT_SESSION_PASSWORD) { return }
const envPath = join(nuxt.options.rootDir, '.env') const hasPassword = existsSync(envPath) && /^NUXT_SESSION_PASSWORD=/m.test(readFileSync(envPath, 'utf-8'))
if (!hasPassword) { // eslint-disable-next-line no-console console.info('Generating NUXT_SESSION_PASSWORD for development environment.') const password = randomUUID().replace(/-/g, '')
nuxt.options.runtimeConfig.sessionPassword = password appendFileSync(envPath, `# generated by dev module\nNUXT_SESSION_PASSWORD=${password}\n`) } },})