package.json
4.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
"_args": [
[
{
"raw": "chan@^0.6.1",
"scope": null,
"escapedName": "chan",
"name": "chan",
"rawSpec": "^0.6.1",
"spec": ">=0.6.1 <0.7.0",
"type": "range"
},
"/Users/fzy/project/koa2_Sequelize_project/node_modules/co-busboy"
]
],
"_from": "chan@>=0.6.1 <0.7.0",
"_id": "chan@0.6.1",
"_inCache": true,
"_location": "/chan",
"_npmUser": {
"name": "brentburgoyne",
"email": "brent47@gmail.com"
},
"_npmVersion": "1.4.9",
"_phantomChildren": {},
"_requested": {
"raw": "chan@^0.6.1",
"scope": null,
"escapedName": "chan",
"name": "chan",
"rawSpec": "^0.6.1",
"spec": ">=0.6.1 <0.7.0",
"type": "range"
},
"_requiredBy": [
"/co-busboy"
],
"_resolved": "https://registry.npmjs.org/chan/-/chan-0.6.1.tgz",
"_shasum": "ec0ad132e5bc62c27ef10ccbfc4d8dcd8ca00640",
"_shrinkwrap": null,
"_spec": "chan@^0.6.1",
"_where": "/Users/fzy/project/koa2_Sequelize_project/node_modules/co-busboy",
"author": {
"name": "Brent Burgoyne"
},
"bugs": {
"url": "https://github.com/brentburgoyne/chan/issues"
},
"contributors": [
{
"name": "Brent Burgoyne"
},
{
"name": "TJ Holowaychuk",
"email": "tj@vision-media.ca"
},
{
"name": "Eugene Ware",
"email": "eugene@noblesamurai.com"
}
],
"dependencies": {},
"description": "A go style channel implementation that works nicely with co",
"devDependencies": {
"co": "^3.0.6",
"co-wait": "0.0.0",
"expect.js": "^0.3.1",
"mocha": "^1.20.1",
"should": "^4.0.4",
"sinon": "^1.10.3",
"split": "^0.3.0",
"superagent": "^0.18.0"
},
"directories": {},
"dist": {
"shasum": "ec0ad132e5bc62c27ef10ccbfc4d8dcd8ca00640",
"tarball": "https://registry.npmjs.org/chan/-/chan-0.6.1.tgz"
},
"homepage": "https://github.com/brentburgoyne/chan",
"keywords": [
"async",
"go",
"channel",
"co",
"generator"
],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "brentburgoyne",
"email": "brent47@gmail.com"
}
],
"name": "chan",
"optionalDependencies": {},
"readme": "# Chan\n\nA [golang](http://golang.org) like channel implementation for JavaScript that\nworks well with [co](https://github.com/visionmedia/co).\n\n[](https://travis-ci.org/brentburgoyne/chan)\n[](https://codeclimate.com/github/brentburgoyne/chan)\n[](https://gemnasium.com/brentburgoyne/chan)\n\n## Features\n\n- CSP Style channels in JavaScript\n- Buffered or Unbuffered channels\n- Channels can be closed\n- API designed to work well with generators and co\n- Can be used without generators\n- Channels can be selected similar to Go's select statement\n\n## Installation\n\n```bash\n$ npm install chan --save\n```\n\n## The Basics\n\nChan is inspired by golang's channels. It is implemented as a function that\nrepresents an asynchronous first in first out queue.\n\n```js\nvar makeChan = require('chan')\n// make a new unbuffered channel\nvar ch = makeChan()\ntypeof ch // -> 'function'\n```\n\n### Sending values to the channel\n\nValues are added to the\nchannel by calling the function with either `(value)` or `(error, value)`. The\nreturn value is a thunk (a function that take a node-style callback as its only\nargument). The callback given to the thunk is called once the value is added.\n\n```js\nch('foo')(function (err) {\n if (err) {\n // There was an error putting the value on the channel\n } else {\n // The value was successfully put on the channel\n }\n})\n```\n\n### Receiving values from the channel\n\nValues are removed from the channel by calling it with a node-style callback as\nthis first argument. When a value is available on the channel the callback is\ncalled with the value or error. In this case the channel itself can also be a\nthunk.\n\n```js\nch(function (err, val) {\n // called when there is a value or error on the channel\n})\n```\n\n### Generators\n\nBecause thunks are yield-able in a co generator, chan works very well when\ncombined with co. Using them together makes chan feel very similar to go\nchannels.\n\n```js\nvar co = require('co')\n\nco(function *() {\n var val = yield ch\n})\n\nco(function *() {\n yield ch('foo')\n})\n```\n\n## Buffer\n\nDocs coming soon...\n\n## Close\n\nDocs coming soon...\n\n## Select\n\nDocs coming soon...\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/brentburgoyne/chan.git"
},
"scripts": {
"test": "./node_modules/mocha/bin/mocha"
},
"version": "0.6.1"
}