{"version":3,"file":"tenantConfigResolver.cjs","sources":["../../../../../packages/engine-http/src/config/tenantConfigResolver.ts"],"sourcesContent":["import { TenantConfig } from './config'\nimport {\n\tcreateObjectParametersResolver,\n\tMerger,\n\tParametersResolver,\n\tresolveParameters,\n\tUndefinedParameterError,\n} from '@contember/config-loader'\nimport { tenantConfigSchema } from './configSchema'\n\nexport type TenantConfigResolver =  (slug: string | undefined, additionalConfig: any) => TenantConfig\n\ntype Env = Record<string, string>\n\nexport const createTenantConfigResolver = (env: Env, tenantConfig: any): TenantConfigResolver =>\n\t(slug, additionalConfig) => {\n\t\tconst mergedConfig = Merger.merge(tenantConfig, additionalConfig)\n\t\tconst parametersResolver = createObjectParametersResolver({ env })\n\t\tconst tenantParametersResolver = createTenantParametersResolver(env)\n\t\tconst resolvedConfig = resolveParameters(mergedConfig, (parts, path, dataResolver) => {\n\t\t\tif (parts[0] === 'tenant') {\n\t\t\t\treturn tenantParametersResolver(parts, path, dataResolver)\n\t\t\t}\n\t\t\treturn parametersResolver(parts, path, dataResolver)\n\t\t})\n\t\treturn tenantConfigSchema(resolvedConfig)\n\t}\n\n\nexport const createTenantParametersResolver = (env: Env): ParametersResolver =>\n\tparts => {\n\t\tif (parts[1] === 'env') {\n\t\t\tconst envName = parts[2]\n\t\t\tconst envValue = env['TENANT_' + envName] || env['DEFAULT_' + envName]\n\t\t\tif (envValue === undefined) {\n\t\t\t\tthrow new UndefinedParameterError(`ENV variable \"${'TENANT_' + envName}\" not found.`)\n\t\t\t}\n\t\t\treturn envValue\n\t\t}\n\t\tthrow new UndefinedParameterError(`Parameter \"${parts.join('.')}\" not found.`)\n\t}\n"],"names":["Merger","createObjectParametersResolver","resolveParameters","tenantConfigSchema","UndefinedParameterError"],"mappings":";;;;AAcO,MAAM,6BAA6B,CAAC,KAAU,iBACpD,CAAC,MAAM,qBAAqB;AAC3B,QAAM,eAAeA,aAAA,OAAO,MAAM,cAAc,gBAAgB;AAChE,QAAM,qBAAqBC,aAAAA,+BAA+B,EAAE,KAAK;AAC3D,QAAA,2BAA2B,+BAA+B,GAAG;AACnE,QAAM,iBAAiBC,aAAAA,kBAAkB,cAAc,CAAC,OAAO,MAAM,iBAAiB;AACjF,QAAA,MAAM,CAAC,MAAM,UAAU;AACnB,aAAA,yBAAyB,OAAO,MAAM,YAAY;AAAA,IAAA;AAEnD,WAAA,mBAAmB,OAAO,MAAM,YAAY;AAAA,EAAA,CACnD;AACD,SAAOC,aAAAA,mBAAmB,cAAc;AACzC;AAGY,MAAA,iCAAiC,CAAC,QAC9C,CAAS,UAAA;AACJ,MAAA,MAAM,CAAC,MAAM,OAAO;AACjB,UAAA,UAAU,MAAM,CAAC;AACvB,UAAM,WAAW,IAAI,YAAY,OAAO,KAAK,IAAI,aAAa,OAAO;AACrE,QAAI,aAAa,QAAW;AAC3B,YAAM,IAAIC,aAAA,wBAAwB,iBAAiB,YAAY,OAAO,cAAc;AAAA,IAAA;AAE9E,WAAA;AAAA,EAAA;AAER,QAAM,IAAIA,aAAAA,wBAAwB,cAAc,MAAM,KAAK,GAAG,CAAC,cAAc;AAC9E;;;"}