@twg-group/container-manager
Version:
Container management for Docker, Swarm, Kubernetes
33 lines • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseStrategy = void 0;
const common_1 = require("@nestjs/common");
class BaseStrategy {
logger;
constructor(logger) {
this.logger = logger;
}
validateConfig(config) {
if (config.ports) {
this.validatePortUniqueness(config.ports);
}
}
validatePortUniqueness(ports) {
const hostPorts = ports.map((p) => p.hostPort);
if (new Set(hostPorts).size !== hostPorts.length) {
throw new Error('Duplicate host ports detected');
}
}
generateName(prefix = 'container') {
return `${prefix}-${Math.random().toString(36).slice(2, 8)}`;
}
handleError(error, context = '') {
const err = error;
const message = err.message || 'Unknown error occurred';
const statusCode = err.statusCode ?? 500;
this.logger.error(error);
throw new common_1.HttpException({ message, context: context || undefined, statusCode }, statusCode);
}
}
exports.BaseStrategy = BaseStrategy;
//# sourceMappingURL=base.strategy.js.map