From 5a3dc36d770995e16ccbd8daf643045c14f98059 Mon Sep 17 00:00:00 2001 From: Antonio Laguna Date: Wed, 1 Nov 2017 12:17:02 +0100 Subject: [PATCH 1/5] Updating libraries --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 3bbdfa3..010f1d7 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,16 @@ }, "homepage": "https://github.com/firstandthird/hapi-browser-log#readme", "devDependencies": { - "eslint": "^3.8.1", - "eslint-config-firstandthird": "^3.0.2", - "eslint-plugin-import": "2.2.0", + "eslint": "^4.10.0", + "eslint-config-firstandthird": "^4.0.1", + "eslint-plugin-import": "^2.8.0", "handlebars": "^4.0.5", "hapi": "^16.0.2", "inert": "^4.0.2", "vision": "^4.1.0" }, "dependencies": { - "hoek": "^4.1.0", + "hoek": "^5.0.1", "useragent": "^2.2.1" }, "eslintConfig": { From f89fe27173d1b060a62465236994779a4d9e1409 Mon Sep 17 00:00:00 2001 From: Antonio Laguna Date: Wed, 1 Nov 2017 12:17:46 +0100 Subject: [PATCH 2/5] Refactor ignore rules to account for more rules --- lib/index.js | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/lib/index.js b/lib/index.js index 3c838a0..ec0ddbb 100644 --- a/lib/index.js +++ b/lib/index.js @@ -11,27 +11,20 @@ const defaults = { exports.register = function(server, options, next) { let settings = Hoek.clone(options); settings = Hoek.applyToDefaults(defaults, settings); - let filter = () => true; + const ignoreRules = []; + const filter = data => ignoreRules.some(f => f(data)); if (settings.ignore && Array.isArray(settings.ignore) && settings.ignore.length) { - filter = data => { - let isLoggable = true; - - const checkIgnore = (ignore, value) => - Object.keys(ignore).some(key => { - const regexp = new RegExp(ignore[key]); - - return regexp.exec(value[key]) !== null; - }); - - for (let i = 0, len = settings.ignore.length; i < len && isLoggable; i++) { - isLoggable = !checkIgnore(settings.ignore[i], data); - } + settings.ignore.forEach(ignore => { + ignoreRules.push(value => Object.keys(ignore).some(key => { + const regexp = new RegExp(ignore[key]); + return regexp.exec(value[key]) !== null; + })); + }); + } - return isLoggable; - }; } server.route({ From 0454e8af777bd8ef58b517f3e65309aa0a8da732 Mon Sep 17 00:00:00 2001 From: Antonio Laguna Date: Wed, 1 Nov 2017 12:17:52 +0100 Subject: [PATCH 3/5] Ignoring files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3c3629e..22d59e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ node_modules +.DS_Store +.idea From 8db08cd169fe15ecf7461085e57c89863e846acf Mon Sep 17 00:00:00 2001 From: Antonio Laguna Date: Wed, 1 Nov 2017 12:18:12 +0100 Subject: [PATCH 4/5] Adding a way to ignore empty keys --- lib/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/index.js b/lib/index.js index ec0ddbb..e42c632 100644 --- a/lib/index.js +++ b/lib/index.js @@ -25,6 +25,14 @@ exports.register = function(server, options, next) { }); } + if (settings.ignoreIfEmpty && + Array.isArray(settings.ignoreIfEmpty) && + settings.ignoreIfEmpty.length) { + ignoreRules.push( + value => settings.ignoreIfEmpty.some( + key => typeof value[key] === 'undefined' + ) + ); } server.route({ From 410db39ac55f41d1457f307223190abe0fb5f29d Mon Sep 17 00:00:00 2001 From: Antonio Laguna Date: Wed, 1 Nov 2017 12:26:33 +0100 Subject: [PATCH 5/5] Fixing ignore rule --- lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/index.js b/lib/index.js index e42c632..3348f41 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,7 +12,7 @@ exports.register = function(server, options, next) { let settings = Hoek.clone(options); settings = Hoek.applyToDefaults(defaults, settings); const ignoreRules = []; - const filter = data => ignoreRules.some(f => f(data)); + const filter = data => !ignoreRules.some(f => f(data)); if (settings.ignore && Array.isArray(settings.ignore) && @@ -48,6 +48,7 @@ exports.register = function(server, options, next) { if (data.userAgent) { data.browser = userAgentLib.parse(data.userAgent).toString(); } + if (filter(data)) { request.server.log(tags, { data