Skip to content

Commit

Permalink
replace middleware util with cjs-sync-hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
Akamaozu committed Dec 28, 2017
1 parent 3b5d75e commit 1e17be5
Show file tree
Hide file tree
Showing 15 changed files with 33 additions and 89 deletions.
6 changes: 6 additions & 0 deletions lib/modules/supervisor/hook/index.js
@@ -0,0 +1,6 @@
var hooks = require('cjs-sync-hooks');

module.exports = function( supervisor, config ){

supervisor.hook = hooks();
}
Expand Up @@ -2,7 +2,7 @@ var merge = require('merge-objects');

module.exports = function( supervisor, config ){

supervisor.middleware.add( 'citizen-registration', function( citizen ){
supervisor.hook.add( 'citizen-registration', 'setup-mail-module', function( citizen ){

citizen.mail = {};
citizen.mail.inbox = [];
Expand All @@ -11,7 +11,6 @@ module.exports = function( supervisor, config ){
function send_mail( settings, msg ){

if( !msg ){

msg = settings;
settings = {};
}
Expand Down
3 changes: 1 addition & 2 deletions lib/modules/supervisor/mail/receive-mail-from-citizen.js
@@ -1,9 +1,8 @@
module.exports = function( supervisor, config ){

supervisor.middleware.add( 'citizen-starting', function( citizen ){
supervisor.hook.add( 'citizen-starting', 'notify-when-citizen-mail-is-received', function( citizen ){

citizen.ref.on( 'message', function( envelope ){

if( Object.prototype.toString.call( envelope ) !== '[object Object]' ) return;
if( !envelope.hasOwnProperty( 'type' ) ) return;
if( envelope.type !== 'mail' ) return;
Expand Down
4 changes: 0 additions & 4 deletions lib/modules/supervisor/middleware.js

This file was deleted.

File renamed without changes.
@@ -1,6 +1,6 @@
module.exports = function( supervisor, config ){

supervisor.middleware.add( 'citizen-starting', function( citizen ){
supervisor.hook.add( 'citizen-starting', 'setup-signal-module', function( citizen ){

citizen.signal = {};
citizen.signal.send = send_signal;
Expand Down
3 changes: 1 addition & 2 deletions lib/modules/supervisor/signal/receive-signal-from-citizen.js
@@ -1,9 +1,8 @@
module.exports = function( supervisor, config ){

supervisor.middleware.add( 'citizen-starting', function( citizen ){
supervisor.hook.add( 'citizen-starting', 'notify-when-signal-is-received', function( citizen ){

citizen.ref.on( 'message', function( envelope ){

if( Object.prototype.toString.call( envelope ) !== '[object Object]' ) return;
if( !envelope.hasOwnProperty( 'type' ) ) return;
if( envelope.type !== 'signal' ) return;
Expand Down
@@ -1,19 +1,17 @@
module.exports = function( supervisor ){

supervisor.middleware.add( 'citizen-starting', function( citizen ){
supervisor.hook.add( 'citizen-starting', 'notify-on-exit', function( citizen ){

citizen.ref.on( 'close', function( code ){

delete citizen.ref;

if( code === 0 ){

if( code === 0 ){
supervisor.noticeboard.notify( 'citizen-shutdown', { name: citizen.name });
supervisor.noticeboard.notify( citizen.name + '-shutdown' );
}

else{

supervisor.noticeboard.notify( 'citizen-crashed', { name: citizen.name });
supervisor.noticeboard.notify( citizen.name + '-crashed' );
}
Expand Down
29 changes: 14 additions & 15 deletions lib/modules/supervisor/supervision/notify-on-output.js
@@ -1,23 +1,22 @@
module.exports = function( supervisor ){

supervisor.middleware.add( 'citizen-starting', function( citizen ){
supervisor.hook.add( 'citizen-starting', 'notify-on-stdout', function( citizen ){

// mount stdout
citizen.ref.stdout.on( 'data', function( data ){
citizen.ref.stdout.on( 'data', function( data ){
var output = data.toString();

var output = data.toString();

supervisor.noticeboard.notify( 'citizen-output', { name: citizen.name, output: output });
supervisor.noticeboard.notify( citizen.name + '-output', { output: output });
});

// mount stderr
citizen.ref.stderr.on( 'data', function( data ){
supervisor.noticeboard.notify( 'citizen-output', { name: citizen.name, output: output });
supervisor.noticeboard.notify( citizen.name + '-output', { output: output });
});
});

supervisor.hook.add( 'citizen-starting', 'notify-on-stderr', function( citizen ){

var error = data.toString();
citizen.ref.stderr.on( 'data', function( data ){
var error = data.toString();

supervisor.noticeboard.notify( 'citizen-error', { name: citizen.name, error: error });
supervisor.noticeboard.notify( citizen.name + '-error', { error: error });
});
supervisor.noticeboard.notify( 'citizen-error', { name: citizen.name, error: error });
supervisor.noticeboard.notify( citizen.name + '-error', { error: error });
});
});
}
2 changes: 1 addition & 1 deletion lib/modules/supervisor/supervision/register-citizen.js
Expand Up @@ -31,7 +31,7 @@ module.exports = function( supervisor, citizens, config ){
};

// customize citizen instance
citizens[ name ] = supervisor.middleware.run( 'citizen-registration', citizens[ name ] );
citizens[ name ] = supervisor.hook.run( 'citizen-registration', citizens[ name ] );

// registration complete
supervisor.noticeboard.notify( 'citizen-registered', { name: name });
Expand Down
2 changes: 1 addition & 1 deletion lib/modules/supervisor/supervision/start-citizen.js
Expand Up @@ -27,7 +27,7 @@ module.exports = function( supervisor, citizens, config ){
}
});

citizen = supervisor.middleware.run( 'citizen-starting', citizen );
citizen = supervisor.hook.run( 'citizen-starting', citizen );

supervisor.noticeboard.notify( name + '-started' );
supervisor.noticeboard.notify( 'citizen-started', { name: name });
Expand Down
2 changes: 1 addition & 1 deletion lib/supervisor.js
Expand Up @@ -8,8 +8,8 @@ function supe( config ){
supervisor.use = load_module;

// load core modules
supervisor.use( require( './modules/supervisor/hook' ) );
supervisor.use( require( './modules/supervisor/noticeboard' ) );
supervisor.use( require( './modules/supervisor/middleware' ) );
supervisor.use( require( './modules/supervisor/supervision' ) );
supervisor.use( require( './modules/supervisor/signal' ) );
supervisor.use( require( './modules/supervisor/mail' ) );
Expand Down
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -5,6 +5,7 @@
"main": "index.js",
"dependencies": {
"cjs-noticeboard": "0.0.7",
"cjs-sync-hooks": "^0.1.1",
"merge-objects": "^1.0.5",
"require-directory": "^2.1.1"
},
Expand Down
6 changes: 3 additions & 3 deletions test/test.js
Expand Up @@ -14,7 +14,7 @@ describe('Supe Test Suite', function(){
describe('Supervisor (Instantiated Supe) Properties', function(){

var supervisor = supe(),
expected_properties = [ 'is_registered', 'register', 'start', 'get', 'use', 'noticeboard', 'middleware' ];
expected_properties = [ 'is_registered', 'register', 'start', 'get', 'use', 'noticeboard', 'hook' ];

it('has its own "is_registered" function', function(){
assert.equal( supervisor.hasOwnProperty('is_registered') && typeof supervisor.is_registered === 'function', true, 'didn\'t instantiate with its own "is_registered" function');
Expand All @@ -40,8 +40,8 @@ describe('Supe Test Suite', function(){
assert.equal( supervisor.hasOwnProperty('noticeboard') && Object.prototype.toString.call( supervisor.noticeboard ) === '[object Object]', true, 'didn\'t instantiate with its own "noticeboard" object');
});

it('has its own "middleware" object', function(){
assert.equal( supervisor.hasOwnProperty('middleware') && Object.prototype.toString.call( supervisor.middleware ) === '[object Object]', true, 'didn\'t instantiate with its own "noticeboard" object');
it('has its own "hook" object', function(){
assert.equal( supervisor.hasOwnProperty('hook') && Object.prototype.toString.call( supervisor.hook ) === '[object Object]', true, 'didn\'t instantiate with its own "noticeboard" object');
});

it('has no unexpected properties', function(){
Expand Down
53 changes: 0 additions & 53 deletions utils/middleware.js

This file was deleted.

0 comments on commit 1e17be5

Please sign in to comment.