Skip to content

Commit 05cc7aa

Browse files
authored
Merge branch 'alpha' into ci-speedup
2 parents f90e4b9 + c764203 commit 05cc7aa

File tree

7 files changed

+213
-237
lines changed

7 files changed

+213
-237
lines changed

changelogs/CHANGELOG_alpha.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [7.1.0-alpha.15](https://github.com/parse-community/parse-server/compare/7.1.0-alpha.14...7.1.0-alpha.15) (2024-07-08)
2+
3+
4+
### Features
5+
6+
* Upgrade to @parse/push-adapter 6.4.0 ([#9182](https://github.com/parse-community/parse-server/issues/9182)) ([ef1634b](https://github.com/parse-community/parse-server/commit/ef1634bf1f360429108d29b08032fc7961ff96a1))
7+
18
# [7.1.0-alpha.14](https://github.com/parse-community/parse-server/compare/7.1.0-alpha.13...7.1.0-alpha.14) (2024-07-07)
29

310

package-lock.json

Lines changed: 179 additions & 216 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "parse-server",
3-
"version": "7.1.0-alpha.14",
3+
"version": "7.1.0-alpha.15",
44
"description": "An express module providing a Parse-compatible API server",
55
"main": "lib/index.js",
66
"repository": {
@@ -25,7 +25,7 @@
2525
"@graphql-tools/schema": "10.0.3",
2626
"@graphql-tools/utils": "8.12.0",
2727
"@parse/fs-files-adapter": "3.0.0",
28-
"@parse/push-adapter": "6.2.0",
28+
"@parse/push-adapter": "6.4.0",
2929
"bcryptjs": "2.4.3",
3030
"body-parser": "1.20.2",
3131
"commander": "12.0.0",

spec/AdapterLoader.spec.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
const loadAdapter = require('../lib/Adapters/AdapterLoader').loadAdapter;
1+
const { loadAdapter, loadModule } = require('../lib/Adapters/AdapterLoader');
22
const FilesAdapter = require('@parse/fs-files-adapter').default;
3-
const ParsePushAdapter = require('@parse/push-adapter').default;
43
const MockFilesAdapter = require('mock-files-adapter');
54
const Config = require('../lib/Config');
65

@@ -103,19 +102,19 @@ describe('AdapterLoader', () => {
103102
done();
104103
});
105104

106-
it('should load push adapter from options', done => {
105+
it('should load push adapter from options', async () => {
107106
const options = {
108107
android: {
109108
senderId: 'yolo',
110109
apiKey: 'yolo',
111110
},
112111
};
112+
const ParsePushAdapter = await loadModule('@parse/push-adapter');
113113
expect(() => {
114114
const adapter = loadAdapter(undefined, ParsePushAdapter, options);
115115
expect(adapter.constructor).toBe(ParsePushAdapter);
116116
expect(adapter).not.toBe(undefined);
117117
}).not.toThrow();
118-
done();
119118
});
120119

121120
it('should load custom push adapter from string (#3544)', done => {

src/Adapters/AdapterLoader.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,21 @@ export function loadAdapter<T>(adapter, defaultAdapter, options): T {
4646
return adapter;
4747
}
4848

49+
export async function loadModule(modulePath) {
50+
let module;
51+
try {
52+
module = require(modulePath);
53+
} catch (err) {
54+
if (err.code === 'ERR_REQUIRE_ESM') {
55+
module = await import(modulePath);
56+
if (module.default) {
57+
module = module.default;
58+
}
59+
} else {
60+
throw err;
61+
}
62+
}
63+
return module;
64+
}
65+
4966
export default loadAdapter;

src/Controllers/index.js

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import authDataManager from '../Adapters/Auth';
22
import { ParseServerOptions } from '../Options';
3-
import { loadAdapter } from '../Adapters/AdapterLoader';
3+
import { loadAdapter, loadModule } from '../Adapters/AdapterLoader';
44
import defaults from '../defaults';
55
// Controllers
66
import { LoggerController } from './LoggerController';
@@ -22,21 +22,13 @@ import { InMemoryCacheAdapter } from '../Adapters/Cache/InMemoryCacheAdapter';
2222
import { AnalyticsAdapter } from '../Adapters/Analytics/AnalyticsAdapter';
2323
import MongoStorageAdapter from '../Adapters/Storage/Mongo/MongoStorageAdapter';
2424
import PostgresStorageAdapter from '../Adapters/Storage/Postgres/PostgresStorageAdapter';
25-
import ParsePushAdapter from '@parse/push-adapter';
2625
import ParseGraphQLController from './ParseGraphQLController';
2726
import SchemaCache from '../Adapters/Cache/SchemaCache';
2827

2928
export function getControllers(options: ParseServerOptions) {
3029
const loggerController = getLoggerController(options);
3130
const filesController = getFilesController(options);
3231
const userController = getUserController(options);
33-
const {
34-
pushController,
35-
hasPushScheduledSupport,
36-
hasPushSupport,
37-
pushControllerQueue,
38-
pushWorker,
39-
} = getPushController(options);
4032
const cacheController = getCacheController(options);
4133
const analyticsController = getAnalyticsController(options);
4234
const liveQueryController = getLiveQueryController(options);
@@ -51,11 +43,6 @@ export function getControllers(options: ParseServerOptions) {
5143
loggerController,
5244
filesController,
5345
userController,
54-
pushController,
55-
hasPushScheduledSupport,
56-
hasPushSupport,
57-
pushWorker,
58-
pushControllerQueue,
5946
analyticsController,
6047
cacheController,
6148
parseGraphQLController,
@@ -182,7 +169,7 @@ interface PushControlling {
182169
pushWorker: PushWorker;
183170
}
184171

185-
export function getPushController(options: ParseServerOptions): PushControlling {
172+
export async function getPushController(options: ParseServerOptions): PushControlling {
186173
const { scheduledPush, push } = options;
187174

188175
const pushOptions = Object.assign({}, push);
@@ -192,6 +179,7 @@ export function getPushController(options: ParseServerOptions): PushControlling
192179
}
193180

194181
// Pass the push options too as it works with the default
182+
const ParsePushAdapter = await loadModule('@parse/push-adapter');
195183
const pushAdapter = loadAdapter(
196184
pushOptions && pushOptions.adapter,
197185
ParsePushAdapter,

src/ParseServer.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ class ParseServer {
160160
throw e;
161161
}
162162
}
163+
const pushController = await controllers.getPushController(this.config);
163164
await hooksController.load();
164165
const startupPromises = [];
165166
if (schema) {
@@ -196,6 +197,7 @@ class ParseServer {
196197
new CheckRunner(security).run();
197198
}
198199
this.config.state = 'ok';
200+
this.config = { ...this.config, ...pushController };
199201
Config.put(this.config);
200202
return this;
201203
} catch (error) {

0 commit comments

Comments
 (0)