UNPKG

base-domain

Version:

simple module to help build Domain-Driven Design

54 lines (38 loc) 956 B
'use strict' ###* @class EntityPool @module base-domain ### class EntityPool constructor: -> ###* Register an entity to pool @method set @param {Entity} model ### set: (model) -> Model = model.constructor return if not Model.isEntity or not model?.id? modelName = Model.getName() throw new Error("invalid model name #{modelName}") if EntityPool::[modelName] @[modelName] ?= {} @[modelName][model.id] = model ###* Get registred models by model name and id @method get @param {String} modelName @param {String} id @return {Entity} ### get: (modelName, id) -> @[modelName]?[id] ###* Clear all the registered entities @method clear ### clear: -> for modelName, models of @ for id of models delete models[id] delete models[modelName] module.exports = EntityPool