@c-time/frelio-data-json-recipe
v1.4.1
Published
Type definitions for frelio data JSON recipe
Downloads
729
Readme
@c-time/frelio-data-json-recipe
Frelio SSG のビルドレシピ(build-data-recipe)の型定義。
概要
ビルドレシピは、コンテンツをどのように変換して data-json を生成するかを定義する設定ファイルのスキーマ。コンテンツタイプごとの詳細ページ・一覧ページの生成ルール、静的ページの定義、カスタムフィールド変換などを記述する。
ランタイム依存なし。型定義と型ガードのみを提供する。
インストール
npm install @c-time/frelio-data-json-recipe使用例
import type {
FrelioBuildDataRecipe,
ContentTypeRecipe,
DetailPageRecipe,
ListPageRecipe,
} from '@c-time/frelio-data-json-recipe'
import {
isListPageRecipeWithPagination,
isCustomFieldTransform,
} from '@c-time/frelio-data-json-recipe'
// レシピの型チェック
const recipe: FrelioBuildDataRecipe = {
contentTypes: { /* ... */ },
staticPages: [],
templateIncludes: {},
}
// ページネーションの有無を判定
if (isListPageRecipeWithPagination(listRecipe)) {
console.log(listRecipe.pagination.perPage)
}主な型
| 型 | 説明 |
|----|------|
| FrelioBuildDataRecipe | ビルドレシピ全体の定義 |
| ContentTypeRecipe | コンテンツタイプごとの生成ルール |
| DetailPageRecipe | 詳細ページの生成設定 |
| ListPageRecipe | 一覧ページの生成設定(ページネーション有無で分岐) |
| StaticPageRecipe | 静的ページの生成設定 |
| CustomFieldTransform | フィールド値の変換定義 |
| CustomFieldRelationList | 関連コンテンツの参照定義 |
| CustomFieldConstant | 固定値の定義 |
| RelationExpand | 関連コンテンツの展開設定 |
| RecipeSort / RecipeFilter | ソート・フィルタ設定 |
| TemplateIncludes | テンプレート依存関係 |
カスタムフィールドのフォーマットタイプ
string, date, number, escape, toc, truncate, stripHtml, slug, lowercase, uppercase, default, count, first, last, join, url, picture, img, srcset, fileLink, relationList, constant など 25 種類以上。
型ガード
| 関数 | 説明 |
|------|------|
| isListPageRecipeWithPagination(recipe) | ページネーション付き一覧レシピか判定 |
| isListPageRecipeWithoutPagination(recipe) | ページネーションなし一覧レシピか判定 |
| isCustomFieldTransform(field) | Transform 型カスタムフィールドか判定 |
| isCustomFieldRelationList(field) | RelationList 型カスタムフィールドか判定 |
| isCustomFieldConstant(field) | Constant 型カスタムフィールドか判定 |
ライセンス
MIT
