kakapo
Version:
Next generation mocking framework in Javascript
50 lines (49 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Router_1 = require("../Router");
var Database_1 = require("../Database");
var isRouter = function (entity) { return entity instanceof Router_1.Router; };
var isDb = function (entity) { return entity instanceof Database_1.Database; };
var Server = (function () {
function Server(config) {
if (config === void 0) { config = {}; }
this.config = config;
this.db = null;
this.router = null;
}
Server.prototype.use = function (entity) {
if (isDb(entity)) {
this.db = entity;
}
else if (isRouter(entity)) {
this.router = entity;
this.router.intercept();
}
else {
console.warn("KAKAPO: Server doesn't know how to use the entity " + entity);
}
this.linkEntities();
};
Server.prototype.remove = function (entity) {
if (isDb(entity) &&
this.router &&
this.router.interceptorConfig.db === entity) {
this.router.interceptorConfig.db = null;
}
else if (isRouter(entity) && this.router == entity) {
this.router.reset();
}
else {
console.warn("KAKAPO: Entity doesn't belongs to server", entity);
}
};
Server.prototype.linkEntities = function () {
var router = this.router;
var db = this.db;
if (router && db && router.interceptorConfig.db !== db) {
router.interceptorConfig.db = db;
}
};
return Server;
}());
exports.Server = Server;