Skip to content

Commit f2c33c0

Browse files
committed
Merge pull request #312 from ParsePlatform/nlutsenko.babel
Add Babel.js compiler support.
2 parents 123ac5f + 2750a4c commit f2c33c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+76
-59
lines changed

.babelrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"presets": [
3+
"es2015"
4+
]
5+
}

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,7 @@ node_modules
3030
*~
3131

3232
# WebStorm/IntelliJ
33-
.idea
33+
.idea
34+
35+
# Babel.js
36+
lib/

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion

bin/parse-server

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env node
22
var express = require('express');
3-
var ParseServer = require("../index").ParseServer;
3+
var ParseServer = require("../lib/index").ParseServer;
44

55
var app = express();
66

package.json

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "parse-server",
33
"version": "2.0.7",
44
"description": "An express module providing a Parse-compatible API server",
5-
"main": "index.js",
5+
"main": "lib/index.js",
66
"repository": {
77
"type": "git",
88
"url": "https://github.com/ParsePlatform/parse-server"
@@ -11,6 +11,7 @@
1111
"dependencies": {
1212
"apn": "^1.7.5",
1313
"aws-sdk": "~2.2.33",
14+
"babel-runtime": "^6.5.0",
1415
"bcrypt-nodejs": "0.0.3",
1516
"body-parser": "^1.14.2",
1617
"deepcopy": "^0.6.1",
@@ -19,23 +20,29 @@
1920
"mime": "^1.3.4",
2021
"mongodb": "~2.1.0",
2122
"multer": "^1.1.0",
23+
"node-gcm": "^0.14.0",
2224
"parse": "^1.7.0",
2325
"randomstring": "^1.1.3",
24-
"node-gcm": "^0.14.0",
2526
"request": "^2.65.0"
2627
},
2728
"devDependencies": {
29+
"babel-cli": "^6.5.1",
30+
"babel-core": "^6.5.1",
31+
"babel-istanbul": "^0.6.0",
32+
"babel-preset-es2015": "^6.5.0",
33+
"babel-register": "^6.5.1",
2834
"codecov": "^1.0.1",
2935
"deep-diff": "^0.3.3",
30-
"istanbul": "^0.4.2",
3136
"jasmine": "^2.3.2",
3237
"mongodb-runner": "^3.1.15"
3338
},
3439
"scripts": {
40+
"build": "./node_modules/.bin/babel src/ -d lib/",
3541
"pretest": "MONGODB_VERSION=${MONGODB_VERSION:=3.0.8} mongodb-runner start",
36-
"test": "NODE_ENV=test TESTING=1 ./node_modules/.bin/istanbul cover --include-all-sources -x **/spec/** ./node_modules/.bin/jasmine",
42+
"test": "NODE_ENV=test TESTING=1 ./node_modules/.bin/babel-node ./node_modules/.bin/babel-istanbul cover -x **/spec/** ./node_modules/.bin/jasmine",
3743
"posttest": "mongodb-runner stop",
38-
"start": "./bin/parse-server"
44+
"start": "./bin/parse-server",
45+
"prepublish": "npm run build"
3946
},
4047
"engines": {
4148
"node": ">=4.1"

spec/APNS.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var APNS = require('../APNS');
1+
var APNS = require('../src/APNS');
22

33
describe('APNS', () => {
44
it('can generate APNS notification', (done) => {

spec/ExportAdapter.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var ExportAdapter = require('../ExportAdapter');
1+
var ExportAdapter = require('../src/ExportAdapter');
22

33
describe('ExportAdapter', () => {
44
it('can be constructed', (done) => {

spec/GCM.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var GCM = require('../GCM');
1+
var GCM = require('../src/GCM');
22

33
describe('GCM', () => {
44
it('can generate GCM Payload without expiration time', (done) => {

spec/ParseACL.spec.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,9 @@ describe('Parse.ACL', () => {
251251
equal(results.length, 1);
252252
var result = results[0];
253253
ok(result);
254+
if (!result) {
255+
return fail();
256+
}
254257
equal(result.id, object.id);
255258
equal(result.getACL().getReadAccess(user), true);
256259
equal(result.getACL().getWriteAccess(user), true);

spec/ParseAPI.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// A bunch of different tests are in here - it isn't very thematic.
22
// It would probably be better to refactor them into different files.
33

4-
var DatabaseAdapter = require('../DatabaseAdapter');
4+
var DatabaseAdapter = require('../src/DatabaseAdapter');
55
var request = require('request');
66

77
describe('miscellaneous', function() {

spec/ParseInstallation.spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// These tests check the Installations functionality of the REST API.
22
// Ported from installation_collection_test.go
33

4-
var auth = require('../Auth');
5-
var cache = require('../cache');
6-
var Config = require('../Config');
7-
var DatabaseAdapter = require('../DatabaseAdapter');
4+
var auth = require('../src/Auth');
5+
var cache = require('../src/cache');
6+
var Config = require('../src/Config');
7+
var DatabaseAdapter = require('../src/DatabaseAdapter');
88
var Parse = require('parse/node').Parse;
9-
var rest = require('../rest');
9+
var rest = require('../src/rest');
1010

1111
var config = new Config('test');
1212
var database = DatabaseAdapter.getDatabaseConnection('test');

spec/ParseUser.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Tests that involve sending password reset emails.
77

88
var request = require('request');
9-
var passwordCrypto = require('../password');
9+
var passwordCrypto = require('../src/password');
1010

1111
describe('Parse.User testing', () => {
1212
it("user sign up class method", (done) => {

spec/RestCreate.spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// These tests check the "create" functionality of the REST API.
2-
var auth = require('../Auth');
3-
var cache = require('../cache');
4-
var Config = require('../Config');
5-
var DatabaseAdapter = require('../DatabaseAdapter');
2+
var auth = require('../src/Auth');
3+
var cache = require('../src/cache');
4+
var Config = require('../src/Config');
5+
var DatabaseAdapter = require('../src/DatabaseAdapter');
66
var Parse = require('parse/node').Parse;
7-
var rest = require('../rest');
7+
var rest = require('../src/rest');
88
var request = require('request');
99

1010
var config = new Config('test');

spec/RestQuery.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// These tests check the "find" functionality of the REST API.
2-
var auth = require('../Auth');
3-
var cache = require('../cache');
4-
var Config = require('../Config');
5-
var rest = require('../rest');
2+
var auth = require('../src/Auth');
3+
var cache = require('../src/cache');
4+
var Config = require('../src/Config');
5+
var rest = require('../src/rest');
66

77
var config = new Config('test');
88
var nobody = auth.nobody(config);

spec/Schema.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// These tests check that the Schema operates correctly.
2-
var Config = require('../Config');
3-
var Schema = require('../Schema');
2+
var Config = require('../src/Config');
3+
var Schema = require('../src/Schema');
44
var dd = require('deep-diff');
55

66
var config = new Config('test');
@@ -252,7 +252,7 @@ describe('Schema', () => {
252252
it('refuses to add fields with invalid pointer types', done => {
253253
config.database.loadSchema()
254254
.then(schema => schema.addClassIfNotExists('NewClass', {
255-
foo: {type: 'Pointer'},
255+
foo: {type: 'Pointer'}
256256
}))
257257
.catch(error => {
258258
expect(error.code).toEqual(135);
@@ -398,7 +398,7 @@ describe('Schema', () => {
398398
config.database.loadSchema()
399399
.then(schema => schema.addClassIfNotExists('NewClass', {
400400
geo1: {type: 'GeoPoint'},
401-
geo2: {type: 'GeoPoint'},
401+
geo2: {type: 'GeoPoint'}
402402
}))
403403
.catch(error => {
404404
expect(error.code).toEqual(Parse.Error.INCORRECT_TYPE);

spec/helper.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000;
44

5-
var cache = require('../cache');
6-
var DatabaseAdapter = require('../DatabaseAdapter');
5+
var cache = require('../src/cache');
6+
var DatabaseAdapter = require('../src/DatabaseAdapter');
77
var express = require('express');
8-
var facebook = require('../facebook');
9-
var ParseServer = require('../index').ParseServer;
8+
var facebook = require('../src/facebook');
9+
var ParseServer = require('../src/index').ParseServer;
1010

1111
var databaseURI = process.env.DATABASE_URI;
1212
var cloudMain = process.env.CLOUD_CODE_MAIN || './cloud/main.js';

spec/push.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var push = require('../push');
1+
var push = require('../src/push');
22

33
describe('push', () => {
44
it('can check valid master key of request', (done) => {

spec/schemas.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var hasAllPODobject = () => {
1616
objACL.setPublicWriteAccess(false);
1717
obj.setACL(objACL);
1818
return obj;
19-
}
19+
};
2020

2121
var plainOldDataSchema = {
2222
className: 'HasAllPOD',
@@ -35,7 +35,7 @@ var plainOldDataSchema = {
3535
aArray: {type: 'Array'},
3636
aGeoPoint: {type: 'GeoPoint'},
3737
aFile: {type: 'File'}
38-
},
38+
}
3939
};
4040

4141
var pointersAndRelationsSchema = {

spec/support/jasmine.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"*spec.js"
55
],
66
"helpers": [
7+
"../node_modules/babel-core/register.js",
78
"helper.js"
89
]
910
}
10-

spec/transform.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// These tests are unit tests designed to only test transform.js.
22

3-
var transform = require('../transform');
3+
var transform = require('../src/transform');
44

55
var dummySchema = {
66
data: {},

APNS.js renamed to src/APNS.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ APNS.prototype.send = function(data, deviceTokens) {
6060
var generateNotification = function(coreData, expirationTime) {
6161
var notification = new apn.notification();
6262
var payload = {};
63-
for (key in coreData) {
63+
for (var key in coreData) {
6464
switch (key) {
6565
case 'alert':
6666
notification.setAlertText(coreData.alert);

Auth.js renamed to src/Auth.js

File renamed without changes.

Config.js renamed to src/Config.js

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

GCM.js renamed to src/GCM.js

File renamed without changes.
File renamed without changes.
File renamed without changes.

README.md renamed to src/README.md

File renamed without changes.
File renamed without changes.
File renamed without changes.

Schema.js renamed to src/Schema.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
var Parse = require('parse/node').Parse;
1818
var transform = require('./transform');
1919

20-
defaultColumns = {
20+
var defaultColumns = {
2121
// Contain the default columns for every parse object type (except _Join collection)
2222
_Default: {
2323
"objectId": {type:'String'},
@@ -43,13 +43,13 @@ defaultColumns = {
4343
"GCMSenderId": {type:'String'},
4444
"timeZone": {type:'String'},
4545
"localeIdentifier": {type:'String'},
46-
"badge": {type:'Number'},
46+
"badge": {type:'Number'}
4747
},
4848
// The additional default columns for the _User collection (in addition to DefaultCols)
4949
_Role: {
5050
"name": {type:'String'},
5151
"users": {type:'Relation',className:'_User'},
52-
"roles": {type:'Relation',className:'_Role'},
52+
"roles": {type:'Relation',className:'_Role'}
5353
},
5454
// The additional default columns for the _User collection (in addition to DefaultCols)
5555
_Session: {
@@ -58,9 +58,9 @@ defaultColumns = {
5858
"installationId": {type:'String'},
5959
"sessionToken": {type:'String'},
6060
"expiresAt": {type:'Date'},
61-
"createdWith": {type:'Object'},
62-
},
63-
}
61+
"createdWith": {type:'Object'}
62+
}
63+
};
6464

6565
// Valid classes must:
6666
// Be one of _User, _Installation, _Role, _Session OR
@@ -221,7 +221,7 @@ Schema.prototype.addClassIfNotExists = function(className, fields) {
221221
error: invalidClassNameMessage(className),
222222
});
223223
}
224-
for (fieldName in fields) {
224+
for (var fieldName in fields) {
225225
if (!fieldNameIsValid(fieldName)) {
226226
return Promise.reject({
227227
code: Parse.Error.INVALID_KEY_NAME,
@@ -240,26 +240,25 @@ Schema.prototype.addClassIfNotExists = function(className, fields) {
240240
_id: className,
241241
objectId: 'string',
242242
updatedAt: 'string',
243-
createdAt: 'string',
243+
createdAt: 'string'
244244
};
245-
for (fieldName in defaultColumns[className]) {
246-
validatedField = schemaAPITypeToMongoFieldType(defaultColumns[className][fieldName]);
245+
for (var fieldName in defaultColumns[className]) {
246+
var validatedField = schemaAPITypeToMongoFieldType(defaultColumns[className][fieldName]);
247247
if (validatedField.code) {
248248
return Promise.reject(validatedField);
249249
}
250250
mongoObject[fieldName] = validatedField.result;
251251
}
252252

253-
for (fieldName in fields) {
254-
validatedField = schemaAPITypeToMongoFieldType(fields[fieldName]);
253+
for (var fieldName in fields) {
254+
var validatedField = schemaAPITypeToMongoFieldType(fields[fieldName]);
255255
if (validatedField.code) {
256256
return Promise.reject(validatedField);
257257
}
258258
mongoObject[fieldName] = validatedField.result;
259259
}
260260

261261
var geoPoints = Object.keys(mongoObject).filter(key => mongoObject[key] === 'geopoint');
262-
263262
if (geoPoints.length > 1) {
264263
return Promise.reject({
265264
code: Parse.Error.INCORRECT_TYPE,
@@ -278,7 +277,7 @@ Schema.prototype.addClassIfNotExists = function(className, fields) {
278277
}
279278
return Promise.reject(error);
280279
});
281-
}
280+
};
282281

283282
// Returns a promise that resolves successfully to the new schema
284283
// object or fails with a reason.
File renamed without changes.

batch.js renamed to src/batch.js

File renamed without changes.

cache.js renamed to src/cache.js

File renamed without changes.

classes.js renamed to src/classes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ function handleFind(req) {
4242
req.params.className, body.where, options)
4343
.then((response) => {
4444
if (response && response.results) {
45-
for (result of response.results) {
45+
for (var result of response.results) {
4646
if (result.sessionToken) {
4747
result.sessionToken = req.info.sessionToken || result.sessionToken;
4848
}
File renamed without changes.
File renamed without changes.

files.js renamed to src/files.js

File renamed without changes.
File renamed without changes.
File renamed without changes.

index.js renamed to src/index.js

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

push.js renamed to src/push.js

File renamed without changes.

rest.js renamed to src/rest.js

File renamed without changes.

roles.js renamed to src/roles.js

File renamed without changes.

schemas.js renamed to src/schemas.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ function mongoFieldTypeToSchemaAPIType(type) {
3434
}
3535

3636
function mongoSchemaAPIResponseFields(schema) {
37-
fieldNames = Object.keys(schema).filter(key => key !== '_id' && key !== '_metadata');
38-
response = fieldNames.reduce((obj, fieldName) => {
37+
var fieldNames = Object.keys(schema).filter(key => key !== '_id' && key !== '_metadata');
38+
var response = fieldNames.reduce((obj, fieldName) => {
3939
obj[fieldName] = mongoFieldTypeToSchemaAPIType(schema[fieldName])
4040
return obj;
4141
}, {});
File renamed without changes.
File renamed without changes.

transform.js renamed to src/transform.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var Parse = require('parse/node').Parse;
2121
// validate: true indicates that key names are to be validated.
2222
//
2323
// Returns an object with {key: key, value: value}.
24-
function transformKeyValue(schema, className, restKey, restValue, options) {
24+
export function transformKeyValue(schema, className, restKey, restValue, options) {
2525
options = options || {};
2626

2727
// Check if the schema is known since it's a built-in field.
File renamed without changes.

users.js renamed to src/users.js

File renamed without changes.

0 commit comments

Comments
 (0)