Comparing version 3.2.0 to 3.2.1
3.2.1 / 2017-04-13 | ||
================== | ||
* fix: allow extend setter or getter alone (#73) | ||
3.2.0 / 2017-04-11 | ||
@@ -3,0 +8,0 @@ ================== |
'use strict'; | ||
const debug = require('debug')('egg-core:extend'); | ||
const path = require('path'); | ||
const debug = require('debug')('egg-core:extend'); | ||
const utils = require('../../utils'); | ||
const orginalPrototypes = { | ||
request: require('koa/lib/request'), | ||
response: require('koa/lib/response'), | ||
context: require('koa/lib/context'), | ||
application: require('koa/lib/application'), | ||
}; | ||
module.exports = { | ||
@@ -99,3 +106,21 @@ | ||
// Copy descriptor | ||
const descriptor = Object.getOwnPropertyDescriptor(ext, property); | ||
let descriptor = Object.getOwnPropertyDescriptor(ext, property); | ||
let orginalDescriptor = Object.getOwnPropertyDescriptor(proto, property); | ||
if (!orginalDescriptor) { | ||
// try to get descriptor from orginalPrototypes | ||
const orginalProto = orginalPrototypes[name]; | ||
if (orginalProto) { | ||
orginalDescriptor = Object.getOwnPropertyDescriptor(orginalProto, property); | ||
} | ||
} | ||
if (orginalDescriptor) { | ||
// don't override descriptor | ||
descriptor = Object.assign({}, descriptor); | ||
if (!descriptor.set && orginalDescriptor.set) { | ||
descriptor.set = orginalDescriptor.set; | ||
} | ||
if (!descriptor.get && orginalDescriptor.get) { | ||
descriptor.get = orginalDescriptor.get; | ||
} | ||
} | ||
Object.defineProperty(proto, property, descriptor); | ||
@@ -102,0 +127,0 @@ mergeRecord.set(property, filepath); |
{ | ||
"name": "egg-core", | ||
"version": "3.2.0", | ||
"version": "3.2.1", | ||
"description": "A core Pluggable framework based on koa", | ||
@@ -5,0 +5,0 @@ "main": "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
81911
2166