From 9e140039acbe3ea43e085832ea25fddff355b30b Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Sun, 26 Feb 2017 14:42:09 -0800 Subject: [PATCH] Factor out Body mixin --- src/body.js | 10 ++++++++++ src/request.js | 7 +------ src/response.js | 7 +------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/body.js b/src/body.js index 7cf2eb1..cf64852 100644 --- a/src/body.js +++ b/src/body.js @@ -121,6 +121,16 @@ Body.prototype = { }; +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + /** * Decode buffers into utf-8 string * diff --git a/src/request.js b/src/request.js index 9c53fec..dfadbf5 100644 --- a/src/request.js +++ b/src/request.js @@ -101,12 +101,7 @@ export default class Request { } } -for (const name of Object.getOwnPropertyNames(Body.prototype)) { - if (!(name in Request.prototype)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(Request.prototype, name, desc); - } -} +Body.mixIn(Request.prototype); Object.defineProperty(Request.prototype, Symbol.toStringTag, { value: 'RequestPrototype', diff --git a/src/response.js b/src/response.js index 6659bde..0735e3c 100644 --- a/src/response.js +++ b/src/response.js @@ -58,12 +58,7 @@ export default class Response { } } -for (const name of Object.getOwnPropertyNames(Body.prototype)) { - if (!(name in Response.prototype)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(Response.prototype, name, desc); - } -} +Body.mixIn(Response.prototype); Object.defineProperty(Response.prototype, Symbol.toStringTag, { value: 'ResponsePrototype',