Skip to content

Commit b477d16

Browse files
committed
Do not do any setup for beforeSave trigger if none is set for this className.
1 parent 1ae61c9 commit b477d16

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/RestWrite.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ RestWrite.prototype.validateSchema = function() {
111111
// Runs any beforeSave triggers against this operation.
112112
// Any change leads to our data being mutated.
113113
RestWrite.prototype.runBeforeTrigger = function() {
114+
// Avoid doing any setup for triggers if there is no 'beforeSave' trigger for this class.
115+
if (!triggers.triggerExists(this.className, triggers.Types.beforeSave)) {
116+
return Promise.resolve();
117+
}
118+
114119
// Cloud code gets a bit of extra data for its objects
115120
var extraData = {className: this.className};
116121
if (this.query && this.query.objectId) {

src/triggers.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ var getTrigger = function(className, triggerType) {
1818
return undefined;
1919
};
2020

21+
function triggerExists(className: string, type: string): boolean {
22+
return (getTrigger(className, type) != undefined);
23+
}
24+
2125
var getRequestObject = function(triggerType, auth, parseObject, originalParseObject) {
2226
var request = {
2327
triggerName: triggerType,
@@ -96,5 +100,6 @@ module.exports = {
96100
getRequestObject: getRequestObject,
97101
inflate: inflate,
98102
maybeRunTrigger: maybeRunTrigger,
103+
triggerExists: triggerExists,
99104
Types: Types
100105
};

0 commit comments

Comments
 (0)