resolve function
Expands all block[name]
tags within the template, replacing them with the correct content.
To apply additional patches to resolved documents, provide a set of patch
functions.
Implementation
Future<Document?> resolve(Document document, Directory currentDirectory,
{void Function(JaelError error)? onError, Iterable<Patcher>? patch}) async {
onError ?? (e) => throw e;
// Resolve all includes...
var includesResolved =
await resolveIncludes(document, currentDirectory, onError);
var patched = await applyInheritance(
includesResolved, currentDirectory, onError, patch);
if (patch?.isNotEmpty != true) {
return patched;
}
for (var p in patch!) {
patched = await p(patched, currentDirectory, onError);
}
return patched;
}