Delay the grunt build chain with callbacks
This plugin requires Grunt >=0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-wait --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-wait');
In your project's Gruntfile, add a section named wait
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
wait: {
options: {
delay: 500
},
pause: {
options: {
before : function(options) {
console.log('pausing %dms', options.delay);
},
after: function() {
console.log('pause end');
}
}
},
random: {
options: {
delay: 10,
after: function() {
console.log('gamble');
return Math.random() < 0.05 ? false : true;
}
}
}
}
})
Type: number
Default value: 0
Wait duration in milliseconds.
Internaly uses setTimeout()
, the maximum delay is 2147483647 milliseconds (about 24 days).
Type: function(options)
Default value: null
Called before timer starts, with the options object as parameter.
- Return nothing (or
undefined
) to start the delay. - Return
true
to skip delay and proceed toafter()
and/or next grunt task. - Return
false
to skip delay and proceed to the next grunt task without callingafter()
. - Return a
string
to use as warning and fail grunt.
Type: function(options)
Default value: null
Called after timer ends, with the options object as parameter.
- Return nothing (or
undefined
) proceed to next grunt task. - Return a
number
to use as next delay and wait another round. - Return
true
to wait another round. - Return
false
to fail grunt. - Return a
string
to use as warning and fail grunt.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
See the CHANGELOG.