resolveDatasource method
ResolvedDatasourceConfig
resolveDatasource(
- LoadedSchemaDocument loaded, {
- String? datasourceName,
- required String expectedProvider,
Resolves datasource settings for a loaded schema.
Implementation
ResolvedDatasourceConfig resolveDatasource(
LoadedSchemaDocument loaded, {
String? datasourceName,
required String expectedProvider,
}) {
final datasource = _selectDatasource(loaded.schema, datasourceName);
if (datasource == null) {
throw FormatException(
'Schema does not declare a datasource block and no connection override was provided.',
);
}
final provider = _resolveScalarValue(
datasource.properties['provider'],
propertyName: 'datasource ${datasource.name}.provider',
);
if (provider != expectedProvider) {
throw FormatException(
'Datasource "${datasource.name}" uses provider "$provider", expected "$expectedProvider".',
);
}
final rawUrl = _resolveScalarValue(
datasource.properties['url'],
propertyName: 'datasource ${datasource.name}.url',
);
return ResolvedDatasourceConfig(
name: datasource.name,
provider: provider,
url:
datasourceUrlResolver?.call(loaded.filePath, rawUrl, provider) ??
rawUrl,
);
}