inceptum
Version:
hipages take on the foundational library for enterprise-grade apps written in NodeJS
32 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Lifecycle_1 = require("../Lifecycle");
const LogManager_1 = require("../../log/LogManager");
const SingletonDefinition_1 = require("./SingletonDefinition");
class PreinstantiatedSingletonDefinition extends SingletonDefinition_1.SingletonDefinition {
constructor(instance, name, logger) {
if (typeof instance !== 'object') {
throw new Error(`Only objects can be used as preinstatiated objects. Provided a ${typeof instance} for Object Definition ${name}`);
}
super(instance.constructor, name, logger || LogManager_1.LogManager.getLogger(__filename));
this.instance = instance;
this.withLazyLoading(false);
}
getInstance() {
this.setStatus(Lifecycle_1.LifecycleState.STARTED);
return Promise.resolve(this.instance);
}
// tslint:disable-next-line:prefer-function-over-method
doStart() {
return Promise.resolve();
}
// tslint:disable-next-line:prefer-function-over-method
doStop() {
return Promise.resolve();
}
getCopyInstance() {
return new PreinstantiatedSingletonDefinition(this.instance, this.name, this.logger);
}
}
exports.PreinstantiatedSingletonDefinition = PreinstantiatedSingletonDefinition;
//# sourceMappingURL=PreinstantiatedSingletonDefinition.js.map