# nodejs-pumpkin

> Pumpkin is a nodejs(or javascript) module for solving callback hell.

Latest version **0.1.0** (published 2016-06-15) · SEE LICENSE IN https://github.com/tonite31/pumpkin/blob/master/LICENSE license · 0 weekly downloads

## Install

```sh
npm install nodejs-pumpkin
pnpm add nodejs-pumpkin
yarn add nodejs-pumpkin
bun add nodejs-pumpkin
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2016-06-15 |
| First published | 2016-04-27 |
| Weekly downloads | 0 |
| License | SEE LICENSE IN https://github.com/tonite31/pumpkin/blob/master/LICENSE |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Alprensia |
| Maintainers | alprensia |
| Keywords | pumpkin, async, callback hell |

## Links

- npm: https://www.npmjs.com/package/nodejs-pumpkin
- Repository: https://github.com/tonite31/pumpkin
- Homepage: https://github.com/tonite31/pumpkin#readme
- Issues: https://github.com/tonite31/pumpkin/issues
- npm.io page: https://npm.io/package/nodejs-pumpkin

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 0.1.0 (latest) — 2016-06-15
- 0.0.4 — 2016-04-29
- 0.0.3 — 2016-04-28
- 0.0.2 — 2016-04-28
- 0.0.1 — 2016-04-27

## README

# Pumpkin

Pumpkin is a nodejs(or javascript) module for solving callback hell.

## Example
```javascript
//If you want to use pumpkin on html, you don't have to require.
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.setData({commonData : 'commonData'});

pumpkin.addWork('work1', function()
{
	var that = this;
	setTimeout(function()
	{
		console.log('- start work1');
		console.log('execute after 1 second');
		console.log('commonData : ', that.data.commonData);
		
		//set common data.
		that.data.commonData2 = 'commonData2';
		that.next('If you want to pass parameter to next work.');
	}, 1000);
});

pumpkin.addWork('work2', function()
{
	var params = arguments;
	var that = this;
	setTimeout(function()
	{
		console.log('');
		console.log('- start work2');
		console.log('execute after 0.5 second');
		console.log('commonData2 : ', that.data.commonData2);
		console.log('params : ', params[0]);
		that.next();
	}, 500);
});

pumpkin.execute(['work1', 'work2'], function()
{
	console.log('');
	console.log("done : ", this.data);
});

//If you want to using async.
pumpkin.executeAsync(['work1', 'work2'], function()
{
	console.log('');
	console.log("done : ", this.data);
});
```

## Error handling
```javascript
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	console.log(this.data.error);
});

pumpkin.execute(['work'], function()
{
	console.log('');
	console.log("done : ", this.data);
}, function(workName, error)
{
	console.log(workName, error.stack);
});
```
```javascript
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	this.error('error');
});

pumpkin.execute(['work'], function()
{
	console.log('');
	console.log("done : ", this.data);
}, function(workName, error)
{
	console.log(workName, error);
});
```

## Execute work with parameter.
```javascript
var Pumpkin = require('nodejs-pumpkin');

var pumpkin = new Pumpkin();
pumpkin.addWork('work', function()
{
	this.next();
});

pumpkin.addWork('work2', function(params)
{
	console.log('username : ', params.username);
	this.next();
});

pumpkin.execute(['work', {name : 'work2', params : {username : 'user'}}], function()
{
	console.log("done");
}, function(workName, error)
{
	console.log(workName, error.stack);
});
```

---
_Source: https://npm.io/package/nodejs-pumpkin · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
