export async function extractAllRecipesFromArticle()

in lib/recipes-data/src/lib/extract-recipes.ts [28:54]


export async function extractAllRecipesFromArticle(
	content: Content,
): Promise<RecipeReferenceWithoutChecksum[]> {
	if (content.type == ContentType.ARTICLE && content.blocks) {
		const sponsorship = content.tags.flatMap((t) => t.activeSponsorships ?? []);
		const articleBlocks: Blocks = content.blocks;
		const getAllMainBlockRecipesIfPresent = extractRecipeData(
			content,
			articleBlocks.main as Block,
			sponsorship,
		);
		const bodyBlocks = articleBlocks.body as Block[];
		const getAllBodyBlocksRecipesIfPresent = bodyBlocks.flatMap((bodyBlock) =>
			extractRecipeData(content, bodyBlock, sponsorship),
		);
		const recipes = getAllMainBlockRecipesIfPresent.concat(
			getAllBodyBlocksRecipesIfPresent,
		);
		const failureCount = recipes.filter((recp) => !recp).length;
		await registerMetric('FailedRecipes', failureCount);
		const successfulCount = recipes.length - failureCount;
		await registerMetric('SuccessfulRecipes', successfulCount);
		return recipes.filter((recp) => !!recp) as RecipeReferenceWithoutChecksum[];
	} else {
		return Array<RecipeReferenceWithoutChecksum>();
	}
}