From d80d2edfcd56d9d142ebfdb98283f1a2a7ab71be Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 17 Oct 2022 12:41:56 +1100 Subject: [PATCH 1/3] feat: add Parse.Server to cloud code --- spec/CloudCode.spec.js | 91 ++++++++++++++++++++++++++++++++++++++++++ src/ParseServer.js | 9 +++++ 2 files changed, 100 insertions(+) diff --git a/spec/CloudCode.spec.js b/spec/CloudCode.spec.js index bf1a2c8c42..c80611d47f 100644 --- a/spec/CloudCode.spec.js +++ b/spec/CloudCode.spec.js @@ -50,6 +50,97 @@ describe('Cloud Code', () => { }); }); + it('can get config', () => { + const config = Parse.Server; + let currentConfig = Config.get('test'); + expect(Object.keys(config)).toEqual(Object.keys(currentConfig)); + expect(Object.keys(config).sort()).toEqual( + [ + '_mount', + 'allowClientClassCreation', + 'allowCustomObjectId', + 'analyticsController', + 'appId', + 'applicationId', + 'auth', + 'authDataManager', + 'cacheController', + 'cacheMaxSize', + 'cacheTTL', + 'clientKey', + 'collectionPrefix', + 'customPages', + 'database', + 'databaseAdapter', + 'databaseURI', + 'defaultLimit', + 'directAccess', + 'dotNetKey', + 'emailVerifyTokenReuseIfValid', + 'enableAnonymousUsers', + 'enableExpressErrorHandler', + 'enforcePrivateUsers', + 'expireInactiveSessions', + 'fileKey', + 'fileUpload', + 'filesAdapter', + 'filesController', + 'generateEmailVerifyTokenExpiresAt', + 'generateSessionExpiresAt', + 'graphQLPath', + 'hasPushScheduledSupport', + 'hasPushSupport', + 'hooksController', + 'host', + 'idempotencyOptions', + 'javascriptKey', + 'jsonLogs', + 'level', + 'liveQueryController', + 'logLevel', + 'loggerController', + 'logsFolder', + 'masterKey', + 'masterKeyIps', + 'maxUploadSize', + 'mountGraphQL', + 'mountPath', + 'mountPlayground', + 'objectIdSize', + 'pages', + 'parseGraphQLController', + 'playgroundPath', + 'port', + 'preserveFileName', + 'preventLoginWithUnverifiedEmail', + 'protectedFields', + 'push', + 'pushController', + 'pushControllerQueue', + 'pushWorker', + 'readOnlyMasterKey', + 'requestKeywordDenylist', + 'restAPIKey', + 'revokeSessionOnPasswordReset', + 'scheduledPush', + 'schemaCache', + 'security', + 'serverStartComplete', + 'serverURL', + 'sessionLength', + 'silent', + 'userController', + 'verbose', + 'verifyUserEmails', + 'webhookKey', + ].sort() + ); + config.silent = false; + Parse.Server = config; + currentConfig = Config.get('test'); + expect(currentConfig.silent).toBeFalse(); + }); + it('show warning on duplicate cloud functions', done => { const logger = require('../lib/logger').logger; spyOn(logger, 'warn').and.callFake(() => {}); diff --git a/src/ParseServer.js b/src/ParseServer.js index e6b30d1918..ac94bb074c 100644 --- a/src/ParseServer.js +++ b/src/ParseServer.js @@ -374,6 +374,15 @@ class ParseServer { function addParseCloud() { const ParseCloud = require('./cloud-code/Parse.Cloud'); + Object.defineProperty(Parse, 'Server', { + get() { + return Config.get(Parse.applicationId); + }, + set(newVal) { + newVal.appId = Parse.applicationId; + Config.put(newVal); + }, + }); Object.assign(Parse.Cloud, ParseCloud); global.Parse = Parse; } From 166638aa272bca8a564d6dd0dd8d49bd56d95a63 Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 17 Oct 2022 20:56:32 +1100 Subject: [PATCH 2/3] Update ParseServer.js --- src/ParseServer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ParseServer.js b/src/ParseServer.js index ac94bb074c..df20020d6d 100644 --- a/src/ParseServer.js +++ b/src/ParseServer.js @@ -382,6 +382,7 @@ function addParseCloud() { newVal.appId = Parse.applicationId; Config.put(newVal); }, + configurable: true, }); Object.assign(Parse.Cloud, ParseCloud); global.Parse = Parse; From 3b72adb85d4655d69fd9643f2061fd62870c7b20 Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 27 Oct 2022 11:30:22 +1100 Subject: [PATCH 3/3] Update CloudCode.spec.js --- spec/CloudCode.spec.js | 81 ------------------------------------------ 1 file changed, 81 deletions(-) diff --git a/spec/CloudCode.spec.js b/spec/CloudCode.spec.js index c80611d47f..c522af0b5d 100644 --- a/spec/CloudCode.spec.js +++ b/spec/CloudCode.spec.js @@ -54,87 +54,6 @@ describe('Cloud Code', () => { const config = Parse.Server; let currentConfig = Config.get('test'); expect(Object.keys(config)).toEqual(Object.keys(currentConfig)); - expect(Object.keys(config).sort()).toEqual( - [ - '_mount', - 'allowClientClassCreation', - 'allowCustomObjectId', - 'analyticsController', - 'appId', - 'applicationId', - 'auth', - 'authDataManager', - 'cacheController', - 'cacheMaxSize', - 'cacheTTL', - 'clientKey', - 'collectionPrefix', - 'customPages', - 'database', - 'databaseAdapter', - 'databaseURI', - 'defaultLimit', - 'directAccess', - 'dotNetKey', - 'emailVerifyTokenReuseIfValid', - 'enableAnonymousUsers', - 'enableExpressErrorHandler', - 'enforcePrivateUsers', - 'expireInactiveSessions', - 'fileKey', - 'fileUpload', - 'filesAdapter', - 'filesController', - 'generateEmailVerifyTokenExpiresAt', - 'generateSessionExpiresAt', - 'graphQLPath', - 'hasPushScheduledSupport', - 'hasPushSupport', - 'hooksController', - 'host', - 'idempotencyOptions', - 'javascriptKey', - 'jsonLogs', - 'level', - 'liveQueryController', - 'logLevel', - 'loggerController', - 'logsFolder', - 'masterKey', - 'masterKeyIps', - 'maxUploadSize', - 'mountGraphQL', - 'mountPath', - 'mountPlayground', - 'objectIdSize', - 'pages', - 'parseGraphQLController', - 'playgroundPath', - 'port', - 'preserveFileName', - 'preventLoginWithUnverifiedEmail', - 'protectedFields', - 'push', - 'pushController', - 'pushControllerQueue', - 'pushWorker', - 'readOnlyMasterKey', - 'requestKeywordDenylist', - 'restAPIKey', - 'revokeSessionOnPasswordReset', - 'scheduledPush', - 'schemaCache', - 'security', - 'serverStartComplete', - 'serverURL', - 'sessionLength', - 'silent', - 'userController', - 'verbose', - 'verifyUserEmails', - 'webhookKey', - ].sort() - ); config.silent = false; Parse.Server = config; currentConfig = Config.get('test');