Skip to content

Commit 84af7db

Browse files
committed
Merge pull request #22 from pusher/parse-build
Specific build for Parse Cloud modules.
2 parents 3f38645 + 02ac766 commit 84af7db

File tree

7 files changed

+92
-2
lines changed

7 files changed

+92
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ logs
2222
results
2323

2424
node_modules
25+
parse.js

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ node_js:
55
- "0.11"
66
- "0.10"
77
- "0.8"
8+
install:
9+
- npm install --no-optional

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,23 @@ You need to be running Node.js 0.8+ to use this library.
1010
$ npm install pusher
1111
```
1212

13+
### Parse Cloud
14+
15+
In order to use the library in a Parse Cloud module, install the module into your `cloud/modules` path:
16+
17+
$ npm install pusher --prefix cloud/modules
18+
19+
Then to build the file bundle for Parse Cloud:
20+
21+
$ cd cloud/modules/pusher
22+
$ npm run parse-build
23+
24+
To import `Pusher`:
25+
26+
```js
27+
var Pusher = require('cloud/modules/node_modules/pusher/parse');
28+
```
29+
1330
## Configuration
1431

1532
There are 3 ways to configure the client. First one is just using the Pusher constructor:

lib/parse_cloud/request.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
module.exports = ParseRequest = {
2+
3+
get: function(params, callback) {
4+
this._request('GET', params, callback);
5+
},
6+
7+
post: function(params, callback) {
8+
this._request('POST', params, callback);
9+
},
10+
11+
_request: function(method, params, callback){
12+
var request = {
13+
method: method,
14+
url: params.url,
15+
headers: params.headers,
16+
body: params.body
17+
};
18+
19+
var success = function(res){
20+
var err = null;
21+
var res = new ParseResponse(res);
22+
var body = res.body;
23+
callback(err, res, body);
24+
}
25+
26+
var error = function(res){
27+
var res = new ParseResponse(res);
28+
var err = body = res.body;
29+
callback(err, res, body);
30+
}
31+
32+
Parse.Cloud.httpRequest(request).then(success, error);
33+
},
34+
35+
forever: function(){
36+
console.log("This Parse extension does not support keep-alive." +
37+
" Falling back to default...");
38+
return this;
39+
}
40+
}
41+
42+
function ParseResponse(raw){
43+
this.statusCode = raw.status;
44+
this.body = raw.text;
45+
}

lib/token.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var crypto = require('crypto');
2-
2+
var Buffer = Buffer || require('buffer').Buffer;
33
var util = require('./util');
44

55
/** Verifies and signs data against the key and secret.

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,12 @@
3131
"nock": "=0.28.0",
3232
"express": "=3.11.0"
3333
},
34+
"optionalDependencies": {
35+
"webpack": "^1.12.9"
36+
},
3437
"scripts": {
35-
"test": "node node_modules/.bin/mocha tests/integration/**/*.js"
38+
"test": "node node_modules/.bin/mocha tests/integration/**/*.js",
39+
"parse-build": "echo 'Creating build for Parse Cloud.' && node ./node_modules/.bin/webpack --config=./parse.webpack.js"
3640
},
3741
"keywords": ["pusher", "websockets", "realtime"],
3842
"license": "MIT",

parse.webpack.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
Bundler used to create the Parse Cloud module.
3+
*/
4+
5+
var path = require('path');
6+
7+
module.exports = {
8+
entry: "./lib/pusher",
9+
output: {
10+
library: "Pusher",
11+
path: __dirname,
12+
libraryTarget: "commonjs2",
13+
filename: "parse.js"
14+
},
15+
target: "node",
16+
resolve: {
17+
alias: {
18+
request: "./parse_cloud/request"
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)