Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ready-callback

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ready-callback

Launch server after all async task ready

  • 4.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
22K
decreased by-6.32%
Maintainers
2
Weekly downloads
 
Created
Source

ready-callback

NPM version CI Test coverage npm download

Launch server after all async task ready


Install

$ npm install ready-callback

Usage

Note: ready-callback is using class, so you should use node>=2

var koa = require('koa');
var ready = require('ready-callback')();
var app = koa();
ready.mixin(app);

// register a service
var done = app.readyCallback('service');
serviceLaunch(done);

// callback will be fired after all service launched
app.ready(function() {
  app.listen();
});

Error Handle

If task is called with error, error event will be emit, ready will never be called.

// register a service that will emit error
var done = app.readyCallback('service');
serviceLaunch(function(err) {
  done(err);
});

// listen error event
app.on('error', function(err) {
  // catch error
});

Weak Dependency

If you set a task weak dependency, task will be done without emit error.

var done = app.readyCallback('service', {isWeakDep: true});
serviceLaunch(function(err) {
  done(err);
});

// will be ready
app.ready(function() {
  app.listen();
});

app.on('error', function(err) {
  // never be called
});

You can also set for all ready-callback

var ready = require('ready-callback')({isWeakDep: true});

Ready Status

You can get status every callback end.

app.on('ready_stat', function(data) {
  console.log(data.id); // id of the ended task
  console.log(data.remain); // tasks waiting to be ended
});

Timeout

You can set timeout when a task run a long time.

var ready = require('ready-callback')({timeout: 1000});
ready.mixin(app);
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.readyCallback('service');
serviceLaunch(function() {
  // run a long time
  done();
});

You can also set timeout for every task

ready.mixin(app);
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.readyCallback('service1', {timeout: 1000});
serviceLaunch(done);

lazyStart

You can set a ready-callback object to lazyStart. It will not check ready status immediately, and should start manualy to check ready status.

var ready = require('ready-callback')({ lazyStart: true });
yield sleep(1);
// ready obj is not ready
ready.start();
yield sleep(1);
// ready obj is ready now

LISENCE

Copyright (c) 2015 popomore. Licensed under the MIT license.

Keywords

FAQs

Package last updated on 11 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc