UNPKG

@hotmeshio/hotmesh

Version:

Serverless Workflow

38 lines (37 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StreamServiceFactory = void 0; const utils_1 = require("../../modules/utils"); const ioredis_1 = require("./providers/redis/ioredis"); const redis_1 = require("./providers/redis/redis"); const nats_1 = require("./providers/nats/nats"); const postgres_1 = require("./providers/postgres/postgres"); class StreamServiceFactory { static async init(provider, storeProvider, namespace, appId, logger) { let service; const providerType = (0, utils_1.identifyProvider)(provider); if (providerType === 'nats') { let storeProvider; if ((0, utils_1.identifyProvider)(storeProvider) === 'redis') { storeProvider = storeProvider; } else { //ioredis storeProvider = storeProvider; } service = new nats_1.NatsStreamService(provider, storeProvider); } else if (providerType === 'postgres') { service = new postgres_1.PostgresStreamService(provider, storeProvider); } else if (providerType === 'redis') { service = new redis_1.RedisStreamService(provider, storeProvider); } else if (providerType === 'ioredis') { service = new ioredis_1.IORedisStreamService(provider, storeProvider); } //etc register other providers here await service.init(namespace, appId, logger); return service; } } exports.StreamServiceFactory = StreamServiceFactory;