Comparing version 0.17.0 to 0.17.1
@@ -67,11 +67,11 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
remoteInmemory = __webpack_require__(19); | ||
remoteInmemory = __webpack_require__(2); | ||
GlobalContext = __webpack_require__(20); | ||
GlobalContext = __webpack_require__(3); | ||
Remote = __webpack_require__(22); | ||
Remote = __webpack_require__(5); | ||
Projection = __webpack_require__(7); | ||
Projection = __webpack_require__(9); | ||
Context = __webpack_require__(2); | ||
Context = __webpack_require__(13); | ||
@@ -82,3 +82,3 @@ inmemoryStore = __webpack_require__(24); | ||
logger = __webpack_require__(9); | ||
logger = __webpack_require__(7); | ||
@@ -222,5 +222,224 @@ Eventric = (function() { | ||
module.exports = __webpack_require__(3); | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(true) | ||
module.exports = factory(); | ||
else if(typeof define === 'function' && define.amd) | ||
define(factory); | ||
else if(typeof exports === 'object') | ||
exports["eventric-remote-inmemory"] = factory(); | ||
else | ||
root["eventric-remote-inmemory"] = factory(); | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ exports: {}, | ||
/******/ id: moduleId, | ||
/******/ loaded: false | ||
/******/ }; | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ // Flag the module as loaded | ||
/******/ module.loaded = true; | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = { | ||
endpoint: __webpack_require__(1), | ||
client: __webpack_require__(3) | ||
}; | ||
/***/ }, | ||
/* 1 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var InMemoryRemoteEndpoint, pubSub, | ||
slice = [].slice; | ||
pubSub = __webpack_require__(2); | ||
InMemoryRemoteEndpoint = (function() { | ||
function InMemoryRemoteEndpoint() {} | ||
InMemoryRemoteEndpoint.prototype.setRPCHandler = function(handleRPCRequest) { | ||
this.handleRPCRequest = handleRPCRequest; | ||
}; | ||
InMemoryRemoteEndpoint.prototype.publish = function() { | ||
var aggregateId, arg, contextName, domainEventName, fullEventName, i, payload; | ||
contextName = arguments[0], arg = 3 <= arguments.length ? slice.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), payload = arguments[i++]; | ||
domainEventName = arg[0], aggregateId = arg[1]; | ||
fullEventName = pubSub.getFullEventName(contextName, domainEventName, aggregateId); | ||
return pubSub.publish(fullEventName, payload); | ||
}; | ||
return InMemoryRemoteEndpoint; | ||
})(); | ||
module.exports = new InMemoryRemoteEndpoint; | ||
/***/ }, | ||
/* 2 */ | ||
/***/ function(module, exports) { | ||
var PubSub, | ||
slice = [].slice; | ||
PubSub = (function() { | ||
function PubSub() { | ||
this._subscribers = []; | ||
this._subscriberId = 0; | ||
} | ||
PubSub.prototype.subscribe = function(eventName, subscriberFunction) { | ||
return new Promise((function(_this) { | ||
return function(resolve) { | ||
var subscriber; | ||
subscriber = { | ||
eventName: eventName, | ||
subscriberFunction: subscriberFunction, | ||
subscriberId: _this._getNextSubscriberId() | ||
}; | ||
_this._subscribers.push(subscriber); | ||
return resolve(subscriber.subscriberId); | ||
}; | ||
})(this)); | ||
}; | ||
PubSub.prototype.publish = function(eventName, payload) { | ||
var subscribers; | ||
subscribers = this._getRelevantSubscribers(eventName); | ||
return Promise.all(subscribers.map(function(subscriber) { | ||
return subscriber.subscriberFunction(payload); | ||
})); | ||
}; | ||
PubSub.prototype._getRelevantSubscribers = function(eventName) { | ||
if (eventName) { | ||
return this._subscribers.filter(function(subscriber) { | ||
return subscriber.eventName === eventName; | ||
}); | ||
} else { | ||
return this._subscribers; | ||
} | ||
}; | ||
PubSub.prototype.unsubscribe = function(subscriberId) { | ||
return new Promise((function(_this) { | ||
return function(resolve) { | ||
_this._subscribers = _this._subscribers.filter(function(subscriber) { | ||
return subscriber.subscriberId !== subscriberId; | ||
}); | ||
return resolve(); | ||
}; | ||
})(this)); | ||
}; | ||
PubSub.prototype._getNextSubscriberId = function() { | ||
return this._subscriberId++; | ||
}; | ||
PubSub.prototype.getFullEventName = function() { | ||
var eventParts; | ||
eventParts = 1 <= arguments.length ? slice.call(arguments, 0) : []; | ||
eventParts = eventParts.filter(function(eventPart) { | ||
return eventPart != null; | ||
}); | ||
return eventParts.join('/'); | ||
}; | ||
return PubSub; | ||
})(); | ||
module.exports = new PubSub; | ||
/***/ }, | ||
/* 3 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var InMemoryRemoteClient, endpoint, pubSub, | ||
slice = [].slice; | ||
endpoint = __webpack_require__(1); | ||
pubSub = __webpack_require__(2); | ||
InMemoryRemoteClient = (function() { | ||
function InMemoryRemoteClient() {} | ||
InMemoryRemoteClient.prototype.rpc = function(rpcRequest) { | ||
return new Promise((function(_this) { | ||
return function(resolve, reject) { | ||
return endpoint.handleRPCRequest(rpcRequest, function(error, result) { | ||
if (error) { | ||
return reject(error); | ||
} else { | ||
return resolve(result); | ||
} | ||
}); | ||
}; | ||
})(this)); | ||
}; | ||
InMemoryRemoteClient.prototype.subscribe = function() { | ||
var aggregateId, arg, contextName, domainEventName, fullEventName, handlerFunction, i; | ||
contextName = arguments[0], arg = 3 <= arguments.length ? slice.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), handlerFunction = arguments[i++]; | ||
domainEventName = arg[0], aggregateId = arg[1]; | ||
fullEventName = pubSub.getFullEventName(contextName, domainEventName, aggregateId); | ||
return pubSub.subscribe(fullEventName, handlerFunction); | ||
}; | ||
InMemoryRemoteClient.prototype.unsubscribe = function(subscriberId) { | ||
return pubSub.unsubscribe(subscriberId); | ||
}; | ||
return InMemoryRemoteClient; | ||
})(); | ||
module.exports = new InMemoryRemoteClient; | ||
/***/ } | ||
/******/ ]) | ||
}); | ||
; | ||
/***/ }, | ||
@@ -230,2 +449,475 @@ /* 3 */ | ||
module.exports = __webpack_require__(4); | ||
/***/ }, | ||
/* 4 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var GlobalContext, | ||
slice = [].slice; | ||
GlobalContext = (function() { | ||
function GlobalContext() { | ||
this.name = 'Global'; | ||
} | ||
GlobalContext.prototype.findDomainEventsByName = function() { | ||
var findArguments, findDomainEventsByName; | ||
findArguments = 1 <= arguments.length ? slice.call(arguments, 0) : []; | ||
findDomainEventsByName = this._getAllContexts().map(function(context) { | ||
return context.findDomainEventsByName.apply(context, findArguments); | ||
}); | ||
return Promise.all(findDomainEventsByName).then((function(_this) { | ||
return function(domainEventsByContext) { | ||
var domainEvents; | ||
domainEvents = _this._combineDomainEventsByContext(domainEventsByContext); | ||
_this._sortDomainEventsByTimestamp(domainEvents); | ||
return domainEvents; | ||
}; | ||
})(this)); | ||
}; | ||
GlobalContext.prototype.subscribeToDomainEvent = function(eventName, domainEventHandler) { | ||
var subscribeToDomainEvents; | ||
subscribeToDomainEvents = this._getAllContexts().map(function(context) { | ||
return context.subscribeToDomainEvent(eventName, domainEventHandler); | ||
}); | ||
return Promise.all(subscribeToDomainEvents); | ||
}; | ||
GlobalContext.prototype._getAllContexts = function() { | ||
var contextNames, eventric; | ||
eventric = __webpack_require__(1); | ||
contextNames = eventric.getRegisteredContextNames(); | ||
return contextNames.map((function(_this) { | ||
return function(contextName) { | ||
return eventric.remote(contextName); | ||
}; | ||
})(this)); | ||
}; | ||
GlobalContext.prototype._combineDomainEventsByContext = function(domainEventsByContext) { | ||
return domainEventsByContext.reduce(function(allDomainEvents, contextDomainEvents) { | ||
return allDomainEvents.concat(contextDomainEvents); | ||
}, []); | ||
}; | ||
GlobalContext.prototype._sortDomainEventsByTimestamp = function(domainEvents) { | ||
return domainEvents.sort(function(firstEvent, secondEvent) { | ||
return firstEvent.timestamp - secondEvent.timestamp; | ||
}); | ||
}; | ||
return GlobalContext; | ||
})(); | ||
module.exports = GlobalContext; | ||
/***/ }, | ||
/* 5 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(6); | ||
/***/ }, | ||
/* 6 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var Projection, Remote, logger, remoteInmemory; | ||
remoteInmemory = __webpack_require__(2); | ||
logger = __webpack_require__(7); | ||
Projection = __webpack_require__(9); | ||
Remote = (function() { | ||
Remote.ALLOWED_RPC_OPERATIONS = ['command', 'query', 'findDomainEventsByName', 'findDomainEventsByNameAndAggregateId']; | ||
function Remote(_contextName) { | ||
this._contextName = _contextName; | ||
this.name = this._contextName; | ||
this._params = {}; | ||
this._projectionClasses = {}; | ||
this._projectionInstances = {}; | ||
this._handlerFunctions = {}; | ||
this.projectionService = new Projection(this); | ||
this.setClient(remoteInmemory.client); | ||
this._exposeRpcOperationsAsMemberFunctions(); | ||
} | ||
Remote.prototype._exposeRpcOperationsAsMemberFunctions = function() { | ||
return Remote.ALLOWED_RPC_OPERATIONS.forEach((function(_this) { | ||
return function(rpcOperation) { | ||
return _this[rpcOperation] = function() { | ||
return _this._rpc(rpcOperation, arguments); | ||
}; | ||
}; | ||
})(this)); | ||
}; | ||
Remote.prototype.subscribeToAllDomainEvents = function(handlerFn) { | ||
return this._client.subscribe(this._contextName, handlerFn); | ||
}; | ||
Remote.prototype.subscribeToDomainEvent = function(domainEventName, handlerFn) { | ||
return this._client.subscribe(this._contextName, domainEventName, handlerFn); | ||
}; | ||
Remote.prototype.subscribeToDomainEventWithAggregateId = function(domainEventName, aggregateId, handlerFn) { | ||
return this._client.subscribe(this._contextName, domainEventName, aggregateId, handlerFn); | ||
}; | ||
Remote.prototype.unsubscribeFromDomainEvent = function(subscriberId) { | ||
return this._client.unsubscribe(subscriberId); | ||
}; | ||
Remote.prototype._rpc = function(functionName, args) { | ||
return this._client.rpc({ | ||
contextName: this._contextName, | ||
functionName: functionName, | ||
args: Array.prototype.slice.call(args) | ||
}); | ||
}; | ||
Remote.prototype.setClient = function(client) { | ||
this._client = client; | ||
return this; | ||
}; | ||
Remote.prototype.addProjection = function(projectionName, projectionClass) { | ||
this._projectionClasses[projectionName] = projectionClass; | ||
return this; | ||
}; | ||
Remote.prototype.initializeProjection = function(projectionObject, params) { | ||
return this.projectionService.initializeInstance('', projectionObject, params); | ||
}; | ||
Remote.prototype.initializeProjectionInstance = function(projectionName, params) { | ||
if (!this._projectionClasses[projectionName]) { | ||
return Promise.reject(new Error("Given projection " + projectionName + " not registered on remote")); | ||
} | ||
return this.projectionService.initializeInstance(projectionName, this._projectionClasses[projectionName], params); | ||
}; | ||
Remote.prototype.getProjectionInstance = function(projectionId) { | ||
return this.projectionService.getInstance(projectionId); | ||
}; | ||
Remote.prototype.destroyProjectionInstance = function(projectionId) { | ||
return this.projectionService.destroyInstance(projectionId, this); | ||
}; | ||
return Remote; | ||
})(); | ||
module.exports = Remote; | ||
/***/ }, | ||
/* 7 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(8); | ||
/***/ }, | ||
/* 8 */ | ||
/***/ function(module, exports) { | ||
module.exports = { | ||
_logLevel: 1, | ||
setLogLevel: function(logLevel) { | ||
return this._logLevel = (function() { | ||
switch (logLevel) { | ||
case 'debug': | ||
return 0; | ||
case 'warn': | ||
return 1; | ||
case 'info': | ||
return 2; | ||
case 'error': | ||
return 3; | ||
} | ||
})(); | ||
}, | ||
debug: function() { | ||
if (this._logLevel > 0) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
warn: function() { | ||
if (this._logLevel > 1) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
info: function() { | ||
if (this._logLevel > 2) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
error: function() { | ||
if (this._logLevel > 3) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
} | ||
}; | ||
/***/ }, | ||
/* 9 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(10); | ||
/***/ }, | ||
/* 10 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var Projection, logger, uidGenerator, | ||
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; | ||
logger = __webpack_require__(7); | ||
uidGenerator = __webpack_require__(11); | ||
Projection = (function() { | ||
function Projection(_context) { | ||
this._context = _context; | ||
this._applyDomainEventToProjection = bind(this._applyDomainEventToProjection, this); | ||
this._handlerFunctions = {}; | ||
this._projectionInstances = {}; | ||
this._domainEventsApplied = {}; | ||
} | ||
Projection.prototype.initializeInstance = function(projectionName, Projection, params) { | ||
var aggregateId, diFn, diName, eventNames, projection, projectionId, ref; | ||
if (typeof Projection === 'function') { | ||
projection = new Projection; | ||
} else { | ||
projection = Projection; | ||
} | ||
if (this._context._di) { | ||
ref = this._context._di; | ||
for (diName in ref) { | ||
diFn = ref[diName]; | ||
projection[diName] = diFn; | ||
} | ||
} | ||
projectionId = uidGenerator.generateUid(); | ||
aggregateId = null; | ||
projection.$subscribeHandlersWithAggregateId = function(_aggregateId) { | ||
return aggregateId = _aggregateId; | ||
}; | ||
eventNames = null; | ||
return this._callInitializeOnProjection(projectionName, projection, params).then((function(_this) { | ||
return function() { | ||
return _this._parseEventNamesFromProjection(projection); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function(_eventNames) { | ||
eventNames = _eventNames; | ||
return _this._applyDomainEventsFromStoreToProjection(projectionId, projection, eventNames, aggregateId); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function() { | ||
return _this._subscribeProjectionToDomainEvents(projectionId, projectionName, projection, eventNames, aggregateId); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function() { | ||
return _this._projectionInstances[projectionId] = projection; | ||
}; | ||
})(this)).then(function() { | ||
return projection.isInitialized = true; | ||
}).then(function() { | ||
return projectionId; | ||
}); | ||
}; | ||
Projection.prototype._callInitializeOnProjection = function(projectionName, projection, params) { | ||
return new Promise((function(_this) { | ||
return function(resolve, reject) { | ||
if (!projection.initialize) { | ||
logger.debug("[" + _this._context.name + "] No initialize function on Projection " + projectionName + " given, skipping"); | ||
return resolve(projection); | ||
} | ||
logger.debug("[" + _this._context.name + "] Calling initialize on Projection " + projectionName); | ||
return projection.initialize(params, function() { | ||
logger.debug("[" + _this._context.name + "] Finished initialize call on Projection " + projectionName); | ||
return resolve(projection); | ||
}); | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype._parseEventNamesFromProjection = function(projection) { | ||
return new Promise(function(resolve, reject) { | ||
var eventName, eventNames, key, value; | ||
eventNames = []; | ||
for (key in projection) { | ||
value = projection[key]; | ||
if ((key.indexOf('handle')) === 0 && (typeof value === 'function')) { | ||
eventName = key.replace(/^handle/, ''); | ||
eventNames.push(eventName); | ||
} | ||
} | ||
return resolve(eventNames); | ||
}); | ||
}; | ||
Projection.prototype._applyDomainEventsFromStoreToProjection = function(projectionId, projection, eventNames, aggregateId) { | ||
var findEvents; | ||
this._domainEventsApplied[projectionId] = {}; | ||
if (aggregateId) { | ||
findEvents = this._context.findDomainEventsByNameAndAggregateId(eventNames, aggregateId); | ||
} else { | ||
findEvents = this._context.findDomainEventsByName(eventNames); | ||
} | ||
return findEvents.then((function(_this) { | ||
return function(domainEvents) { | ||
var applyDomainEventsToProjectionPromise; | ||
if (!domainEvents || domainEvents.length === 0) { | ||
return; | ||
} | ||
applyDomainEventsToProjectionPromise = Promise.resolve(); | ||
domainEvents.forEach(function(domainEvent) { | ||
return applyDomainEventsToProjectionPromise = applyDomainEventsToProjectionPromise.then(function() { | ||
return _this._applyDomainEventToProjection(domainEvent, projection); | ||
}).then(function() { | ||
return _this._domainEventsApplied[projectionId][domainEvent.id] = true; | ||
}); | ||
}); | ||
return applyDomainEventsToProjectionPromise; | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype._subscribeProjectionToDomainEvents = function(projectionId, projectionName, projection, eventNames, aggregateId) { | ||
var domainEventHandler, subscribeProjectionToDomainEventsPromise; | ||
domainEventHandler = (function(_this) { | ||
return function(domainEvent) { | ||
if (_this._domainEventsApplied[projectionId][domainEvent.id]) { | ||
return; | ||
} | ||
return _this._applyDomainEventToProjection(domainEvent, projection).then(function() { | ||
_this._domainEventsApplied[projectionId][domainEvent.id] = true; | ||
}); | ||
}; | ||
})(this); | ||
subscribeProjectionToDomainEventsPromise = Promise.resolve(); | ||
eventNames.forEach((function(_this) { | ||
return function(eventName) { | ||
return subscribeProjectionToDomainEventsPromise = subscribeProjectionToDomainEventsPromise.then(function() { | ||
if (aggregateId) { | ||
return _this._context.subscribeToDomainEventWithAggregateId(eventName, aggregateId, domainEventHandler); | ||
} else { | ||
return _this._context.subscribeToDomainEvent(eventName, domainEventHandler); | ||
} | ||
}).then(function(subscriberId) { | ||
var base; | ||
if ((base = _this._handlerFunctions)[projectionId] == null) { | ||
base[projectionId] = []; | ||
} | ||
return _this._handlerFunctions[projectionId].push(subscriberId); | ||
}); | ||
}; | ||
})(this)); | ||
return subscribeProjectionToDomainEventsPromise; | ||
}; | ||
Projection.prototype._applyDomainEventToProjection = function(domainEvent, projection) { | ||
return Promise.resolve().then((function(_this) { | ||
return function() { | ||
if (!projection["handle" + domainEvent.name]) { | ||
logger.debug("Tried to apply DomainEvent '" + domainEvent.name + "' to Projection without a matching handle method"); | ||
return; | ||
} | ||
return projection["handle" + domainEvent.name](domainEvent); | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype.getInstance = function(projectionId) { | ||
return this._projectionInstances[projectionId]; | ||
}; | ||
Projection.prototype.destroyInstance = function(projectionId) { | ||
var i, len, ref, subscriberId, unsubscribePromises; | ||
if (!this._handlerFunctions[projectionId]) { | ||
return Promise.reject(new Error('Missing attribute projectionId')); | ||
} | ||
unsubscribePromises = []; | ||
ref = this._handlerFunctions[projectionId]; | ||
for (i = 0, len = ref.length; i < len; i++) { | ||
subscriberId = ref[i]; | ||
unsubscribePromises.push(this._context.unsubscribeFromDomainEvent(subscriberId)); | ||
} | ||
delete this._handlerFunctions[projectionId]; | ||
delete this._projectionInstances[projectionId]; | ||
return Promise.all(unsubscribePromises); | ||
}; | ||
return Projection; | ||
})(); | ||
module.exports = Projection; | ||
/***/ }, | ||
/* 11 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(12); | ||
/***/ }, | ||
/* 12 */ | ||
/***/ function(module, exports) { | ||
var UidGenerator; | ||
UidGenerator = (function() { | ||
function UidGenerator() {} | ||
UidGenerator.prototype.generateUid = function(delimiter) { | ||
if (delimiter == null) { | ||
delimiter = "-"; | ||
} | ||
return this._s4() + this._s4() + delimiter + this._s4() + delimiter + this._s4() + delimiter + this._s4() + delimiter + this._s4() + this._s4() + this._s4(); | ||
}; | ||
UidGenerator.prototype._s4 = function() { | ||
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); | ||
}; | ||
return UidGenerator; | ||
})(); | ||
module.exports = new UidGenerator; | ||
/***/ }, | ||
/* 13 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(14); | ||
/***/ }, | ||
/* 14 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var AggregateRepository, Context, DomainEvent, EventBus, Projection, logger, uidGenerator, | ||
@@ -235,11 +927,11 @@ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, | ||
EventBus = __webpack_require__(4); | ||
EventBus = __webpack_require__(15); | ||
Projection = __webpack_require__(7); | ||
Projection = __webpack_require__(9); | ||
DomainEvent = __webpack_require__(13); | ||
DomainEvent = __webpack_require__(18); | ||
AggregateRepository = __webpack_require__(15); | ||
AggregateRepository = __webpack_require__(20); | ||
logger = __webpack_require__(9); | ||
logger = __webpack_require__(7); | ||
@@ -606,10 +1298,10 @@ uidGenerator = __webpack_require__(11); | ||
/***/ }, | ||
/* 4 */ | ||
/* 15 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(5); | ||
module.exports = __webpack_require__(16); | ||
/***/ }, | ||
/* 5 */ | ||
/* 16 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -619,3 +1311,3 @@ | ||
Subscriber = __webpack_require__(6); | ||
Subscriber = __webpack_require__(17); | ||
@@ -755,3 +1447,3 @@ EventBus = (function() { | ||
/***/ }, | ||
/* 6 */ | ||
/* 17 */ | ||
/***/ function(module, exports) { | ||
@@ -774,301 +1466,12 @@ | ||
/***/ }, | ||
/* 7 */ | ||
/* 18 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(8); | ||
module.exports = __webpack_require__(19); | ||
/***/ }, | ||
/* 8 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var Projection, logger, uidGenerator, | ||
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; | ||
logger = __webpack_require__(9); | ||
uidGenerator = __webpack_require__(11); | ||
Projection = (function() { | ||
function Projection(_context) { | ||
this._context = _context; | ||
this._applyDomainEventToProjection = bind(this._applyDomainEventToProjection, this); | ||
this._handlerFunctions = {}; | ||
this._projectionInstances = {}; | ||
this._domainEventsApplied = {}; | ||
} | ||
Projection.prototype.initializeInstance = function(projectionName, Projection, params) { | ||
var aggregateId, diFn, diName, eventNames, projection, projectionId, ref; | ||
if (typeof Projection === 'function') { | ||
projection = new Projection; | ||
} else { | ||
projection = Projection; | ||
} | ||
if (this._context._di) { | ||
ref = this._context._di; | ||
for (diName in ref) { | ||
diFn = ref[diName]; | ||
projection[diName] = diFn; | ||
} | ||
} | ||
projectionId = uidGenerator.generateUid(); | ||
aggregateId = null; | ||
projection.$subscribeHandlersWithAggregateId = function(_aggregateId) { | ||
return aggregateId = _aggregateId; | ||
}; | ||
eventNames = null; | ||
return this._callInitializeOnProjection(projectionName, projection, params).then((function(_this) { | ||
return function() { | ||
return _this._parseEventNamesFromProjection(projection); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function(_eventNames) { | ||
eventNames = _eventNames; | ||
return _this._applyDomainEventsFromStoreToProjection(projectionId, projection, eventNames, aggregateId); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function() { | ||
return _this._subscribeProjectionToDomainEvents(projectionId, projectionName, projection, eventNames, aggregateId); | ||
}; | ||
})(this)).then((function(_this) { | ||
return function() { | ||
return _this._projectionInstances[projectionId] = projection; | ||
}; | ||
})(this)).then(function() { | ||
return projection.isInitialized = true; | ||
}).then(function() { | ||
return projectionId; | ||
}); | ||
}; | ||
Projection.prototype._callInitializeOnProjection = function(projectionName, projection, params) { | ||
return new Promise((function(_this) { | ||
return function(resolve, reject) { | ||
if (!projection.initialize) { | ||
logger.debug("[" + _this._context.name + "] No initialize function on Projection " + projectionName + " given, skipping"); | ||
return resolve(projection); | ||
} | ||
logger.debug("[" + _this._context.name + "] Calling initialize on Projection " + projectionName); | ||
return projection.initialize(params, function() { | ||
logger.debug("[" + _this._context.name + "] Finished initialize call on Projection " + projectionName); | ||
return resolve(projection); | ||
}); | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype._parseEventNamesFromProjection = function(projection) { | ||
return new Promise(function(resolve, reject) { | ||
var eventName, eventNames, key, value; | ||
eventNames = []; | ||
for (key in projection) { | ||
value = projection[key]; | ||
if ((key.indexOf('handle')) === 0 && (typeof value === 'function')) { | ||
eventName = key.replace(/^handle/, ''); | ||
eventNames.push(eventName); | ||
} | ||
} | ||
return resolve(eventNames); | ||
}); | ||
}; | ||
Projection.prototype._applyDomainEventsFromStoreToProjection = function(projectionId, projection, eventNames, aggregateId) { | ||
var findEvents; | ||
this._domainEventsApplied[projectionId] = {}; | ||
if (aggregateId) { | ||
findEvents = this._context.findDomainEventsByNameAndAggregateId(eventNames, aggregateId); | ||
} else { | ||
findEvents = this._context.findDomainEventsByName(eventNames); | ||
} | ||
return findEvents.then((function(_this) { | ||
return function(domainEvents) { | ||
var applyDomainEventsToProjectionPromise; | ||
if (!domainEvents || domainEvents.length === 0) { | ||
return; | ||
} | ||
applyDomainEventsToProjectionPromise = Promise.resolve(); | ||
domainEvents.forEach(function(domainEvent) { | ||
return applyDomainEventsToProjectionPromise = applyDomainEventsToProjectionPromise.then(function() { | ||
return _this._applyDomainEventToProjection(domainEvent, projection); | ||
}).then(function() { | ||
return _this._domainEventsApplied[projectionId][domainEvent.id] = true; | ||
}); | ||
}); | ||
return applyDomainEventsToProjectionPromise; | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype._subscribeProjectionToDomainEvents = function(projectionId, projectionName, projection, eventNames, aggregateId) { | ||
var domainEventHandler, subscribeProjectionToDomainEventsPromise; | ||
domainEventHandler = (function(_this) { | ||
return function(domainEvent) { | ||
if (_this._domainEventsApplied[projectionId][domainEvent.id]) { | ||
return; | ||
} | ||
return _this._applyDomainEventToProjection(domainEvent, projection).then(function() { | ||
_this._domainEventsApplied[projectionId][domainEvent.id] = true; | ||
}); | ||
}; | ||
})(this); | ||
subscribeProjectionToDomainEventsPromise = Promise.resolve(); | ||
eventNames.forEach((function(_this) { | ||
return function(eventName) { | ||
return subscribeProjectionToDomainEventsPromise = subscribeProjectionToDomainEventsPromise.then(function() { | ||
if (aggregateId) { | ||
return _this._context.subscribeToDomainEventWithAggregateId(eventName, aggregateId, domainEventHandler); | ||
} else { | ||
return _this._context.subscribeToDomainEvent(eventName, domainEventHandler); | ||
} | ||
}).then(function(subscriberId) { | ||
var base; | ||
if ((base = _this._handlerFunctions)[projectionId] == null) { | ||
base[projectionId] = []; | ||
} | ||
return _this._handlerFunctions[projectionId].push(subscriberId); | ||
}); | ||
}; | ||
})(this)); | ||
return subscribeProjectionToDomainEventsPromise; | ||
}; | ||
Projection.prototype._applyDomainEventToProjection = function(domainEvent, projection) { | ||
return Promise.resolve().then((function(_this) { | ||
return function() { | ||
if (!projection["handle" + domainEvent.name]) { | ||
logger.debug("Tried to apply DomainEvent '" + domainEvent.name + "' to Projection without a matching handle method"); | ||
return; | ||
} | ||
return projection["handle" + domainEvent.name](domainEvent); | ||
}; | ||
})(this)); | ||
}; | ||
Projection.prototype.getInstance = function(projectionId) { | ||
return this._projectionInstances[projectionId]; | ||
}; | ||
Projection.prototype.destroyInstance = function(projectionId) { | ||
var i, len, ref, subscriberId, unsubscribePromises; | ||
if (!this._handlerFunctions[projectionId]) { | ||
return Promise.reject(new Error('Missing attribute projectionId')); | ||
} | ||
unsubscribePromises = []; | ||
ref = this._handlerFunctions[projectionId]; | ||
for (i = 0, len = ref.length; i < len; i++) { | ||
subscriberId = ref[i]; | ||
unsubscribePromises.push(this._context.unsubscribeFromDomainEvent(subscriberId)); | ||
} | ||
delete this._handlerFunctions[projectionId]; | ||
delete this._projectionInstances[projectionId]; | ||
return Promise.all(unsubscribePromises); | ||
}; | ||
return Projection; | ||
})(); | ||
module.exports = Projection; | ||
/***/ }, | ||
/* 9 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(10); | ||
/***/ }, | ||
/* 10 */ | ||
/* 19 */ | ||
/***/ function(module, exports) { | ||
module.exports = { | ||
_logLevel: 1, | ||
setLogLevel: function(logLevel) { | ||
return this._logLevel = (function() { | ||
switch (logLevel) { | ||
case 'debug': | ||
return 0; | ||
case 'warn': | ||
return 1; | ||
case 'info': | ||
return 2; | ||
case 'error': | ||
return 3; | ||
} | ||
})(); | ||
}, | ||
debug: function() { | ||
if (this._logLevel > 0) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
warn: function() { | ||
if (this._logLevel > 1) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
info: function() { | ||
if (this._logLevel > 2) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
}, | ||
error: function() { | ||
if (this._logLevel > 3) { | ||
return; | ||
} | ||
return console.log.apply(console, arguments); | ||
} | ||
}; | ||
/***/ }, | ||
/* 11 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(12); | ||
/***/ }, | ||
/* 12 */ | ||
/***/ function(module, exports) { | ||
var UidGenerator; | ||
UidGenerator = (function() { | ||
function UidGenerator() {} | ||
UidGenerator.prototype.generateUid = function(delimiter) { | ||
if (delimiter == null) { | ||
delimiter = "-"; | ||
} | ||
return this._s4() + this._s4() + delimiter + this._s4() + delimiter + this._s4() + delimiter + this._s4() + delimiter + this._s4() + this._s4() + this._s4(); | ||
}; | ||
UidGenerator.prototype._s4 = function() { | ||
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); | ||
}; | ||
return UidGenerator; | ||
})(); | ||
module.exports = new UidGenerator; | ||
/***/ }, | ||
/* 13 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(14); | ||
/***/ }, | ||
/* 14 */ | ||
/***/ function(module, exports) { | ||
var DomainEvent; | ||
@@ -1094,10 +1497,10 @@ | ||
/***/ }, | ||
/* 15 */ | ||
/* 20 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(16); | ||
module.exports = __webpack_require__(21); | ||
/***/ }, | ||
/* 16 */ | ||
/* 21 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1108,5 +1511,5 @@ | ||
Aggregate = __webpack_require__(17); | ||
Aggregate = __webpack_require__(22); | ||
logger = __webpack_require__(9); | ||
logger = __webpack_require__(7); | ||
@@ -1212,10 +1615,10 @@ uidGenerator = __webpack_require__(11); | ||
/***/ }, | ||
/* 17 */ | ||
/* 22 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(18); | ||
module.exports = __webpack_require__(23); | ||
/***/ }, | ||
/* 18 */ | ||
/* 23 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1226,3 +1629,3 @@ | ||
logger = __webpack_require__(9); | ||
logger = __webpack_require__(7); | ||
@@ -1286,405 +1689,2 @@ Aggregate = (function() { | ||
/***/ }, | ||
/* 19 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(true) | ||
module.exports = factory(); | ||
else if(typeof define === 'function' && define.amd) | ||
define(factory); | ||
else if(typeof exports === 'object') | ||
exports["eventric-remote-inmemory"] = factory(); | ||
else | ||
root["eventric-remote-inmemory"] = factory(); | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ exports: {}, | ||
/******/ id: moduleId, | ||
/******/ loaded: false | ||
/******/ }; | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ // Flag the module as loaded | ||
/******/ module.loaded = true; | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = { | ||
endpoint: __webpack_require__(1), | ||
client: __webpack_require__(3) | ||
}; | ||
/***/ }, | ||
/* 1 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var InMemoryRemoteEndpoint, pubSub, | ||
slice = [].slice; | ||
pubSub = __webpack_require__(2); | ||
InMemoryRemoteEndpoint = (function() { | ||
function InMemoryRemoteEndpoint() {} | ||
InMemoryRemoteEndpoint.prototype.setRPCHandler = function(handleRPCRequest) { | ||
this.handleRPCRequest = handleRPCRequest; | ||
}; | ||
InMemoryRemoteEndpoint.prototype.publish = function() { | ||
var aggregateId, arg, contextName, domainEventName, fullEventName, i, payload; | ||
contextName = arguments[0], arg = 3 <= arguments.length ? slice.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), payload = arguments[i++]; | ||
domainEventName = arg[0], aggregateId = arg[1]; | ||
fullEventName = pubSub.getFullEventName(contextName, domainEventName, aggregateId); | ||
return pubSub.publish(fullEventName, payload); | ||
}; | ||
return InMemoryRemoteEndpoint; | ||
})(); | ||
module.exports = new InMemoryRemoteEndpoint; | ||
/***/ }, | ||
/* 2 */ | ||
/***/ function(module, exports) { | ||
var PubSub, | ||
slice = [].slice; | ||
PubSub = (function() { | ||
function PubSub() { | ||
this._subscribers = []; | ||
this._subscriberId = 0; | ||
} | ||
PubSub.prototype.subscribe = function(eventName, subscriberFunction) { | ||
return new Promise((function(_this) { | ||
return function(resolve) { | ||
var subscriber; | ||
subscriber = { | ||
eventName: eventName, | ||
subscriberFunction: subscriberFunction, | ||
subscriberId: _this._getNextSubscriberId() | ||
}; | ||
_this._subscribers.push(subscriber); | ||
return resolve(subscriber.subscriberId); | ||
}; | ||
})(this)); | ||
}; | ||
PubSub.prototype.publish = function(eventName, payload) { | ||
var subscribers; | ||
subscribers = this._getRelevantSubscribers(eventName); | ||
return Promise.all(subscribers.map(function(subscriber) { | ||
return subscriber.subscriberFunction(payload); | ||
})); | ||
}; | ||
PubSub.prototype._getRelevantSubscribers = function(eventName) { | ||
if (eventName) { | ||
return this._subscribers.filter(function(subscriber) { | ||
return subscriber.eventName === eventName; | ||
}); | ||
} else { | ||
return this._subscribers; | ||
} | ||
}; | ||
PubSub.prototype.unsubscribe = function(subscriberId) { | ||
return new Promise((function(_this) { | ||
return function(resolve) { | ||
_this._subscribers = _this._subscribers.filter(function(subscriber) { | ||
return subscriber.subscriberId !== subscriberId; | ||
}); | ||
return resolve(); | ||
}; | ||
})(this)); | ||
}; | ||
PubSub.prototype._getNextSubscriberId = function() { | ||
return this._subscriberId++; | ||
}; | ||
PubSub.prototype.getFullEventName = function() { | ||
var eventParts; | ||
eventParts = 1 <= arguments.length ? slice.call(arguments, 0) : []; | ||
eventParts = eventParts.filter(function(eventPart) { | ||
return eventPart != null; | ||
}); | ||
return eventParts.join('/'); | ||
}; | ||
return PubSub; | ||
})(); | ||
module.exports = new PubSub; | ||
/***/ }, | ||
/* 3 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var InMemoryRemoteClient, endpoint, pubSub, | ||
slice = [].slice; | ||
endpoint = __webpack_require__(1); | ||
pubSub = __webpack_require__(2); | ||
InMemoryRemoteClient = (function() { | ||
function InMemoryRemoteClient() {} | ||
InMemoryRemoteClient.prototype.rpc = function(rpcRequest) { | ||
return new Promise((function(_this) { | ||
return function(resolve, reject) { | ||
return endpoint.handleRPCRequest(rpcRequest, function(error, result) { | ||
if (error) { | ||
return reject(error); | ||
} else { | ||
return resolve(result); | ||
} | ||
}); | ||
}; | ||
})(this)); | ||
}; | ||
InMemoryRemoteClient.prototype.subscribe = function() { | ||
var aggregateId, arg, contextName, domainEventName, fullEventName, handlerFunction, i; | ||
contextName = arguments[0], arg = 3 <= arguments.length ? slice.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), handlerFunction = arguments[i++]; | ||
domainEventName = arg[0], aggregateId = arg[1]; | ||
fullEventName = pubSub.getFullEventName(contextName, domainEventName, aggregateId); | ||
return pubSub.subscribe(fullEventName, handlerFunction); | ||
}; | ||
InMemoryRemoteClient.prototype.unsubscribe = function(subscriberId) { | ||
return pubSub.unsubscribe(subscriberId); | ||
}; | ||
return InMemoryRemoteClient; | ||
})(); | ||
module.exports = new InMemoryRemoteClient; | ||
/***/ } | ||
/******/ ]) | ||
}); | ||
; | ||
/***/ }, | ||
/* 20 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(21); | ||
/***/ }, | ||
/* 21 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var GlobalContext, | ||
slice = [].slice; | ||
GlobalContext = (function() { | ||
function GlobalContext() { | ||
this.name = 'Global'; | ||
} | ||
GlobalContext.prototype.findDomainEventsByName = function() { | ||
var findArguments, findDomainEventsByName; | ||
findArguments = 1 <= arguments.length ? slice.call(arguments, 0) : []; | ||
findDomainEventsByName = this._getAllContexts().map(function(context) { | ||
return context.findDomainEventsByName.apply(context, findArguments); | ||
}); | ||
return Promise.all(findDomainEventsByName).then((function(_this) { | ||
return function(domainEventsByContext) { | ||
var domainEvents; | ||
domainEvents = _this._combineDomainEventsByContext(domainEventsByContext); | ||
_this._sortDomainEventsByTimestamp(domainEvents); | ||
return domainEvents; | ||
}; | ||
})(this)); | ||
}; | ||
GlobalContext.prototype.subscribeToDomainEvent = function(eventName, domainEventHandler) { | ||
var subscribeToDomainEvents; | ||
subscribeToDomainEvents = this._getAllContexts().map(function(context) { | ||
return context.subscribeToDomainEvent(eventName, domainEventHandler); | ||
}); | ||
return Promise.all(subscribeToDomainEvents); | ||
}; | ||
GlobalContext.prototype._getAllContexts = function() { | ||
var contextNames, eventric; | ||
eventric = __webpack_require__(1); | ||
contextNames = eventric.getRegisteredContextNames(); | ||
return contextNames.map((function(_this) { | ||
return function(contextName) { | ||
return eventric.remote(contextName); | ||
}; | ||
})(this)); | ||
}; | ||
GlobalContext.prototype._combineDomainEventsByContext = function(domainEventsByContext) { | ||
return domainEventsByContext.reduce(function(allDomainEvents, contextDomainEvents) { | ||
return allDomainEvents.concat(contextDomainEvents); | ||
}, []); | ||
}; | ||
GlobalContext.prototype._sortDomainEventsByTimestamp = function(domainEvents) { | ||
return domainEvents.sort(function(firstEvent, secondEvent) { | ||
return firstEvent.timestamp - secondEvent.timestamp; | ||
}); | ||
}; | ||
return GlobalContext; | ||
})(); | ||
module.exports = GlobalContext; | ||
/***/ }, | ||
/* 22 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __webpack_require__(23); | ||
/***/ }, | ||
/* 23 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var Projection, Remote, logger, remoteInmemory; | ||
remoteInmemory = __webpack_require__(19); | ||
logger = __webpack_require__(9); | ||
Projection = __webpack_require__(7); | ||
Remote = (function() { | ||
Remote.ALLOWED_RPC_OPERATIONS = ['command', 'query', 'findDomainEventsByName', 'findDomainEventsByNameAndAggregateId']; | ||
function Remote(_contextName) { | ||
this._contextName = _contextName; | ||
this.name = this._contextName; | ||
this._params = {}; | ||
this._projectionClasses = {}; | ||
this._projectionInstances = {}; | ||
this._handlerFunctions = {}; | ||
this.projectionService = new Projection(this); | ||
this.setClient(remoteInmemory.client); | ||
this._exposeRpcOperationsAsMemberFunctions(); | ||
} | ||
Remote.prototype._exposeRpcOperationsAsMemberFunctions = function() { | ||
return Remote.ALLOWED_RPC_OPERATIONS.forEach((function(_this) { | ||
return function(rpcOperation) { | ||
return _this[rpcOperation] = function() { | ||
return _this._rpc(rpcOperation, arguments); | ||
}; | ||
}; | ||
})(this)); | ||
}; | ||
Remote.prototype.subscribeToAllDomainEvents = function(handlerFn) { | ||
return this._client.subscribe(this._contextName, handlerFn); | ||
}; | ||
Remote.prototype.subscribeToDomainEvent = function(domainEventName, handlerFn) { | ||
return this._client.subscribe(this._contextName, domainEventName, handlerFn); | ||
}; | ||
Remote.prototype.subscribeToDomainEventWithAggregateId = function(domainEventName, aggregateId, handlerFn) { | ||
return this._client.subscribe(this._contextName, domainEventName, aggregateId, handlerFn); | ||
}; | ||
Remote.prototype.unsubscribeFromDomainEvent = function(subscriberId) { | ||
return this._client.unsubscribe(subscriberId); | ||
}; | ||
Remote.prototype._rpc = function(functionName, args) { | ||
return this._client.rpc({ | ||
contextName: this._contextName, | ||
functionName: functionName, | ||
args: Array.prototype.slice.call(args) | ||
}); | ||
}; | ||
Remote.prototype.setClient = function(client) { | ||
this._client = client; | ||
return this; | ||
}; | ||
Remote.prototype.addProjection = function(projectionName, projectionClass) { | ||
this._projectionClasses[projectionName] = projectionClass; | ||
return this; | ||
}; | ||
Remote.prototype.initializeProjection = function(projectionObject, params) { | ||
return this.projectionService.initializeInstance('', projectionObject, params); | ||
}; | ||
Remote.prototype.initializeProjectionInstance = function(projectionName, params) { | ||
if (!this._projectionClasses[projectionName]) { | ||
return Promise.reject(new Error("Given projection " + projectionName + " not registered on remote")); | ||
} | ||
return this.projectionService.initializeInstance(projectionName, this._projectionClasses[projectionName], params); | ||
}; | ||
Remote.prototype.getProjectionInstance = function(projectionId) { | ||
return this.projectionService.getInstance(projectionId); | ||
}; | ||
Remote.prototype.destroyProjectionInstance = function(projectionId) { | ||
return this.projectionService.destroyInstance(projectionId, this); | ||
}; | ||
return Remote; | ||
})(); | ||
module.exports = Remote; | ||
/***/ }, | ||
/* 24 */ | ||
@@ -1691,0 +1691,0 @@ /***/ function(module, exports, __webpack_require__) { |
@@ -14,3 +14,3 @@ { | ||
"author": "efa Team <team@efa-gmbh.com>", | ||
"version": "0.17.0", | ||
"version": "0.17.1", | ||
"repository": { | ||
@@ -23,4 +23,3 @@ "type": "git", | ||
"test": "node_modules/.bin/gulp specs", | ||
"prepublish": "node_modules/.bin/gulp build", | ||
"postinstall": "node_modules/.bin/gulp symlink" | ||
"prepublish": "node_modules/.bin/gulp symlink && node_modules/.bin/gulp build" | ||
}, | ||
@@ -27,0 +26,0 @@ "dependencies": { |
Sorry, the diff of this file is not supported yet
Install scripts
Supply chain riskInstall scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.
Found 1 instance in 1 package
0
720305