https://github.com/imyelo/grunt-wait-server
make grunt wait for a server start
https://github.com/imyelo/grunt-wait-server
grunt-plugins wait
Last synced: 6 months ago
JSON representation
make grunt wait for a server start
- Host: GitHub
- URL: https://github.com/imyelo/grunt-wait-server
- Owner: imyelo
- License: mit
- Created: 2013-12-14T10:01:07.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2018-08-15T13:32:31.000Z (over 7 years ago)
- Last Synced: 2025-06-03T14:41:04.967Z (7 months ago)
- Topics: grunt-plugins, wait
- Language: JavaScript
- Size: 16.6 KB
- Stars: 5
- Watchers: 2
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# grunt-wait-server
> make grunt wait for server start
[](http://badge.fury.io/js/grunt-wait-server)
[](http://gruntjs.com/)
## Getting Started
This plugin requires Grunt `~0.4.2`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-wait-server --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-wait-server');
```
## The "waitServer" task
### Overview
In your project's Gruntfile, add a section named `waitServer` or `wait-server` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
waitServer: {
options: {
req: 'http://localhost:8080',
fail: function () {},
timeout: 10 * 1000,
isforce: false,
interval: 800,
print: true
},
server: {
options: {
req: {
url: 'http://localhost:8080',
method: 'HEAD'
}
}
},
remoteServer: {
options: {
req: 'http://example.com',
print: false
}
},
db: {
options: {
net: {
port: 3306
},
timeout: 0
}
}
}
});
```
### Options
#### options.req
Type: `string` or an options `object`
Default value: `undefined`
See [request#options](https://github.com/request/request#requestoptions-callback) for available options.
#### options.net
Type: options `object`
Default value: `undefined`
See [net.connect#options](https://nodejs.org/api/net.html#net_net_connect_options_connectlistener) for available options.
##### You must supply either `options.req` or `options.net`.
#### options.fail
Type: `function`
Default value: `function () {}`
#### options.timeout
Type: `number`
Default value: `10 * 1000`
`0` disables the timeout, will wait forever.
#### options.isforce
Type: `boolean`
Default value: `false`
#### options.interval
Type: `number`
Default value: `800`
#### options.print
Type: `boolean`
Default value: `true`
When `options.isforce` is true,
the task will continue after `options.timeout`,
even if the `done` signal in `options.wait` never came.
### Usage Examples
#### Default Options
In this example, the `waitServer` task will wait for the server start with the least options.
```js
grunt.initConfig({
waitServer: {
server: {
options: {
req: 'http://localhost:8080'
}
},
},
});
```
#### Custom Options
```js
grunt.initConfig({
waitServer: {
server: {
options: {
req: 'http://localhost:8080',
fail: function () {
console.error('the server had not start');
},
timeout: 20 * 1000,
isforce: true,
interval: 200,
print: false
}
}
},
});
```
## Contributing
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](http://gruntjs.com/).
## Release History
_(Nothing yet)_
[](https://bitdeli.com/free "Bitdeli Badge")