cache as ES6

This commit is contained in:
Florent Vilmart
2016-02-24 15:55:11 -05:00
parent c0714b9b9d
commit c4abd1e267
11 changed files with 64 additions and 82 deletions

View File

@@ -1,49 +1,56 @@
// triggers.js
var Parse = require('parse/node').Parse,
cache = require('./cache');
import Parse from 'parse/node';
import cache from './cache';
var Types = {
export const Types = {
beforeSave: 'beforeSave',
afterSave: 'afterSave',
beforeDelete: 'beforeDelete',
afterDelete: 'afterDelete'
};
var BaseStore = function() {
this.Functions = {}
this.Validators = {}
this.Triggers = Object.keys(Types).reduce(function(base, key){
const baseStore = function() {
let Validators = {};
let Functions = {};
let Triggers = Object.keys(Types).reduce(function(base, key){
base[key] = {};
return base;
}, {});
return Object.freeze({
Functions,
Validators,
Triggers
});
}
var _triggerStore = {};
const _triggerStore = {};
function addFunction(functionName, handler, validationHandler, applicationId) {
export function addFunction(functionName, handler, validationHandler, applicationId) {
applicationId = applicationId || Parse.applicationId;
_triggerStore[applicationId] = _triggerStore[applicationId] || new BaseStore();
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
_triggerStore[applicationId].Functions[functionName] = handler;
_triggerStore[applicationId].Validators[functionName] = validationHandler;
}
function addTrigger(type, className, handler, applicationId) {
export function addTrigger(type, className, handler, applicationId) {
applicationId = applicationId || Parse.applicationId;
_triggerStore[applicationId] = _triggerStore[applicationId] || new BaseStore();
_triggerStore[applicationId] = _triggerStore[applicationId] || baseStore();
_triggerStore[applicationId].Triggers[type][className] = handler;
}
function removeFunction(functionName, applicationId) {
export function removeFunction(functionName, applicationId) {
applicationId = applicationId || Parse.applicationId;
delete _triggerStore[applicationId].Functions[functionName]
}
function removeTrigger(type, className, applicationId) {
export function removeTrigger(type, className, applicationId) {
applicationId = applicationId || Parse.applicationId;
delete _triggerStore[applicationId].Triggers[type][className]
}
function _unregister(a,b,c,d) {
export function _unregister(a,b,c,d) {
if (d) {
removeTrigger(c,d,a);
delete _triggerStore[a][b][c][d];
@@ -53,7 +60,7 @@ function _unregister(a,b,c,d) {
}
var getTrigger = function(className, triggerType, applicationId) {
export function getTrigger(className, triggerType, applicationId) {
if (!applicationId) {
throw "Missing ApplicationID";
}
@@ -67,11 +74,11 @@ var getTrigger = function(className, triggerType, applicationId) {
return undefined;
};
function triggerExists(className: string, type: string): boolean {
return (getTrigger(className, type) != undefined);
export function triggerExists(className: string, type: string, applicationId: string): boolean {
return (getTrigger(className, type, applicationId) != undefined);
}
var getFunction = function(functionName, applicationId) {
export function getFunction(functionName, applicationId) {
var manager = _triggerStore[applicationId];
if (manager && manager.Functions) {
return manager.Functions[functionName];
@@ -79,7 +86,7 @@ var getFunction = function(functionName, applicationId) {
return undefined;
}
var getValidator = function(functionName, applicationId) {
export function getValidator(functionName, applicationId) {
var manager = _triggerStore[applicationId];
if (manager && manager.Validators) {
return manager.Validators[functionName];
@@ -87,7 +94,7 @@ var getValidator = function(functionName, applicationId) {
return undefined;
}
var getRequestObject = function(triggerType, auth, parseObject, originalParseObject) {
export function getRequestObject(triggerType, auth, parseObject, originalParseObject) {
var request = {
triggerName: triggerType,
object: parseObject,
@@ -116,7 +123,7 @@ var getRequestObject = function(triggerType, auth, parseObject, originalParseObj
// The API will call this with REST API formatted objects, this will
// transform them to Parse.Object instances expected by Cloud Code.
// Any changes made to the object in a beforeSave will be included.
var getResponseObject = function(request, resolve, reject) {
export function getResponseObject(request, resolve, reject) {
return {
success: function(response) {
// Use the JSON response
@@ -141,7 +148,7 @@ var getResponseObject = function(request, resolve, reject) {
// Resolves to an object, empty or containing an object key. A beforeSave
// trigger will set the object key to the rest format object to save.
// originalParseObject is optional, we only need that for befote/afterSave functions
var maybeRunTrigger = function(triggerType, auth, parseObject, originalParseObject, applicationId) {
export function maybeRunTrigger(triggerType, auth, parseObject, originalParseObject, applicationId) {
if (!parseObject) {
return Promise.resolve({});
}
@@ -160,38 +167,10 @@ var maybeRunTrigger = function(triggerType, auth, parseObject, originalParseObje
// Converts a REST-format object to a Parse.Object
// data is either className or an object
function inflate(data, restObject) {
export function inflate(data, restObject) {
var copy = typeof data == 'object' ? data : {className: data};
for (var key in restObject) {
copy[key] = restObject[key];
}
return Parse.Object.fromJSON(copy);
}
<<<<<<< 5fae41183ed476976ff29a4c247aa78b00b83a9e
module.exports = {
getTrigger: getTrigger,
getRequestObject: getRequestObject,
inflate: inflate,
maybeRunTrigger: maybeRunTrigger,
triggerExists: triggerExists,
Types: Types
};
=======
var TriggerManager = {};
TriggerManager.getTrigger = getTrigger;
TriggerManager.getRequestObject = getRequestObject;
TriggerManager.inflate = inflate;
TriggerManager.maybeRunTrigger = maybeRunTrigger;
TriggerManager.Types = Types;
TriggerManager.addFunction = addFunction;
TriggerManager.getFunction = getFunction;
TriggerManager.removeTrigger = removeTrigger;
TriggerManager.removeFunction = removeFunction;
TriggerManager.getValidator = getValidator;
TriggerManager.addTrigger = addTrigger;
TriggerManager._unregister = _unregister;
module.exports = TriggerManager;
>>>>>>> Adds Hooks API