Skip to content

Commit

Permalink
chore(type): lifecycle hooks return type (#776)
Browse files Browse the repository at this point in the history
Co-authored-by: webfansplz <>
  • Loading branch information
webfansplz committed Jul 30, 2021
1 parent ae81056 commit 3421a79
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/apis/lifecycle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ const genName = (name: string) => `on${name[0].toUpperCase() + name.slice(1)}`
function createLifeCycle(lifeCyclehook: string) {
return (callback: Function) => {
const vm = currentVMInFn(genName(lifeCyclehook))
if (vm) {
injectHookOption(getVueConstructor(), vm, lifeCyclehook, callback)
}
return (
vm && injectHookOption(getVueConstructor(), vm, lifeCyclehook, callback)
)
}
}

Expand All @@ -25,10 +25,12 @@ function injectHookOption(
) {
const options = vm.$options as Record<string, unknown>
const mergeFn = Vue.config.optionMergeStrategies[hook]
options[hook] = mergeFn(options[hook], wrapHookCall(vm, val))
const wrappedHook = wrapHookCall(vm, val)
options[hook] = mergeFn(options[hook], wrappedHook)
return wrappedHook
}

function wrapHookCall(vm: ComponentInstance, fn: Function) {
function wrapHookCall(vm: ComponentInstance, fn: Function): Function {
return (...args: any) => {
let preVm = getCurrentInstance()?.proxy
setCurrentInstance(vm)
Expand Down

0 comments on commit 3421a79

Please sign in to comment.