* Resolve the provider from a call's first object argument by inspecting its * `adapter` property. Returns the provider, or `null` if it can't be * resolved (no adapter, non-call adapter, spread, or unknown factory).
(obj: ObjectExpression)
| 188 | * resolved (no adapter, non-call adapter, spread, or unknown factory). |
| 189 | */ |
| 190 | function resolveProvider(obj: ObjectExpression): Provider | null { |
| 191 | const adapterProp = findKey(obj, 'adapter') |
| 192 | if (!adapterProp) return null |
| 193 | const value = adapterProp.value |
| 194 | if (!value || value.type !== 'CallExpression') return null |
| 195 | const callee = (value as CallExpression).callee |
| 196 | if (callee.type !== 'Identifier') return null |
| 197 | const provider = FACTORY_TO_PROVIDER[(callee as Identifier).name] |
| 198 | return provider ?? null |
| 199 | } |
| 200 | |
| 201 | interface Conflict { |
| 202 | filePath: string |