Comparing version 0.3.6 to 0.3.7
@@ -7,2 +7,9 @@ "use strict"; | ||
} | ||
function getFinalData(target, data, func) { | ||
if (!func) { | ||
return data; | ||
} | ||
const newData = func(target, data); | ||
return newData === undefined ? data : newData; | ||
} | ||
function funcWrapper(point, fn) { | ||
@@ -12,13 +19,8 @@ let newFn; | ||
newFn = function* (...args) { | ||
args = point.before && point.before(this, args) || args; | ||
try { | ||
const result = yield fn.apply(this, args); | ||
point.after && point.after(this, result); | ||
return result; | ||
let result = yield fn.apply(this, getFinalData(this, args, point.before)); | ||
return getFinalData(this, result, point.after); | ||
} | ||
catch (error) { | ||
if (point.onError) { | ||
error = point.onError(this, error) || error; | ||
} | ||
throw error; | ||
throw getFinalData(this, error, point.onError); | ||
} | ||
@@ -30,8 +32,6 @@ }; | ||
newFn = function (...args) { | ||
args = point.before && point.before(this, args) || args; | ||
let result = fn.apply(this, args); | ||
let result = fn.apply(this, getFinalData(this, args, point.before)); | ||
if (result instanceof Promise) { | ||
result = result.then((ret) => { | ||
point.after && point.after(this, ret); | ||
return ret; | ||
return getFinalData(this, ret, point.after); | ||
}); | ||
@@ -41,19 +41,15 @@ if (point.onError) { | ||
.catch(error => { | ||
error = point.onError(this, error) || error; | ||
throw error; | ||
throw getFinalData(this, error, point.onError); | ||
}); | ||
} | ||
return result; | ||
} | ||
else { | ||
try { | ||
point.after && point.after(this, result); | ||
return getFinalData(this, result, point.after); | ||
} | ||
catch (error) { | ||
if (point.onError) { | ||
error = point.onError(this, error) || error; | ||
} | ||
throw error; | ||
throw getFinalData(this, error, point.onError); | ||
} | ||
} | ||
return result; | ||
}; | ||
@@ -60,0 +56,0 @@ } |
{ | ||
"name": "egg-aop", | ||
"version": "0.3.6", | ||
"version": "0.3.7", | ||
"description": "aop for egg.", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15460
382