20 lines
554 B
TypeScript
20 lines
554 B
TypeScript
|
import { inject } from '../apiInject'
|
||
|
import { warn } from '../warning'
|
||
|
|
||
|
export const ssrContextKey = Symbol(__DEV__ ? `ssrContext` : ``)
|
||
|
|
||
|
export const useSSRContext = <T = Record<string, any>>() => {
|
||
|
if (!__GLOBAL__) {
|
||
|
const ctx = inject<T>(ssrContextKey)
|
||
|
if (!ctx) {
|
||
|
warn(
|
||
|
`Server rendering context not provided. Make sure to only call ` +
|
||
|
`useSsrContext() conditionally in the server build.`
|
||
|
)
|
||
|
}
|
||
|
return ctx
|
||
|
} else if (__DEV__) {
|
||
|
warn(`useSsrContext() is not supported in the global build.`)
|
||
|
}
|
||
|
}
|