From 60a591c8447c7bd03de48c56f73975a7f4eb44c1 Mon Sep 17 00:00:00 2001 From: Justus Fluegel Date: Sun, 22 Nov 2020 21:47:32 +0100 Subject: [PATCH 1/3] fix validate function --- lib/umfmessage.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/umfmessage.js b/lib/umfmessage.js index eec6f0f..964b1d9 100644 --- a/lib/umfmessage.js +++ b/lib/umfmessage.js @@ -127,11 +127,7 @@ class UMFMessage { * @return {boolean} response - returns true is valid otherwise false */ validate() { - if (!this.message.from || !this.message.to || !this.message.body) { - return false; - } else { - return true; - } + return this.message.from != null && this.message.from.trim() != "" && this.message.to != null && this.message.to.trim() != "" && this.message.body != null } } From 8de8f5370b51b73c0aa6ff06ae9ca9639b37dee7 Mon Sep 17 00:00:00 2001 From: Justus Fluegel Date: Sun, 22 Nov 2020 22:08:46 +0100 Subject: [PATCH 2/3] Fix all string checks --- lib/umfmessage.js | 74 ++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/lib/umfmessage.js b/lib/umfmessage.js index 964b1d9..2a7ac99 100644 --- a/lib/umfmessage.js +++ b/lib/umfmessage.js @@ -4,6 +4,8 @@ const uuid = require('uuid'); const crypto = require('crypto'); const UMF_VERSION = 'UMF/1.4.6'; +const isNotEmptyString = (string, checkContents = true) => string != null && ( !checkContents || string.trim() != "") + /** * @name UMFMessage * @summary UMF Message helper @@ -76,46 +78,46 @@ class UMFMessage { */ toShort() { let message = {}; - if (this.message['to']) { + if (isNotEmptyString(this.message['to'])) { message['to'] = this.message['to']; } - if (this.message['from']) { + if (isNotEmptyString(this.message['from'])) { message['frm'] = this.message['from']; } - if (this.message['headers']) { + if (this.message['headers'] != null) { message['hdr'] = this.message['headers']; } - if (this.message['mid']) { + if (isNotEmptyString(this.message['mid'])) { message['mid'] = this.message['mid']; } - if (this.message['rmid']) { + if (isNotEmptyString(this.message['rmid'])) { message['rmid'] = this.message['rmid']; } - if (this.message['signature']) { + if (isNotEmptyString(this.message['signature'])) { message['sig'] = this.message['signature']; } - if (this.message['timeout']) { + if (isNotEmptyString(this.message['timeout'])) { message['tmo'] = this.message['timeout']; } - if (this.message['timestamp']) { + if (isNotEmptyString(this.message['timestamp'])) { message['ts'] = this.message['timestamp']; } - if (this.message['type']) { + if (isNotEmptyString(this.message['type'])) { message['typ'] = this.message['type']; } - if (this.message['version']) { + if (isNotEmptyString(this.message['version'])) { message['ver'] = this.message['version']; } - if (this.message['via']) { + if (isNotEmptyString(this.message['via'])) { message['via'] = this.message['via']; } - if (this.message['forward']) { + if (isNotEmptyString(this.message['forward'])) { message['fwd'] = this.message['forward']; } - if (this.message['body']) { + if (this.message['body']!= null) { message['bdy'] = this.message['body']; } - if (this.message['authorization']) { + if (isNotEmptyString(this.message['authorization'])) { message['aut'] = this.message['authorization']; } return message; @@ -148,41 +150,41 @@ function createMessageInstance(message) { return true; } }); - if (message.to) { + if (isNotEmptyString(message.to)) { proxy.to = message.to; } - if (message.from || message.frm) { - proxy.from = message.from || message.frm; + if (isNotEmptyString(message.from ?? message.frm)) { + proxy.from = message.from ?? message.frm; } - if (message.headers || message.hdr) { - proxy.headers = message.headers || message.hdr; + if ((message.headers ?? message.hdr) != null) { + proxy.headers = message.headers ?? message.hdr; } - proxy.mid = message.mid || proxy.createMessageID(); - if (message.rmid) { + proxy.mid = message.mid ?? proxy.createMessageID(); + if (isNotEmptyString(message.rmid)) { proxy.rmid = message.rmid; } - if (message.signature || message.sig) { - proxy.signature = message.signature || message.sig; + if (isNotEmptyString(message.signature ?? message.sig)) { + proxy.signature = message.signature ?? message.sig; } - if (message.timeout || message.tmo) { - proxy.timeout = message.timeout || message.tmo; + if (isNotEmptyString(message.timeout ?? message.tmo)) { + proxy.timeout = message.timeout ?? message.tmo; } - proxy.timestamp = message.timestamp || message.ts || proxy.getTimeStamp(); - if (message.type || message.typ) { - proxy.type = message.type || message.typ; + proxy.timestamp = message.timestamp ?? message.ts ?? proxy.getTimeStamp(); + if (isNotEmptyString(message.type ?? message.typ)) { + proxy.type = message.type ?? message.typ; } - proxy.version = message.version || message.ver || UMF_VERSION; - if (message.via) { + proxy.version = message.version ?? message.ver ?? UMF_VERSION; + if (isNotEmptyString(message.via)) { proxy.via = message.via; } - if (message.forward || message.fwd) { - proxy.forward = message.forward || message.fwd; + if (isNotEmptyString(message.forward ?? message.fwd)) { + proxy.forward = message.forward ?? message.fwd; } - if (message.body || message.bdy) { - proxy.body = message.body || message.bdy; + if ((message.body ?? message.bdy) != null) { + proxy.body = message.body ?? message.bdy; } - if (message.authorization || message.aut) { - proxy.authorization = message.authorization || message.aut; + if (isNotEmptyString(message.authorization ?? message.aut)) { + proxy.authorization = message.authorization ?? message.aut; } return proxy; } From 9579416aea54a060dade6146294cb3c2c093e90d Mon Sep 17 00:00:00 2001 From: Justus Fluegel Date: Mon, 23 Nov 2020 16:07:51 +0100 Subject: [PATCH 3/3] Remove use of nullish-coalescing-operator, change strings to singlequote --- lib/umfmessage.js | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/lib/umfmessage.js b/lib/umfmessage.js index 2a7ac99..fd75f88 100644 --- a/lib/umfmessage.js +++ b/lib/umfmessage.js @@ -4,7 +4,10 @@ const uuid = require('uuid'); const crypto = require('crypto'); const UMF_VERSION = 'UMF/1.4.6'; -const isNotEmptyString = (string, checkContents = true) => string != null && ( !checkContents || string.trim() != "") +const isNotEmptyString = (string, checkContents = true) => string != null && (!checkContents || string.trim() != ''); + +// Works like the es2020 ?? operator +const nCoalescg = (...args) => args.find((el) => el != null && el != undefined); /** * @name UMFMessage @@ -114,7 +117,7 @@ class UMFMessage { if (isNotEmptyString(this.message['forward'])) { message['fwd'] = this.message['forward']; } - if (this.message['body']!= null) { + if (this.message['body'] != null) { message['bdy'] = this.message['body']; } if (isNotEmptyString(this.message['authorization'])) { @@ -129,7 +132,7 @@ class UMFMessage { * @return {boolean} response - returns true is valid otherwise false */ validate() { - return this.message.from != null && this.message.from.trim() != "" && this.message.to != null && this.message.to.trim() != "" && this.message.body != null + return isNotEmptyString(this.message.from) && isNotEmptyString(this.message.to) && this.message.body != null; } } @@ -153,38 +156,38 @@ function createMessageInstance(message) { if (isNotEmptyString(message.to)) { proxy.to = message.to; } - if (isNotEmptyString(message.from ?? message.frm)) { - proxy.from = message.from ?? message.frm; + if (isNotEmptyString(nCoalescg(message.from, message.frm))) { + proxy.from = nCoalescg(message.from, message.frm); } - if ((message.headers ?? message.hdr) != null) { - proxy.headers = message.headers ?? message.hdr; + if (nCoalescg(message.headers, message.hdr) != null) { + proxy.headers = nCoalescg(message.headers, message.hdr); } - proxy.mid = message.mid ?? proxy.createMessageID(); + proxy.mid = nCoalescg(message.mid, proxy.createMessageID()); if (isNotEmptyString(message.rmid)) { proxy.rmid = message.rmid; } - if (isNotEmptyString(message.signature ?? message.sig)) { - proxy.signature = message.signature ?? message.sig; + if (isNotEmptyString(nCoalescg(message.signature, message.sig))) { + proxy.signature = nCoalescg(message.signature, message.sig); } - if (isNotEmptyString(message.timeout ?? message.tmo)) { - proxy.timeout = message.timeout ?? message.tmo; + if (isNotEmptyString(nCoalescg(message.timeout, message.tmo))) { + proxy.timeout = nCoalescg(message.timeout, message.tmo); } - proxy.timestamp = message.timestamp ?? message.ts ?? proxy.getTimeStamp(); - if (isNotEmptyString(message.type ?? message.typ)) { - proxy.type = message.type ?? message.typ; + proxy.timestamp = nCoalescg(message.timestamp, message.ts, proxy.getTimeStamp()); + if (isNotEmptyString(nCoalescg(message.type, message.typ))) { + proxy.type = nCoalescg(message.type, message.typ); } - proxy.version = message.version ?? message.ver ?? UMF_VERSION; + proxy.version = nCoalescg(message.version, message.ver, UMF_VERSION); if (isNotEmptyString(message.via)) { proxy.via = message.via; } - if (isNotEmptyString(message.forward ?? message.fwd)) { - proxy.forward = message.forward ?? message.fwd; + if (isNotEmptyString(nCoalescg(message.forward, message.fwd))) { + proxy.forward = nCoalescg(message.forward, message.fwd); } - if ((message.body ?? message.bdy) != null) { - proxy.body = message.body ?? message.bdy; + if (nCoalescg(message.body, message.bdy) != null) { + proxy.body = nCoalescg(message.body, message.bdy); } - if (isNotEmptyString(message.authorization ?? message.aut)) { - proxy.authorization = message.authorization ?? message.aut; + if (isNotEmptyString(nCoalescg(message.authorization, message.aut))) { + proxy.authorization = nCoalescg(message.authorization, message.aut); } return proxy; }