Skip to content

Commit

Permalink
feat(configuration): use runtime configuration (#213)
Browse files Browse the repository at this point in the history
* fix(configuration): runtime typings

* chore(runtime-config): cleanup

---------

Co-authored-by: Jonas Thelemann <[email protected]>
  • Loading branch information
BlueBazze and dargmuesli authored May 12, 2024
1 parent 7ec53de commit 529769c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 32 deletions.
43 changes: 13 additions & 30 deletions src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import {
updateTemplates,
} from '@nuxt/kit'
import type { Nuxt, NuxtApp } from '@nuxt/schema'
// import { defu } from 'defu'
// import webpack from 'webpack' // eslint-disable-line import/no-named-as-default
import { defu } from 'defu'

import { CONFIG_KEY } from './constants'
import { replaceCodePlugin } from './replace'
Expand Down Expand Up @@ -72,12 +71,13 @@ export default defineNuxtModule<ModuleOptions>({
})
}
})
// nuxt.hook('modules:done', async () => {
// nuxt.options.runtimeConfig.cookieControl = defu(
// nuxt.options.runtimeConfig.cookieControl,
// moduleOptions,
// )
// })

nuxt.hook('modules:done', async () => {
nuxt.options.runtimeConfig.public.cookieControl = defu(
nuxt.options.runtimeConfig.public.cookieControl,
moduleOptions,
)
})
},
})

Expand Down Expand Up @@ -136,10 +136,6 @@ const getTypeTemplate = (data: {
options: ModuleOptions
}) => `// Generated by ${name}
import type { ModuleOptions } from '#cookie-control/types'
export default ${JSON.stringify(data.options, undefined, 2)} as ModuleOptions
/**
* Union of the cookie ids specified in the Nuxt configuration.
*/
Expand Down Expand Up @@ -174,28 +170,15 @@ const loadLocales = async (moduleOptions: ModuleOptions) => {
...moduleOptions.localeTexts[locale],
}
}

// const regex = new RegExp(moduleOptions.locales.join(COOKIE_ID_SEPARATOR))
// addWebpackPlugin(
// new webpack.ContextReplacementPlugin(
// /nuxt-cookie-control[/\\]dist[/\\]runtime[/\\]locale$/,
// regex
// )
// )
// addVitePlugin(vitePlugin, options?)
}

const pushCss = (moduleOptions: ModuleOptions, nuxt: Nuxt) => {
if (moduleOptions.isCssEnabled)
nuxt.options.css.push(resolver.resolve(runtimeDir, 'styles.css'))
}

// export interface ModuleRuntimeConfig {
// [CONFIG_KEY]: ModuleOptions
// }
// declare module 'nuxt/schema' {
// interface RuntimeConfig extends ModuleRuntimeConfig {}
// }
// declare module '@nuxt/schema' {
// interface RuntimeConfig extends ModuleRuntimeConfig {}
// }
declare module '@nuxt/schema' {
interface PublicRuntimeConfig {
cookieControl: ModuleOptions
}
}
6 changes: 4 additions & 2 deletions src/runtime/plugin.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { ref } from 'vue'

import moduleOptions from '#build/types/cookie-control.d'
import { COOKIE_ID_SEPARATOR } from '#cookie-control/constants'
import { getAllCookieIdsString } from '#cookie-control/methods'
import type { Cookie, State } from '#cookie-control/types'
import { defineNuxtPlugin, useCookie } from '#imports'
import { defineNuxtPlugin, useCookie, useRuntimeConfig } from '#imports'

export default defineNuxtPlugin((_nuxtApp) => {
const runtimeConfig = useRuntimeConfig()
const moduleOptions = runtimeConfig.public.cookieControl

const cookieIsConsentGiven = useCookie(
moduleOptions.cookieNameIsConsentGiven,
moduleOptions.cookieOptions,
Expand Down

0 comments on commit 529769c

Please sign in to comment.