Skip to content

Commit

Permalink
refactor: remove deprecation and rename to beforeSerialize
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe committed Jun 3, 2021
1 parent bf27d52 commit 88f525a
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 19 deletions.
4 changes: 2 additions & 2 deletions packages/types/app/index.d.ts
Expand Up @@ -72,7 +72,7 @@ export interface Context {
redirected: boolean
next: NextFunction
beforeRenderFns: Array<() => any>
beforeRenderHooks: Array<() => any>
beforeSerializeFns: Array<() => any>
fetchCounters: Record<string, number>
nuxt: {
layout: string
Expand All @@ -88,7 +88,7 @@ export interface Context {
error(params: NuxtError): void
nuxtState: NuxtState
beforeNuxtRender(fn: (params: { Components: VueRouter['getMatchedComponents'], nuxtState: NuxtState }) => void): void
beforeRender(fn: (params: { Components: VueRouter['getMatchedComponents'], nuxtState: NuxtState }) => void): void
beforeSerialize(fn: (params: { Components: VueRouter['getMatchedComponents'], nuxtState: NuxtState }) => void): void
enablePreview?: (previewData?: Record<string, any>) => void
$preview?: Record<string, any>
}
Expand Down
2 changes: 1 addition & 1 deletion packages/vue-app/template/index.js
Expand Up @@ -183,7 +183,7 @@ async function createApp(ssrContext, config = {}) {
req: ssrContext ? ssrContext.req : undefined,
res: ssrContext ? ssrContext.res : undefined,
beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined,
beforeRenderHooks: ssrContext ? ssrContext.beforeRenderHooks : undefined,
beforeSerializeFns: ssrContext ? ssrContext.beforeSerializeFns : undefined,
ssrContext
})

Expand Down
12 changes: 6 additions & 6 deletions packages/vue-app/template/server.js
Expand Up @@ -83,10 +83,10 @@ export default async (ssrContext) => {
// Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect
ssrContext.redirected = false
ssrContext.next = createNext(ssrContext)
// deprecated: Used for beforeNuxtRender({ Components, nuxtState })
// Used for beforeNuxtRender({ Components, nuxtState })
ssrContext.beforeRenderFns = []
// for beforeRender({ Components, nuxtState })
ssrContext.beforeRenderHooks = []
// for beforeSerialize({ Components, nuxtState })
ssrContext.beforeSerializeFns = []
// Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__)
ssrContext.nuxt = { <% if (features.layouts) { %>layout: 'default', <% } %>data: [], <% if (features.fetch) { %>fetch: {}, <% } %>error: null<%= (store ? ', state: null' : '') %>, serverRendered: true, routePath: '' }
<% if (features.fetch) { %>
Expand Down Expand Up @@ -120,12 +120,12 @@ export default async (ssrContext) => {
<% } %>

const beforeRender = async () => {
// Deprecated: Call beforeNuxtRender() methods
// Call beforeNuxtRender() methods
await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, { Components, nuxtState: ssrContext.nuxt })))

ssrContext.rendered = () => {
// Call beforeRender() hooks
ssrContext.beforeRenderHooks.forEach(fn => fn({ Components, nuxtState: ssrContext.nuxt }))
// Call beforeSerialize() hooks
ssrContext.beforeSerializeFns.forEach(fn => fn({ Components, nuxtState: ssrContext.nuxt }))

<% if (store) { %>
// Add the state from the vuex store
Expand Down
7 changes: 2 additions & 5 deletions packages/vue-app/template/utils.js
Expand Up @@ -258,11 +258,8 @@ export async function setContext (app, context) {
}
}
if (process.server) {
app.context.beforeNuxtRender = fn => {
console.warn('`context.beforeNuxtRender(fn)` is deprecated in favour of `context.beforeRender(fn)`. The function updating the `nuxtState` has to be synchronous. Learn more on https://nuxtjs.org/docs/2.x/internals-glossary/context#beforenuxtrender')
context.beforeRenderFns.push(fn)
}
app.context.beforeRender = fn => context.beforeRenderHooks.push(fn)
app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn)
app.context.beforeSerialize = fn => context.beforeSerializeFns.push(fn)
}
if (process.client) {
app.context.nuxtState = window.<%= globals.context %>
Expand Down
6 changes: 3 additions & 3 deletions test/dev/basic.ssr.test.js
Expand Up @@ -207,10 +207,10 @@ describe('basic ssr', () => {
expect(window.__NUXT__.beforeNuxtRender).toBe(true)
})

test('/before-render -> check window.__NUXT__.beforeRender = true', async () => {
const window = await nuxt.server.renderAndGetWindow(url('/before-render'))
test('/before-serialize -> check window.__NUXT__.beforeSerialize = true', async () => {
const window = await nuxt.server.renderAndGetWindow(url('/before-serialize'))
expect(window.document.title).toBe('Nuxt')
expect(window.__NUXT__.beforeRender).toBe(true)
expect(window.__NUXT__.beforeSerialize).toBe(true);
})

test('/error', async () => {
Expand Down
Expand Up @@ -14,8 +14,8 @@ export default {
},
fetch () {
if (process.server) {
this.$root.context.beforeRender(({ nuxtState }) => {
nuxtState.beforeRender = true
this.$root.context.beforeSerialize(({ nuxtState }) => {
nuxtState.beforeSerialize = true
})
}
},
Expand Down

0 comments on commit 88f525a

Please sign in to comment.