mirror of https://github.com/vuejs/vitepress
parent
6b4d214b92
commit
46d8ccc29b
@ -1,42 +0,0 @@
|
||||
export function serializeFunctions(value: any, key?: string): any {
|
||||
if (Array.isArray(value)) {
|
||||
return value.map((v) => serializeFunctions(v))
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
return Object.keys(value).reduce((acc, key) => {
|
||||
if (key[0] === '_') return acc
|
||||
acc[key] = serializeFunctions(value[key], key)
|
||||
return acc
|
||||
}, {} as any)
|
||||
} else if (typeof value === 'function') {
|
||||
let serialized = value.toString()
|
||||
if (
|
||||
key &&
|
||||
(serialized.startsWith(key) || serialized.startsWith('async ' + key))
|
||||
) {
|
||||
serialized = serialized.replace(key, 'function')
|
||||
}
|
||||
return `_vp-fn_${serialized}`
|
||||
} else {
|
||||
return value
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
export function deserializeFunctions(value: any): any {
|
||||
if (Array.isArray(value)) {
|
||||
return value.map(deserializeFunctions)
|
||||
} else if (typeof value === 'object' && value !== null) {
|
||||
return Object.keys(value).reduce((acc, key) => {
|
||||
acc[key] = deserializeFunctions(value[key])
|
||||
return acc
|
||||
}, {} as any)
|
||||
} else if (typeof value === 'string' && value.startsWith('_vp-fn_')) {
|
||||
return new Function(`return ${value.slice(7)}`)()
|
||||
} else {
|
||||
return value
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
export const deserializeFunctions =
|
||||
'function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r}'
|
Loading…
Reference in new issue