clout-js
Advanced tools
Comparing version 2.0.0-beta.4 to 2.0.0-beta.5
@@ -145,2 +145,4 @@ /*! | ||
}); | ||
this.initialized = true; | ||
})) | ||
@@ -170,2 +172,3 @@ .catch((err) => console.error(err)); | ||
debug('registerHook:event=%s:fn:priority=%s', event, priority); | ||
if (!this.hooks.hasOwnProperty(event)) { | ||
@@ -178,3 +181,3 @@ throw new Error('Invalid Hook Event'); | ||
// find existing, override | ||
if (override === true) { | ||
if (override === true) { | ||
debug('override'); | ||
@@ -205,2 +208,3 @@ for (var i = 0, l = this.hooks[event].length; i < l; ++i) { | ||
} | ||
debug('push hook (lowest priority yet)'); | ||
@@ -223,9 +227,13 @@ return this.hooks[event].push(fn); | ||
async.each(files, (file, next) => { | ||
var hooks = require(file); | ||
debug('loading hooks from file: %s', String(file)); | ||
var keys = Object.keys(hooks); | ||
let hooks = require(file); | ||
let keys = Object.keys(hooks); | ||
keys.forEach((key) => { | ||
let hook = hooks[key]; | ||
let args = []; | ||
debug('Loading hook: %s', key); | ||
var hook = hooks[key], | ||
args = []; | ||
// create args | ||
@@ -316,16 +324,22 @@ if (!hook.event || !hook.fn) { | ||
start() { | ||
this.emit('initialized'); | ||
if (!this.initialized) { | ||
return new Promise((resolve) => { | ||
setTimeout(() => resolve(this.start()), 100); | ||
}); | ||
} | ||
this.emit('start'); | ||
return new Promise((resolve, reject) => { | ||
process.nextTick(() => { | ||
async.eachLimit(this.hooks.start, 1, (hook, next) => { | ||
try { | ||
debug('executing', hook.name || hook._name, hook.group); | ||
let hookResponse = hook.apply(this, [next]); | ||
debug('executing', hook.name || hook._name, hook.group); | ||
let hookResponse = hook.apply(this, [next]); | ||
// support promises | ||
if (typeof hookResponse === 'object') { | ||
hookResponse.then(next, (err) => next(null, err)); | ||
} | ||
} catch (e) { console.error(e); } | ||
// support promises | ||
if (typeof hookResponse === 'object') { | ||
hookResponse.then(next, (err) => next(null, err)); | ||
} | ||
}, (err) => { | ||
@@ -362,9 +376,9 @@ if (err) { | ||
resp.success(payload); | ||
break; | ||
break; | ||
case '[object Undefined]': | ||
break; | ||
break; | ||
default: | ||
console.error('type not supported'); | ||
resp.error('response type is invalid'); | ||
break; | ||
break; | ||
} | ||
@@ -378,9 +392,9 @@ next(); | ||
resp.error(payload); | ||
break; | ||
break; | ||
case '[object Undefined]': | ||
break; | ||
break; | ||
default: | ||
console.error('type not supported'); | ||
resp.error('response type is invalid'); | ||
break; | ||
break; | ||
} | ||
@@ -387,0 +401,0 @@ next(); |
{ | ||
"name": "clout-js", | ||
"version": "2.0.0-beta.4", | ||
"version": "2.0.0-beta.5", | ||
"description": "Clean, simplistic, enterprise grade full-stack NodeJS framework", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
2707684
136
8836