From f1da7c677204c24efd62e2bdd16290a71f672557 Mon Sep 17 00:00:00 2001 From: Vitaly Tomilov Date: Thu, 24 May 2018 11:29:04 +0100 Subject: [PATCH] improving segments+params --- src/index.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 85376d5..ef12462 100644 --- a/src/index.js +++ b/src/index.js @@ -170,12 +170,30 @@ if (!this.password && isText(defaults.password)) { this.password = trim(defaults.password); } + // TODO: This needs more test coverage: if (!this.segments && Array.isArray(defaults.segments)) { - this.segments = defaults.segments; + var s = defaults.segments.filter(isText); + if (s.length) { + this.segments = s; + } } - // TODO: Default for parameters should allow merging logic. - if (!this.params && defaults.params && typeof defaults.params === 'object') { - this.params = defaults.params; + // TODO: This needs more test coverage: + if (defaults.params && typeof defaults.params === 'object') { + var keys = Object.keys(defaults.params); + if (keys.length) { + if (this.params) { + for (var a in defaults.params) { + if (!(a in this.params)) { + this.params[a] = defaults.params[a]; + } + } + } else { + this.params = {}; + for (var b in defaults.params) { + this.params[b] = defaults.params[b]; + } + } + } } if (this.port || this.hostname) { this.host = (this.hostname || '') + (this.port >= 0 ? (':' + this.port) : '');