parseString method
Parses and validates YAML content already loaded into memory.
Implementation
MockConfig parseString(String content, {String sourcePath = 'mock.yaml'}) {
final Object? document;
try {
document = loadYaml(content);
} on YamlException catch (error) {
throw MockConfigException(
'YAML syntax error in $sourcePath: ${error.message}');
}
final root = _asMap(document, 'root');
final seed = _optionalInt(root['seed'], 'seed');
final models = _parseModels(root['models']);
final stores = _parseStores(root['stores'], models);
final routesNode = root['routes'];
final routesList = _asList(routesNode, 'routes');
final routes = <MockRoute>[];
for (var index = 0; index < routesList.length; index++) {
final routeMap = _asMap(routesList[index], 'routes[$index]');
routes.add(_parseRoute(routeMap, index, stores));
}
if (routes.isEmpty) {
throw MockConfigException(
'Configuration must define at least one route.');
}
return MockConfig(
sourcePath: path.normalize(sourcePath),
routes: routes,
models: models,
stores: stores,
seed: seed,
);
}