async compile()

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');
            }
        });
    }