express-hooks
Advanced tools
Comparing version 1.0.0 to 1.0.2
68
index.js
@@ -10,26 +10,41 @@ 'use strict'; | ||
let mainModulePath = path.join(path.dirname(module.parent.filename), 'package.json'); | ||
const HOOK_PREFIX = 'express-hook'; | ||
const MAIN_MODULE_FOLDER = path.dirname(module.parent.filename); | ||
let mainModulePath = path.join(MAIN_MODULE_FOLDER, 'package.json'); | ||
let currentPackage = require(mainModulePath); | ||
const HOOK_PREFIX = 'express-hook'; | ||
let hooks = {}; | ||
if ('dependencies' in currentPackage) { | ||
let HOOKS = {}; | ||
for (let depName in currentPackage.dependencies) { | ||
if (depName.indexOf(HOOK_PREFIX) === 0) { | ||
function addHook(hookName, realHookInfo) { | ||
let hookInfo = { | ||
name : hookName, | ||
hooks : { | ||
let hookName = depName.replace(HOOK_PREFIX, '').replace(/^[-]+/, ''); | ||
let hookInfo = module.parent.require(depName); | ||
} | ||
}; | ||
if (utils.isFunction(hookInfo)) { | ||
hookInfo = { | ||
run : hookInfo | ||
} | ||
} | ||
if (utils.isFunction(realHookInfo)) { | ||
hookInfo.hooks.run = realHookInfo; | ||
} | ||
if (utils.isObject(hookInfo)) { | ||
hookInfo = utils.extendSettings(realHookInfo, hookInfo); | ||
HOOKS[hookName] = hookInfo; | ||
} | ||
} | ||
if (utils.isObject(hookInfo)) hooks[hookName] = hookInfo; | ||
if ('dependencies' in currentPackage) { | ||
for (let depName in currentPackage.dependencies) { | ||
if (depName.indexOf(HOOK_PREFIX) === 0) { | ||
let hookName = depName.replace(HOOK_PREFIX, '').replace(/^[-]+/, ''); | ||
let hookInfo = module.parent.require(depName); | ||
addHook(hookName, hookInfo); | ||
} | ||
@@ -41,2 +56,5 @@ } | ||
/** | ||
@@ -61,12 +79,16 @@ * Hooks | ||
if (app) app.hooks = hooks; | ||
if (app) app.hooks = HOOKS; | ||
console.log(HOOKS); | ||
let promiseStack = []; | ||
for (let hookName in hooks) { | ||
if('run' in hooks[hookName] && utils.isFunction(hooks[hookName].run)) { | ||
let localHookSettings = {}; | ||
promiseStack.push(hooks[hookName].run(app, localHookSettings, globalSettings)); | ||
for (let hookName in HOOKS) { | ||
if('hooks' in HOOKS[hookName] && 'run' in HOOKS[hookName].hooks && utils.isFunction(HOOKS[hookName].hooks.run)) { | ||
let hookInfo = HOOKS[hookName]; | ||
promiseStack.push(HOOKS[hookName].hooks.run.apply(hookInfo, [app, globalSettings])); | ||
} | ||
} | ||
Promise.all(promiseStack).then(result => AppEvents.trigger('ready'), error => AppEvents.trigger('error')); | ||
@@ -91,2 +113,10 @@ } | ||
}); | ||
} | ||
module.exports.addCustomHook = function (hookPath) { | ||
let hookInfo = module.parent.require(hookPath); | ||
let hoookName = path.basename(hookPath); | ||
addHook(hoookName, hookInfo); | ||
} |
{ | ||
"name": "express-hooks", | ||
"version": "1.0.0", | ||
"version": "1.0.2", | ||
"description": "Hooks for Express defined in npm modlues", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
var express = require('express'); | ||
@@ -20,4 +22,3 @@ var path = require('path'); | ||
hookExpress.addCustomHook('./test_custom_hook'); | ||
hookExpress(app, {}); | ||
@@ -24,0 +25,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11511
16
225