Skip to content

Commit

Permalink
refactor: use single return in plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
DamianGlowala committed Aug 29, 2024
1 parent e758cc6 commit 401a366
Showing 1 changed file with 23 additions and 28 deletions.
51 changes: 23 additions & 28 deletions src/runtime/plugin.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,38 @@
import { reactive } from 'vue'
import type { Device } from '../types'
import generateFlags from './generateFlags'
import { defineNuxtPlugin, useRuntimeConfig, useRequestHeaders } from '#imports'
// https://github.com/nuxt/module-builder/issues/141
import type {} from 'nuxt/app'
import { defineNuxtPlugin, reactive, useRequestHeaders, useRuntimeConfig } from '#imports'

export default defineNuxtPlugin((nuxtApp) => {
export default defineNuxtPlugin(() => {
const runtimeConfig = useRuntimeConfig()

const defaultUserAgent = runtimeConfig.public?.device?.defaultUserAgent
const defaultUserAgent = runtimeConfig.public.device.defaultUserAgent

// Server Side
if (nuxtApp.ssrContext) {
const headers = useRequestHeaders()
let flags: Device

const userAgent = headers['user-agent'] || defaultUserAgent || ''
if (import.meta.server) {
const headers = useRequestHeaders()

const flags = reactive(generateFlags(userAgent, headers))
const userAgent = headers['user-agent'] || defaultUserAgent

return {
provide: {
device: flags,
},
}
flags = reactive(generateFlags(userAgent, headers))
}
else {
const userAgent = navigator.userAgent || defaultUserAgent

// Client Side
const userAgent = navigator.userAgent || defaultUserAgent || ''
const flags = reactive(generateFlags(userAgent))
flags = reactive(generateFlags(userAgent))

if (runtimeConfig.public?.device?.refreshOnResize) {
window.addEventListener('resize', () => {
setTimeout(() => {
const newFlags = generateFlags(navigator.userAgent || userAgent)
Object.entries(newFlags).forEach(([key, value]) => {
if (runtimeConfig.public.device.refreshOnResize) {
window.addEventListener('resize', () => {
setTimeout(() => {
const newFlags = generateFlags(navigator.userAgent || userAgent)

Object.entries(newFlags).forEach(([key, value]) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(flags as any)[key] = value
})
}, 50)
})
(flags as any)[key] = value
})
}, 50)
})
}
}

return {
Expand Down

0 comments on commit 401a366

Please sign in to comment.