0.1.0 • Published 8 months ago
@recipetools/core v0.1.0
@recipetools/core
型安全・構造化されたレシピデータを扱うための TypeScript ライブラリです。 レシピのパース、バリデーション、プロセス図生成、レシピ間の距離計算ができます。
✨ 特徴
- ✅ JSONベースのレシピデータを型安全に管理
- ✅ Mermaid記法で調理工程を可視化
- ✅ 材料・アクション単位でレシピ間の距離を計算
- ✅ 完全TypeScript対応
- ✅ OSSライセンス (MIT)
📦 インストール
npm install @recipetools/core
# or
pnpm add @recipetools/core📖 使い方
- レシピデータをパースする
import { parseRecipe } from "@recipetools/core";
import recipeData from "./myRecipe.json";
const recipe = parseRecipe(recipeData);- レシピデータをバリデーションする
import { validateRecipe } from "@recipetools/core";
if (!validateRecipe(recipeData)) {
throw new Error("Invalid Recipe Format");
}- プロセス図を生成する(Mermaid記法)
import { generateProcessGraph } from "@recipetools/core";
const mermaidGraph = generateProcessGraph(recipe);
console.log(mermaidGraph);出力例:
graph TD
beef["材料: 牛肉薄切り"]
beef --> step1
step1["炒める(beef)\n0-5min\n累計:5min"]- レシピ同士の距離を計算する
import { calculateIngredientDistance, calculateActionDistance } from "@recipetools/core";
const ingredientDistance = calculateIngredientDistance(recipe1, recipe2);
const actionDistance = calculateActionDistance(recipe1, recipe2);
console.log({ ingredientDistance, actionDistance });🛠 提供される主なAPI
| 関数名 | 説明 |
|---|---|
| parseRecipe(data) | 任意データを型安全なRecipeオブジェクトに変換 |
| validateRecipe(data) | レシピデータが正しいか検証 |
| generateProcessGraph(recipe) | プロセス図(Mermaid記法)を生成 |
| calculateIngredientDistance(recipe1, recipe2) | 材料ベースのレシピ間距離を計算 |
| calculateActionDistance(recipe1, recipe2) | アクションベースのレシピ間距離を計算 |
📚 レシピデータ構造
主要な型定義例(Recipe型):
export interface Recipe {
title: string;
ingredients: Ingredient[];
steps: Step[];
// オプションでdescription, metadata, yield, nutrition, tools, notesなど
}📝 ライセンス
MIT License
0.1.0
8 months ago