npm stats
  • Search
  • About
  • Repo
  • Sponsor
  • more
    • Search
    • About
    • Repo
    • Sponsor

Made by Antonio Ramirez

flipover

0.17.1

@benng

npmHomeRepoSnykSocket
Downloads:437
$ npm install flipover
DailyWeeklyMonthlyYearly

flipover

TCP server and deployment system that flips from one deployment to another.

// server.js
var flipover = require('../')
  , childport = require('childport')
  ;

function run (deploy, cb) {
  function finish (e) {
    cb(e, p)
  }
  var p = childport.cp(deploy.port, finish).spawn('node', [__dirname+'/child.js'])
  deploy.outputProcess(p)
}

function test (deploy, cb) {
  request('http://localhost:'+deploy.port+'/test', function (e, resp, body) {
    if (e) return cb(e)
    if (resp.statusCode !== 200) return cb(new Error('statusCode is not 200', resp.statusCode))
  })
}

flipover(run, test).listen(8080, 7171)
var http = require('http')
  , childport = require('childport')
  ;

childport.listen(http.createServer(function (req, resp) {
  resp.statusCode = 200
  resp.end('ok')
}))

deploy.port

Port to listen on. Callbacks for new deployments must not be resolved until the server is listening on this port.

flipover(function (deploy, cb) {}, [function test (deploy, cb) {}])

Returns a flipover server.

Requires a function for you to write your deployment code. This function takes two arguments: a Deploy instance and a callback which takes two arguments: error and an instance of child_process.ChildProcess which will be monitored and killed if need be.

Optionally you can also pass a test function which is used to validate the server is working and test it periodically.

FlipOver.listen(serverPort, adminPort, cb)

Listen.