Skip to content

Commit b55b529

Browse files
authored
refactor: use stringified deserializeFunctions util (#2733)
1 parent e3f8fc7 commit b55b529

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

Diff for: src/node/build/build.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ function generateMetadataScript(
176176

177177
const metadataContent = `window.__VP_HASH_MAP__=JSON.parse(${hashMapString});${
178178
siteDataString.includes('_vp-fn_')
179-
? `${deserializeFunctions.toString()};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse(${siteDataString}));`
179+
? `${deserializeFunctions};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse(${siteDataString}));`
180180
: `window.__VP_SITE_DATA__=JSON.parse(${siteDataString});`
181181
}`
182182

Diff for: src/node/plugin.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,7 @@ export async function createVitePressPlugin(
172172
}
173173
}
174174
data = serializeFunctions(data)
175-
return `${deserializeFunctions.toString()}
176-
export default deserializeFunctions(JSON.parse(${JSON.stringify(
175+
return `${deserializeFunctions};export default deserializeFunctions(JSON.parse(${JSON.stringify(
177176
JSON.stringify(data)
178177
)}))`
179178
}

Diff for: src/node/utils/fnSerialize.ts

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export function serializeFunctions(value: any, key?: string): any {
2020
}
2121
}
2222

23+
/*
2324
export function deserializeFunctions(value: any): any {
2425
if (Array.isArray(value)) {
2526
return value.map(deserializeFunctions)
@@ -34,3 +35,7 @@ export function deserializeFunctions(value: any): any {
3435
return value
3536
}
3637
}
38+
*/
39+
40+
export const deserializeFunctions =
41+
'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}'

0 commit comments

Comments
 (0)