{"_id":"phase-control","_rev":"27-91f5a88cee02393c109977a204a8b435","name":"phase-control","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.8":{"name":"phase-control","version":"0.1.8","dependencies":{"callsite":"^1.0.0","deasync":"0.0.10","node.extend":"^1.1.3"},"devDependencies":{"jasmine-node":"^1.14.5"},"scripts":{"test":"jasmine-node ./test/ --autotest --watch ./"},"main":"lib/phase-control","gitHead":"259ba364a5d2c6373fada700a93d74bd0b23d63f","description":"Phase-control allows to split application initialization to *phases*. These phases will be executed sequentially (asynchronous phases will be run as synchronous).","_id":"phase-control@0.1.8","_shasum":"3c8e5c0d4a327bba2ec77f01e8e96980d57359e4","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"all_bear","email":"ol.birjukov@gmail.com"},"maintainers":[{"name":"all_bear","email":"ol.birjukov@gmail.com"}],"dist":{"shasum":"3c8e5c0d4a327bba2ec77f01e8e96980d57359e4","tarball":"https://registry.npmjs.org/phase-control/-/phase-control-0.1.8.tgz","integrity":"sha512-URx1DJYLSGpELGF0OTiLyQ76HAsSpzhdsllERBRdC2psXRIC7ELVnrVsIjr97d1pY9OPOEyROAF1VGPZBZ+COg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGY/lyObHY0QIP8cwdJStxZ25DjTK/bv9J6SQcpRzjhCAiBKGQJS279C294mwZjJNlOx5IbkURKbcAHTP7g/hxohww=="}]}},"0.1.9":{"name":"phase-control","version":"0.1.9","dependencies":{"callsite":"^1.0.0","deasync":"0.0.10","node.extend":"^1.1.3"},"devDependencies":{"jasmine-node":"^1.14.5"},"keywords":["init","boot","express","startup"],"author":{"name":"Oleh Birjukov","email":"ol.birjukov@gmail.com"},"scripts":{"test":"jasmine-node ./test/ --autotest --watch ./"},"main":"lib/phase-control","gitHead":"68b9caa4443ffd97bf5fff6c28d0ab99d6c986db","description":"Phase-control allows to split application initialization to *phases*. These phases will be executed sequentially (asynchronous phases will be run as synchronous).","_id":"phase-control@0.1.9","_shasum":"f92a1d32e99d7f35a721c15c4ba812d89216b214","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"all_bear","email":"ol.birjukov@gmail.com"},"maintainers":[{"name":"all_bear","email":"ol.birjukov@gmail.com"}],"dist":{"shasum":"f92a1d32e99d7f35a721c15c4ba812d89216b214","tarball":"https://registry.npmjs.org/phase-control/-/phase-control-0.1.9.tgz","integrity":"sha512-AX98ktR9c0b7XPk+xFYT98mdJm1YVCf73OWNpbHT6+4HSCeoLa8vvK1gtXMgG2DNIzNzCa5DmgG01B6Zl6TduQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDK/y5d9LHfRn+Zkcsxs7BPQiMnidth1m6NT8zfqffRlAiEA2tF6rYjYA3rav1IfY+A+Bvurkg4iqvNd/2G/l1MSeCw="}]}},"0.1.10":{"name":"phase-control","version":"0.1.10","dependencies":{"callsite":"^1.0.0","deasync":">=0.0.10","node.extend":"^1.1.3"},"devDependencies":{"jasmine-node":"^1.14.5"},"keywords":["init","boot","express","startup"],"author":{"name":"Oleh Birjukov","email":"ol.birjukov@gmail.com"},"scripts":{"test":"jasmine-node ./test/ --autotest --watch ./"},"main":"lib/phase-control","gitHead":"91f4f323dc276f2bb37182ea969f4c969cbe26a3","description":"Phase-control allows to split application initialization to *phases*. These phases will be executed sequentially (asynchronous phases will be run as synchronous).","_id":"phase-control@0.1.10","_shasum":"7be65a7a8e577d3be1cf63a4dc815f865cff4ebb","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"all_bear","email":"ol.birjukov@gmail.com"},"dist":{"shasum":"7be65a7a8e577d3be1cf63a4dc815f865cff4ebb","tarball":"https://registry.npmjs.org/phase-control/-/phase-control-0.1.10.tgz","integrity":"sha512-X/aoQnGOGfKuVl4M+6f3nnAkOvi/EUkAZM1YPqX87YXlv4wH0COVslwv3ayl5lFCHFD1TXMZ73mNGEw+FN8B9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtKGrN30np6wnV+8icnpps+cFr2eGEcnV/YRzzTAAHfQIgDRj6AvJI66MpocfNfnC+uYs7cvRNzs8Z+8/F8dkiKMw="}]},"maintainers":[{"name":"all_bear","email":"ol.birjukov@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/phase-control-0.1.10.tgz_1483610223394_0.8070137470494956"}}},"readme":"# Phase-control\n\nPhase-control allows to split application initialization to *phases*.\nThese phases will be executed sequentially (asynchronous phases will be run as synchronous).\n\n## Install\n\n    $ npm install phase-control\n\n## Usage\n\nPhase-control is generally applicable to any Node.js application or application\nframework.  [Express](http://expressjs.com/) will be used below.\n\n#### Mixin Phase-control\n\nCreate a new application and mixin the phase-control module.\n\n```javascript\nvar express = require('express')\n  , phaseControl = require('phase-control');\n\nvar options = {\n    waitingTime: 5000,\n    logEnable: false\n}\nvar app = phaseControl(express(), options); //or var app = phaseControl(express()), in this way default options will be used.\n```\nDefault options:\n* waitingTime: 3000 - time in ms for asynchronous function execution.\n* logEnable: true.\n\n\nOnce mixed-in, the application will have function `app.phase(phaseName, path to file or path to directory or function)`.\n\n#### Register Phases\n\nAn application proceeds through a sequence of phases, in order to prepare\nitself to handle requests.  Modules need to be configured, databases need to be\nconnected, and routes need to be drawn.\n\nPhase-control packages phases for these common scenarios:\n\n```javascript\napp.phase('initialize','config/initializers'); //will work like phase with path to file for all files\napp.phase('init routers','routes.js'); //will require routes.js\n\n```\n\nroutes.js\n\n```javascript\nmodule.exports = function() {\n    //app used like this\n    this.use('/admin', admin);\n}\n\n```\n\nor routes.js may be asynchronous. In this way it will be run by phase-control like synchronous and next phase will wait until this is over.\n\n```javascript\nmodule.exports = function(done) { //callback name 'done' is mandatory\n    //app used like this\n    var self = this;\n\n    setTimeout(function() {\n        self.use('/admin', admin);\n    }, 300);\n}\n\n```\n\nCustom phases can be registered as well, and come in synchronous and\nasynchronous flavors:\n\n```\napp.phase('some phase', function() {\n  // synchronous phase\n});\n\napp.phase('some phase', function(done) { //callback name 'done' is mandatory\n  setTimeout(function() {\n    // asynchronous phase\n    done();\n  }, 1000);\n});\n```\n\nThis allows you to split off your initialization steps into separate, organized\nand reusable chunks of logic.\n\n## Tests\n\n    $ npm install\n    $ npm test\n\n## License\n\n[The MIT License](http://opensource.org/licenses/MIT)\n","maintainers":[{"name":"all_bear","email":"ol.birjukov@gmail.com"}],"time":{"modified":"2022-06-23T20:48:48.795Z","created":"2015-02-28T11:41:53.769Z","0.1.0":"2015-02-28T11:41:53.769Z","0.1.1":"2015-02-28T12:21:23.147Z","0.1.3":"2015-02-28T12:22:30.871Z","0.1.4":"2015-02-28T12:26:49.419Z","0.1.5":"2015-02-28T14:39:34.375Z","0.1.6":"2015-03-15T10:17:13.569Z","0.1.7":"2015-03-15T10:18:02.172Z","0.1.8":"2015-03-15T10:19:12.286Z","0.1.9":"2015-05-26T05:35:27.506Z","0.1.10":"2017-01-05T09:57:05.220Z"},"readmeFilename":"README.md","description":"Phase-control allows to split application initialization to *phases*. These phases will be executed sequentially (asynchronous phases will be run as synchronous).","keywords":["init","boot","express","startup"],"author":{"name":"Oleh Birjukov","email":"ol.birjukov@gmail.com"}}