UNPKG

red-ampp

Version:

developer tool for running micro services behind a redbird proxy

55 lines (46 loc) 1.85 kB
#!/usr/bin/env node // listen for new messages process.on('message', async message => { if( typeof message === 'object' ) { if( typeof message.type !== 'undefined' && message.type === 'register' ) { let folder = message.folder; let destination = message.destination; let responderIdentifier = message.responderIdentifier; addRegistration( responderIdentifier, folder, destination ); return; } if( typeof message.type !== 'undefined' && message.type === 'unregister' ) { let folder = message.folder; let destination = message.destination; let responderIdentifier = message.responderIdentifier; removeRegistration( responderIdentifier, folder, destination ); return; } log('it is an object', JSON.stringify( message ) ); return; } log('it is not an object'); }); // basic logging back to the parent function log( ...message ) { process.send({ output: message.join(' ') }); } function addRegistration( responderIdentifier, folder, destination ) { let returncode = proxy.register( 'localhost' + folder, destination ); process.send({ type: 'registration_done', responderIdentifier, folder, success: returncode ? true : false }); } function removeRegistration( responderIdentifier, folder, destination ) { let returncode = proxy.unregister( 'localhost' + folder, destination ); process.send( { type: 'unregistration_done', responderIdentifier, folder, success: returncode ? true : false }); } // start the redbird proxy var proxy = require( 'redbird' )( { port: 80, resolvers: [ function( host, url ) { process.send({ type: 'countRequest', host, url }); return proxy._defaultResolver( host, url ); } ] } ); process.send({ type: 'processReady', PID: process.pid });