Refactors configuration management (#4271)

* Adds flow types / Configuration interfaces

* Lets call it options

* Use a single interface to generate the configurations

* Translates options to definitions only if comments are set

* improves logic

* Moves objects around

* Fixes issue affecting logging of circular objects

* fixes undefined env

* Moves all defaults to defaults

* Adds back CLI defaults

* Restored defaults in commander.js

* Merge provided defaults and platform defaults

* Addresses visual nits

* Improves Config.js code

* Adds ability to pass the default value in trailing comments

* Load platform defaults from the definitions file

* proper default values on various options

* Adds ParseServer.start and server.start(options) as quick startup methods

* Moves creating liveQueryServer http into ParseServer.js

* removes dead code

* Adds tests to guarantee we can start a LQ Server from main module

* Fixes incorrect code regading liveQuery init port

* Start a http server for LQ if port is specified

* ensure we dont fail if config.port is not set

* Specify port

* ignore other path skipped in tests

* Adds test for custom middleware setting

* Refactors new Config into Config.get

- Hides AppCache from ParseServer.js, use Config.put which validates

* Extracts controller creation into Controllers/index.js

- This makes the ParseServer init way simpler

* Move serverURL inference into ParseServer

* review nits
This commit is contained in:
Florent Vilmart
2017-10-23 08:43:05 -04:00
committed by GitHub
parent d29a4483d0
commit 9de4b8b2a7
55 changed files with 1462 additions and 874 deletions

View File

@@ -205,7 +205,7 @@ describe('PushController', () => {
installation.set("deviceType", "android");
installations.push(installation);
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -276,7 +276,7 @@ describe('PushController', () => {
installations.push(installation);
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -350,7 +350,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -425,7 +425,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -529,7 +529,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -579,7 +579,7 @@ describe('PushController', () => {
alert: "Hello World!",
badge: 1,
}}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -616,7 +616,7 @@ describe('PushController', () => {
return ["ios"];
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -677,7 +677,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -762,7 +762,7 @@ describe('PushController', () => {
});
it('should not schedule push when not configured', (done) => {
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -862,7 +862,7 @@ describe('PushController', () => {
push: { adapter: pushAdapter },
scheduledPush: true
}).then(() => {
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
return Parse.Object.saveAll(installations).then(() => {
return pushController.sendPush(payload, {}, config, auth);
}).then(() => new Promise(resolve => setTimeout(resolve, 300)));
@@ -931,7 +931,7 @@ describe('PushController', () => {
reconfigureServer({
push: { adapter: pushAdapter }
}).then(() => {
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
return Parse.Object.saveAll(installations).then(() => {
return pushController.sendPush(payload, {}, config, auth);
}).then(() => new Promise(resolve => setTimeout(resolve, 100)));
@@ -996,7 +996,7 @@ describe('PushController', () => {
reconfigureServer({
push: { adapter: pushAdapter }
}).then(() => {
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
return Parse.Object.saveAll(installations).then(() => {
return pushController.sendPush(payload, {}, config, auth)
.then(() => { done.fail('should not success') })
@@ -1034,7 +1034,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -1094,7 +1094,7 @@ describe('PushController', () => {
}
}
var config = new Config(Parse.applicationId);
var config = Config.get(Parse.applicationId);
var auth = {
isMaster: true
}
@@ -1230,7 +1230,7 @@ describe('PushController', () => {
scheduledPush: true
})
.then(() => {
const config = new Config(Parse.applicationId);
const config = Config.get(Parse.applicationId);
return new Promise((resolve, reject) => {
const pushController = new PushController();
pushController.sendPush({