Skip to content

Commit 6846c07

Browse files
committed
fix: don't use alias to inject config to preserve runtime reactivity, resolves #192
1 parent fb25c7b commit 6846c07

File tree

5 files changed

+26
-34
lines changed

5 files changed

+26
-34
lines changed

playground/nuxt.config.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
1-
import prismicModule from '../src/module'
2-
31
// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
42
export default defineNuxtConfig({
53
typescript: {
64
strict: true
75
},
8-
modules: [prismicModule],
6+
modules: ['../src/module'],
97
runtimeConfig: {
108
public: {
119
prismic: {
12-
endpoint: '200629-sms-hoy',
13-
clientConfig: {
14-
routes: [
15-
{
16-
type: 'kitchen_sink_2',
17-
path: '/'
18-
},
19-
{
20-
type: 'page',
21-
path: '/'
22-
}
23-
]
24-
}
10+
endpoint: '200629-sms-hoy'
2511
}
2612
}
13+
},
14+
prismic: {
15+
// endpoint: '200629-sms-hoy',
16+
clientConfig: {
17+
routes: [
18+
{
19+
type: 'kitchen_sink_2',
20+
path: '/'
21+
},
22+
{
23+
type: 'page',
24+
path: '/'
25+
}
26+
]
27+
28+
}
2729
}
2830
})

src/module.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,6 @@ export default defineNuxtModule<PrismicModuleOptions>({
5050
const moduleOptions: PrismicModuleOptions = defu(nuxt.options.runtimeConfig.public.prismic, options)
5151
nuxt.options.runtimeConfig.public.prismic = moduleOptions
5252

53-
nuxt.options.alias['#prismicOptions'] = addTemplate({
54-
filename: 'prismicOptions.mjs',
55-
write: true,
56-
getContents: () => `export default ${JSON.stringify(moduleOptions, undefined, 2)}`
57-
}).dst || ''
58-
5953
if (!moduleOptions.endpoint) {
6054
logger.warn('Options `endpoint` is required, disabling module...')
6155
return

src/runtime/plugin.client.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { PrismicModuleOptions } from '../types'
22
import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from '#imports'
33

4-
import moduleOptions from '#prismicOptions'
5-
64
export default defineNuxtPlugin((nuxtApp) => {
7-
const options = moduleOptions as PrismicModuleOptions
5+
const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
86

97
// Hot reload preview updates
108
if (options.preview) {

src/runtime/plugin.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@ import linkResolver from '#build/prismic/proxy/linkResolver'
1313
// @ts-expect-error vfs cannot be resolved here
1414
import htmlSerializer from '#build/prismic/proxy/htmlSerializer'
1515

16-
import moduleOptions from '#prismicOptions'
17-
1816
export default defineNuxtPlugin((nuxtApp) => {
19-
const options = moduleOptions as PrismicModuleOptions
17+
const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
2018

2119
const prismicPlugin = createPrismic({
2220
...options,

test/module-userFileProxy.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ afterEach(() => {
2525
it('proxies nothing if user files are not available', () => {
2626
mockedPrismicModule({ endpoint: 'qwerty' })
2727

28-
expect(addTemplate).toHaveBeenCalledTimes(4)
29-
expect(vi.mocked(addTemplate).mock.calls.flat().filter((options: any) => !options.filename.startsWith('prismicOptions')).map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
28+
expect(addTemplate).toHaveBeenCalledTimes(3)
29+
expect(vi.mocked(addTemplate).mock.calls.flat().map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
3030
[
3131
[
3232
"prismic/proxy/client.ts",
@@ -53,8 +53,8 @@ it('proxies user files from default location', () => {
5353

5454
mockedPrismicModule({ endpoint: 'qwerty' })
5555

56-
expect(addTemplate).toHaveBeenCalledTimes(4)
57-
expect(vi.mocked(addTemplate).mock.calls.flat().filter((options: any) => !options.filename.startsWith('prismicOptions')).map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
56+
expect(addTemplate).toHaveBeenCalledTimes(3)
57+
expect(vi.mocked(addTemplate).mock.calls.flat().map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
5858
[
5959
[
6060
"prismic/proxy/client.ts",
@@ -88,8 +88,8 @@ it('proxies user files from provided location', () => {
8888
htmlSerializer: '~/custom/htmlSerializer'
8989
})
9090

91-
expect(addTemplate).toHaveBeenCalledTimes(4)
92-
expect(vi.mocked(addTemplate).mock.calls.flat().filter((options: any) => !options.filename.startsWith('prismicOptions')).map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
91+
expect(addTemplate).toHaveBeenCalledTimes(3)
92+
expect(vi.mocked(addTemplate).mock.calls.flat().map((options: any) => [options.filename, options.getContents()])).toMatchInlineSnapshot(`
9393
[
9494
[
9595
"prismic/proxy/client.ts",

0 commit comments

Comments
 (0)