From 871591b92da95b4d9a72c2f005ea35a21cbe1428 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 28 Jul 2013 14:24:34 -0400 Subject: [PATCH] sanity check if a plugin's method was not found on hook call --- src/plugins.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins.js b/src/plugins.js index cc52ffa017..3340e69f97 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -102,7 +102,15 @@ var fs = require('fs'), break; case 'action': async.each(hookList, function(hookObj) { - _self.libraries[hookObj[0]][hookObj[1]].apply(_self.libraries[hookObj[0]], args); + if ( + _self.libraries[hookObj[0]] && + _self.libraries[hookObj[0]][hookObj[1]] && + typeof _self.libraries[hookObj[0]][hookObj[1]] === 'function' + ) { + _self.libraries[hookObj[0]][hookObj[1]].apply(_self.libraries[hookObj[0]], args); + } else { + if (global.env === 'development') console.log('Info: [plugins] Expected method \'' + hookObj[1] + '\' in plugin \'' + hookObj[0] + '\' not found, skipping.'); + } }); break; default: