Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import { getCurrentPageQuery } from './getCurrentPageQuery'
import { parseUrlQueryString } from '../utils'
export type GetSceneParamsParser<T> =
| 'searchParams'
| 'json'
| ((data: string) => T)
/**
* 获取场景参数。
*
* @param parser 解析器
*/
export function getSceneParams<T extends Record<any, any> = Record<any, any>>(
parser: GetSceneParamsParser<T> = 'searchParams',
): T {
const { scene } = getCurrentPageQuery<{ scene?: string }>()
if (!scene) {
return {} as any
}
if (parser === 'searchParams') {
return parseUrlQueryString<T>(scene)
}
if (parser === 'json') {
return JSON.parse(scene)
}
return parser(scene)
}
|