UNPKG

@ahmedhegazee/nestjs-telescope

Version:

Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling

70 lines 2.96 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.StorageService = void 0; const common_1 = require("@nestjs/common"); const memory_storage_driver_1 = require("./drivers/memory-storage.driver"); const file_storage_driver_1 = require("./drivers/file-storage.driver"); const redis_storage_driver_1 = require("./drivers/redis-storage.driver"); let StorageService = class StorageService { constructor(config) { this.config = config; this.driver = this.createDriver(); } createDriver() { switch (this.config.storage.driver) { case "memory": return new memory_storage_driver_1.MemoryStorageDriver(); case "file": return new file_storage_driver_1.FileStorageDriver(this.config); case "database": throw new Error("Database storage driver requires TypeORM setup. Use memory, file, or redis instead."); case "redis": return new redis_storage_driver_1.RedisStorageDriver(this.config); default: throw new Error(`Unknown storage driver: ${this.config.storage.driver}`); } } async store(entry) { return this.driver.store(entry); } async storeBatch(entries) { return this.driver.storeBatch(entries); } async find(filter) { return this.driver.find(filter); } async findById(id) { return this.driver.findById(id); } async delete(id) { return this.driver.delete(id); } async clear() { return this.driver.clear(); } async prune(olderThan) { return this.driver.prune(olderThan); } async getStats() { return this.driver.getStats(); } }; exports.StorageService = StorageService; exports.StorageService = StorageService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, common_1.Inject)("TELESCOPE_CONFIG")), __metadata("design:paramtypes", [Object]) ], StorageService); //# sourceMappingURL=storage.service.js.map