{"version":3,"file":"provider.mjs","sources":["../../../src/engine/validation/provider.ts"],"sourcesContent":["import { capitalize } from 'lodash/fp';\n\nimport type { IDestinationProvider, ISourceProvider, ProviderType } from '../../../types';\nimport { TransferEngineValidationError } from '../errors';\n\nconst reject = (reason: string): never => {\n throw new TransferEngineValidationError(`Invalid provider supplied. ${reason}`);\n};\n\nconst validateProvider = (\n type: ProviderType,\n provider?: ([T] extends ['source'] ? ISourceProvider : IDestinationProvider) | null\n) => {\n if (!provider) {\n return reject(\n `Expected an instance of \"${capitalize(type)}Provider\", but got \"${typeof provider}\" instead.`\n );\n }\n\n if (provider.type !== type) {\n return reject(\n `Expected the provider to be of type \"${type}\" but got \"${provider.type}\" instead.`\n );\n }\n};\n\nexport { validateProvider };\n"],"names":["reject","reason","TransferEngineValidationError","validateProvider","type","provider","capitalize"],"mappings":";;;AAKA,MAAMA,SAAS,CAACC,MAAAA,GAAAA;AACd,IAAA,MAAM,IAAIC,6BAA8B,CAAA,CAAC,2BAA2B,EAAED,OAAO,CAAC,CAAA;AAChF,CAAA;AAEME,MAAAA,gBAAAA,GAAmB,CACvBC,IACAC,EAAAA,QAAAA,GAAAA;AAEA,IAAA,IAAI,CAACA,QAAU,EAAA;QACb,OAAOL,MAAAA,CACL,CAAC,yBAAyB,EAAEM,UAAAA,CAAWF,IAAM,CAAA,CAAA,oBAAoB,EAAE,OAAOC,QAAS,CAAA,UAAU,CAAC,CAAA;AAElG;IAEA,IAAIA,QAAAA,CAASD,IAAI,KAAKA,IAAM,EAAA;QAC1B,OAAOJ,MAAAA,CACL,CAAC,qCAAqC,EAAEI,IAAAA,CAAK,WAAW,EAAEC,QAASD,CAAAA,IAAI,CAAC,UAAU,CAAC,CAAA;AAEvF;AACF;;;;"}