Skip to content

Commit a834ef6

Browse files
authored
fix(vue): reject ignored server prop resolvers (#876)
1 parent 9d7fa03 commit a834ef6

3 files changed

Lines changed: 9 additions & 2 deletions

File tree

packages/vue/src/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export { VueHeadMixin } from './VueHeadMixin'
88
export { type PreparedTemplate, prepareTemplate, propsToString, renderSSRHead, type SSRHeadPayload, transformHtmlTemplate } from 'unhead/server'
99

1010
/* @__NO_SIDE_EFFECTS__ */
11-
export function createHead(options: Omit<CreateServerHeadOptions, 'propsResolver'> = {}): VueHeadClient<UseHeadInput, SSRHeadPayload> {
11+
export function createHead(options: Omit<CreateServerHeadOptions, 'propResolvers'> = {}): VueHeadClient<UseHeadInput, SSRHeadPayload> {
1212
const head = _createServerHead({
1313
...options,
1414
propResolvers: [VueResolver],

packages/vue/src/stream/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export interface VueStreamableHeadContext extends Omit<WebStreamableHeadContext<
5252
* ```
5353
*/
5454
export function createStreamableHead(
55-
options: Omit<CreateStreamableServerHeadOptions, 'propsResolver'> = {},
55+
options: Omit<CreateStreamableServerHeadOptions, 'propResolvers'> = {},
5656
): VueStreamableHeadContext {
5757
const { head } = _createStreamableHead({
5858
...options,

packages/vue/test/unit/types.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { createHead } from '@unhead/vue/client'
44
import { createHead as createServerHead } from '@unhead/vue/server'
55
import { computed } from 'vue'
66
import { useHead, useHeadSafe } from '../../src/composables'
7+
import { createStreamableHead } from '../../src/stream/server'
78

89
describe('types', () => {
910
it('types useHead', () => {
@@ -137,6 +138,12 @@ describe('types', () => {
137138
// @ts-expect-error server render() should not be assignable to boolean
138139
serverHead.render() satisfies boolean
139140
})
141+
it('does not accept custom server prop resolvers', () => {
142+
// @ts-expect-error Vue installs its own prop resolver
143+
createServerHead({ propResolvers: [] })
144+
// @ts-expect-error Vue installs its own prop resolver
145+
createStreamableHead({ propResolvers: [] })
146+
})
140147
it('types nuxt core', () => {
141148
const payloadURL = 'test'
142149
const link: RawInput<'link'> = process.env.NUXT_JSON_PAYLOADS

0 commit comments

Comments
 (0)