in src/implementationGuides/index.ts [42:80]
async compile(resources: any[]): Promise<any> {
const validDefinitions: (FhirStructureDefinition | FhirOperationDefinition)[] = [];
resources.forEach((s) => {
if (
RoutingImplementationGuides.isFhirStructureDefinition(s) ||
RoutingImplementationGuides.isFhirOperationDefinition(s)
) {
validDefinitions.push(s);
} else {
throw new Error(
`The following input is not a StructureDefinition nor a OperationDefinition: ${s.type} ${s.name}`,
);
}
});
return validDefinitions.map((fhirDefinition) => {
switch (fhirDefinition.resourceType) {
case 'StructureDefinition':
return {
name: fhirDefinition.name,
url: fhirDefinition.url,
type: fhirDefinition.type,
resourceType: fhirDefinition.resourceType,
description: fhirDefinition.description,
baseDefinition: fhirDefinition.baseDefinition,
};
case 'OperationDefinition':
return {
name: fhirDefinition.name,
url: fhirDefinition.url,
resourceType: fhirDefinition.resourceType,
description: fhirDefinition.description,
};
default:
// this should never happen
throw new Error('Unexpected error');
}
});
}