{"version":3,"sources":["../../../src/instance/settings.ts"],"names":["redisJobsConfigPipe","v","cachePipe","_","e","config","kafkaConfigPipe","RabbitMQEventBus","dbPipe","mongoDbConfigPipe","KafkaEventBus","MongoDb","serverTypePipe","ExpressServer","FastifyServer"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.min.cjs","sourcesContent":["import { type ConditionalObjectKeys, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { InMemoryCache, RedisCache, redisConfigPipe } from '../cache'\nimport { MongoDb, mongoDbConfigPipe } from '../dbs'\nimport { KafkaEventBus, RabbitMQEventBus, kafkaConfigPipe, rabbitmqConfigPipe } from '../events'\nimport { RedisJob, redisJobsConfigPipe } from '../jobs'\nimport { ExpressServer, FastifyServer, serverConfigPipe } from '../server'\n\nexport const instanceSettingsPipe = () =>\n\tv.object({\n\t\tapp: v.object({\n\t\t\tname: v.string(),\n\t\t}),\n\t\tlog: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlevel: v.defaults(v.in(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'] as const), 'info'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tutils: v.defaults(\n\t\t\tv.object({\n\t\t\t\thashSaltRounds: v.defaults(v.number(), 10),\n\t\t\t\tpaginationDefaultLimit: v.defaults(v.number(), 100),\n\t\t\t\tmaxFileUploadSizeInMb: v.defaults(v.number(), 500),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type Settings = PipeOutput<ReturnType<typeof instanceSettingsPipe>>\nexport type SettingsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof instanceSettingsPipe>>>\n\nexport type CacheTypes = {\n\t'in-memory': InMemoryCache\n\tredis: RedisCache\n}\n\nexport const cachePipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\t'in-memory': v.object({ type: v.is('in-memory' as const) }).pipe(() => new InMemoryCache()),\n\t\tredis: v\n\t\t\t.merge(redisConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisCache(config)),\n\t})\n\nexport type JobTypes = {\n\tredis: RedisJob\n}\n\nexport const jobsPipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\tredis: v\n\t\t\t.merge(redisJobsConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisJob(config)),\n\t})\n\nexport type EventBusTypes = {\n\tkafka: KafkaEventBus\n\trabbitmq: RabbitMQEventBus\n}\n\nexport const eventBusPipe = () =>\n\tv.discriminate((e: any) => e?.type, {\n\t\tkafka: v\n\t\t\t.merge(kafkaConfigPipe(), v.object({ type: v.is('kafka' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new KafkaEventBus(config)),\n\t\trabbitmq: v\n\t\t\t.merge(rabbitmqConfigPipe(), v.object({ type: v.is('rabbitmq' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RabbitMQEventBus(config)),\n\t})\n\nexport type DbTypes = {\n\tmongo: MongoDb\n}\n\nexport const dbPipe = () =>\n\tv\n\t\t.object({\n\t\t\tdb: v.discriminate((e) => e?.type, {\n\t\t\t\tmongo: v.merge(mongoDbConfigPipe(), v.object({ type: v.is('mongo' as const) })),\n\t\t\t}),\n\t\t\tchanges: v.optional(\n\t\t\t\tv.object({\n\t\t\t\t\tdebeziumUrl: v.string(),\n\t\t\t\t\teventBus: v.instanceOf(KafkaEventBus),\n\t\t\t\t}),\n\t\t\t),\n\t\t})\n\t\t.pipe((config) => new MongoDb(config.db, { changes: config.changes }))\n\nexport type ServerTypes = {\n\texpress: ExpressServer\n\tfastify: FastifyServer\n}\n\nexport const serverTypePipe = () =>\n\tserverConfigPipe().pipe((config) => (config.type === 'express' ? new ExpressServer(config) : new FastifyServer(config)))\n"]}