{"version":3,"sources":["../../../src/instance/settings.ts","/home/runner/work/equipped/equipped/dist/cjs/instance/settings.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.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",null]}