@orchestrated-io/cqrs-domain
Version:
Node-cqrs-domain is a node.js module based on node-eventstore. It can be very useful as domain component if you work with (d)ddd, cqrs, eventdenormalizer, host, etc.
42 lines (38 loc) • 1.3 kB
JavaScript
var definitions = {
Context: require('./../definitions/context'),
Aggregate: require('./../definitions/aggregate'),
Command: require('./../definitions/command'),
Event: require('./../definitions/event'),
BusinessRule: require('./../definitions/businessRule'),
PreCondition: require('./../definitions/preCondition'),
PreLoadCondition: require('./../definitions/preLoadCondition'),
LoadingEventTransformer: require('./../definitions/loadingEventTransformer'),
CommittingEventTransformer: require('./../definitions/committingEventTransformer'),
CommandHandler: require('./../definitions/commandHandler'),
errors: {
BusinessRuleError: require('../errors/businessRuleError'),
ValidationError: require('../errors/validationError'),
}
}
module.exports = function (loader) {
return function(domainPath, validatorExtension, useLoaderExtensions, callback) {
var options = {
domainPath: domainPath,
definitions: definitions,
validatorExtension: validatorExtension,
useLoaderExtensions: useLoaderExtensions,
};
var tree;
// async
if (loader.length > 1) {
return loader(options, callback);
}
// sync
try {
tree = loader(options);
} catch(e) {
return callback(e);
}
callback(null, tree);
};
}