kopia lustrzana https://github.com/elk-zone/elk
				
				
				
			
		
			
				
	
	
		
			37 wiersze
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			37 wiersze
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import type { BuildInfo } from '~/types'
 | |
| import { createResolver, defineNuxtModule } from '@nuxt/kit'
 | |
| import { isCI } from 'std-env'
 | |
| import { getEnv, version } from '../config/env'
 | |
| 
 | |
| const { resolve } = createResolver(import.meta.url)
 | |
| 
 | |
| export default defineNuxtModule({
 | |
|   meta: {
 | |
|     name: 'elk:build-env',
 | |
|   },
 | |
|   async setup(_options, nuxt) {
 | |
|     const { env, commit, shortCommit, branch } = await getEnv()
 | |
|     const buildInfo: BuildInfo = {
 | |
|       version,
 | |
|       time: +Date.now(),
 | |
|       commit,
 | |
|       shortCommit,
 | |
|       branch,
 | |
|       env,
 | |
|     }
 | |
| 
 | |
|     nuxt.options.appConfig = nuxt.options.appConfig || {}
 | |
|     nuxt.options.appConfig.env = env
 | |
|     nuxt.options.appConfig.buildInfo = buildInfo
 | |
| 
 | |
|     nuxt.options.nitro.virtual = nuxt.options.nitro.virtual || {}
 | |
|     nuxt.options.nitro.virtual['#build-info'] = `export const env = ${JSON.stringify(env)}`
 | |
| 
 | |
|     nuxt.options.nitro.publicAssets = nuxt.options.nitro.publicAssets || []
 | |
|     if (env === 'dev')
 | |
|       nuxt.options.nitro.publicAssets.unshift({ dir: resolve('../public-dev') })
 | |
|     else if (env === 'canary' || env === 'preview' || !isCI)
 | |
|       nuxt.options.nitro.publicAssets.unshift({ dir: resolve('../public-staging') })
 | |
|   },
 | |
| })
 |