Skip to content

Specific build for Parse Cloud modules. #22

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 5, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ logs
results

node_modules
parse.js
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ node_js:
- "0.11"
- "0.10"
- "0.8"
install:
- npm install --no-optional
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,23 @@ You need to be running Node.js 0.8+ to use this library.
$ npm install pusher
```

### Parse Cloud

In order to use the library in a Parse Cloud module, install the module into your `cloud/modules` path:

$ npm install pusher --prefix cloud/modules

Then to build the file bundle for Parse Cloud:

$ cd cloud/modules/pusher
$ npm run parse-build

To import `Pusher`:

```js
var Pusher = require('cloud/modules/node_modules/pusher/parse');
```

## Configuration

There are 3 ways to configure the client. First one is just using the Pusher constructor:
Expand Down
45 changes: 45 additions & 0 deletions lib/parse_cloud/request.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
module.exports = ParseRequest = {

get: function(params, callback) {
this._request('GET', params, callback);
},

post: function(params, callback) {
this._request('POST', params, callback);
},

_request: function(method, params, callback){
var request = {
method: method,
url: params.url,
headers: params.headers,
body: params.body
};

var success = function(res){
var err = null;
var res = new ParseResponse(res);
var body = res.body;
callback(err, res, body);
}

var error = function(res){
var res = new ParseResponse(res);
var err = body = res.body;
callback(err, res, body);
}

Parse.Cloud.httpRequest(request).then(success, error);
},

forever: function(){
console.log("This Parse extension does not support keep-alive." +
" Falling back to default...");
return this;
}
}

function ParseResponse(raw){
this.statusCode = raw.status;
this.body = raw.text;
}
2 changes: 1 addition & 1 deletion lib/token.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var crypto = require('crypto');

var Buffer = Buffer || require('buffer').Buffer;
var util = require('./util');

/** Verifies and signs data against the key and secret.
Expand Down
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,12 @@
"nock": "=0.28.0",
"express": "=3.11.0"
},
"optionalDependencies": {
"webpack": "^1.12.9"
},
"scripts": {
"test": "node node_modules/.bin/mocha tests/integration/**/*.js"
"test": "node node_modules/.bin/mocha tests/integration/**/*.js",
"parse-build": "echo 'Creating build for Parse Cloud.' && node ./node_modules/.bin/webpack --config=./parse.webpack.js"
},
"keywords": ["pusher", "websockets", "realtime"],
"license": "MIT",
Expand Down
21 changes: 21 additions & 0 deletions parse.webpack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
Bundler used to create the Parse Cloud module.
*/

var path = require('path');

module.exports = {
entry: "./lib/pusher",
output: {
library: "Pusher",
path: __dirname,
libraryTarget: "commonjs2",
filename: "parse.js"
},
target: "node",
resolve: {
alias: {
request: "./parse_cloud/request"
}
}
}