Nitro Api
isClientOutdated()
Last updated by
Harlan Wilton
in doc: sync. Introduction
Type: function isClientOutdated(event: H3Event): boolean
Check if the client's version is outdated compared to the current build in server-side Nitro routes, middleware, and API handlers.
Returns true if the client's version cookie doesn't match the current buildId, indicating the client should refresh.
API
import { isClientOutdated } from 'nuxt-skew-protection/server'
function isClientOutdated(event: H3Event): boolean
Arguments
event: H3Event: The H3 event object from the request handler.
Returns
boolean:trueif the client version doesn't match the current buildId,falseotherwise.
Examples
Throwing an Error in API Route
// server/api/data.ts
import { isClientOutdated } from 'nuxt-skew-protection/server'
export default defineEventHandler(async (event) => {
// Check if client is outdated
if (isClientOutdated(event)) {
throw createError({
statusCode: 409,
message: 'Client version outdated. Please refresh.'
})
}
// Proceed with API logic
const data = await fetchData()
return data
})
Add Header in Middleware
// server/middleware/check-version.ts
import { isClientOutdated } from 'nuxt-skew-protection/server'
export default defineEventHandler((event) => {
const path = event.path
// Only check on API routes
if (!path.startsWith('/api/')) {
return
}
if (isClientOutdated(event)) {
const userVersion = getSkewProtectionCookie(event)
console.log(`Outdated client detected: ${userVersion}`)
// Add header to inform client
setResponseHeader(event, 'X-Client-Outdated', 'true')
}
})
Did this page help you?