fix: allow LiveQuery on Parse.Session (#7554)

This commit is contained in:
dblythy
2021-10-09 02:24:33 +11:00
committed by GitHub
parent 484c2e81ca
commit caee281bc5
7 changed files with 120 additions and 22 deletions

View File

@@ -6,13 +6,6 @@ function isParseObjectConstructor(object) {
return typeof object === 'function' && Object.prototype.hasOwnProperty.call(object, 'className');
}
function getClassName(parseClass) {
if (parseClass && parseClass.className) {
return parseClass.className;
}
return parseClass;
}
function validateValidator(validator) {
if (!validator || typeof validator === 'function') {
return;
@@ -161,7 +154,7 @@ ParseCloud.job = function (functionName, handler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.TriggerRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.beforeSave = function (parseClass, handler, validationHandler) {
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.beforeSave,
@@ -197,7 +190,7 @@ ParseCloud.beforeSave = function (parseClass, handler, validationHandler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.TriggerRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.beforeDelete = function (parseClass, handler, validationHandler) {
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.beforeDelete,
@@ -236,7 +229,7 @@ ParseCloud.beforeLogin = function (handler) {
if (typeof handler === 'string' || isParseObjectConstructor(handler)) {
// validation will occur downstream, this is to maintain internal
// code consistency with the other hook types.
className = getClassName(handler);
className = triggers.getClassName(handler);
handler = arguments[1];
}
triggers.addTrigger(triggers.Types.beforeLogin, className, handler, Parse.applicationId);
@@ -266,7 +259,7 @@ ParseCloud.afterLogin = function (handler) {
if (typeof handler === 'string' || isParseObjectConstructor(handler)) {
// validation will occur downstream, this is to maintain internal
// code consistency with the other hook types.
className = getClassName(handler);
className = triggers.getClassName(handler);
handler = arguments[1];
}
triggers.addTrigger(triggers.Types.afterLogin, className, handler, Parse.applicationId);
@@ -295,7 +288,7 @@ ParseCloud.afterLogout = function (handler) {
if (typeof handler === 'string' || isParseObjectConstructor(handler)) {
// validation will occur downstream, this is to maintain internal
// code consistency with the other hook types.
className = getClassName(handler);
className = triggers.getClassName(handler);
handler = arguments[1];
}
triggers.addTrigger(triggers.Types.afterLogout, className, handler, Parse.applicationId);
@@ -327,7 +320,7 @@ ParseCloud.afterLogout = function (handler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.TriggerRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.afterSave = function (parseClass, handler, validationHandler) {
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.afterSave,
@@ -363,7 +356,7 @@ ParseCloud.afterSave = function (parseClass, handler, validationHandler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.TriggerRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.afterDelete = function (parseClass, handler, validationHandler) {
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.afterDelete,
@@ -399,7 +392,7 @@ ParseCloud.afterDelete = function (parseClass, handler, validationHandler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.BeforeFindRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.beforeFind = function (parseClass, handler, validationHandler) {
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.beforeFind,
@@ -435,7 +428,7 @@ ParseCloud.beforeFind = function (parseClass, handler, validationHandler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.AfterFindRequest}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.afterFind = function (parseClass, handler, validationHandler) {
const className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.afterFind,
@@ -663,7 +656,7 @@ ParseCloud.sendEmail = function (data) {
*/
ParseCloud.beforeSubscribe = function (parseClass, handler, validationHandler) {
validateValidator(validationHandler);
var className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
triggers.addTrigger(
triggers.Types.beforeSubscribe,
className,
@@ -701,7 +694,7 @@ ParseCloud.onLiveQueryEvent = function (handler) {
* @param {(Object|Function)} validator An optional function to help validating cloud code. This function can be an async function and should take one parameter a {@link Parse.Cloud.LiveQueryEventTrigger}, or a {@link Parse.Cloud.ValidatorObject}.
*/
ParseCloud.afterLiveQueryEvent = function (parseClass, handler, validationHandler) {
const className = getClassName(parseClass);
const className = triggers.getClassName(parseClass);
validateValidator(validationHandler);
triggers.addTrigger(
triggers.Types.afterEvent,