soseki 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,13 +5,27 @@ import type RedirectResponse from "../core/redirect-response.js";
5
5
  *
6
6
  * アクションがリダイレクトを返した場合、フレームワークの内部仕様によって実際の値は `undefined` に置換されるため、型定義においてもその挙動を忠実に表現します。
7
7
  */
8
- type ActionResult<TResult> = TResult extends RedirectResponse ? undefined : TResult;
8
+ type ActionResult<TResult> = Awaited<TResult extends RedirectResponse ? undefined : TResult>;
9
+ /**
10
+ * アクション関数またはデータ型から、最終的に解決されるデータの型を抽出するユーティリティー型です。
11
+ *
12
+ * @template TData アクション関数、または解決されるデータの型です。
13
+ */
14
+ export type FulfilledActionData<TData = unknown> = ActionResult<TData extends (...args: any) => infer TReturn ? TReturn : TData>;
15
+ /**
16
+ * {@link useActionData|`useActionData`} カスタムフックが返すオブジェクトの型定義です。
17
+ *
18
+ * 非同期処理の進行状況を管理する `NinjaPromise` でラップされた、解決済みのデータ型を表します。
19
+ *
20
+ * @template TData アクション関数、またはアクションが返すデータの型定義です。
21
+ */
22
+ export type ActionData<TData = unknown> = NinjaPromise<FulfilledActionData<TData>>;
9
23
  /**
10
24
  * 現在の階層のルートに紐づくアクション関数の最新の実行結果を購読・取得するためのカスタムフックです。
11
25
  *
12
- * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその戻り値の型(推論結果)が解凍されます。
26
+ * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
13
27
  * @returns アクションが実行済み、または実行中であれば結果を内包した `NinjaPromise` を返し、一度も実行されていないか対象のアクションが存在しない場合は `undefined` を返します。
14
28
  */
15
- export default function useActionData<TData = unknown>(): NinjaPromise<ActionResult<Awaited<TData extends (...args: any) => infer TReturn ? TReturn : TData>>> | undefined;
29
+ export default function useActionData<TData = unknown>(): ActionData<TData> | undefined;
16
30
  export {};
17
31
  //# sourceMappingURL=use-action-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-action-data.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-action-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AAIjE;;;;GAIG;AACH,KAAK,YAAY,CAAC,OAAO,IAAI,OAAO,SAAS,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,GAAG,OAAO,KACjD,YAAY,CACV,YAAY,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CACvF,GACD,SAAS,CAQZ"}
1
+ {"version":3,"file":"use-action-data.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-action-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AAIjE;;;;GAIG;AACH,KAAK,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,SAAS,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAE7F;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,KAAK,GAAG,OAAO,IAAI,YAAY,CAC7D,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAChE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,OAAO,IAAI,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,GAAG,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAQtF"}
@@ -3,7 +3,7 @@ import useRouterContext from "./use-router-context.js";
3
3
  /**
4
4
  * 現在の階層のルートに紐づくアクション関数の最新の実行結果を購読・取得するためのカスタムフックです。
5
5
  *
6
- * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその戻り値の型(推論結果)が解凍されます。
6
+ * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
7
7
  * @returns アクションが実行済み、または実行中であれば結果を内包した `NinjaPromise` を返し、一度も実行されていないか対象のアクションが存在しない場合は `undefined` を返します。
8
8
  */
9
9
  export default function useActionData() {
@@ -1,9 +1,23 @@
1
1
  import type { NinjaPromise } from "ninja-promise";
2
+ /**
3
+ * ローダー関数またはデータ型から、最終的に解決されるデータの型を抽出するユーティリティー型です。
4
+ *
5
+ * @template TData ローダー関数、または解決されるデータの型です。
6
+ */
7
+ export type FulfilledLoaderData<TData = unknown> = Awaited<TData extends (...args: any) => infer TReturn ? TReturn : TData>;
8
+ /**
9
+ * {@link useLoaderData|`useLoaderData`} カスタムフックが返すオブジェクトの型定義です。
10
+ *
11
+ * 非同期処理の進行状況を管理する `NinjaPromise` でラップされた、解決済みのデータ型を表します。
12
+ *
13
+ * @template TData ローダー関数、またはローダーが返すデータの型定義です。
14
+ */
15
+ export type LoaderData<TData = unknown> = NinjaPromise<FulfilledLoaderData<TData>>;
2
16
  /**
3
17
  * 現在の階層のルートに紐づくローダー関数の実行結果を購読・取得するためのカスタムフックです。
4
18
  *
5
- * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型(非同期の解凍結果)が推論されます。
19
+ * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
6
20
  * @returns ローダーの実行状態を管理している `NinjaPromise` を返します。
7
21
  */
8
- export default function useLoaderData<TData = unknown>(): NinjaPromise<Awaited<TData extends (...args: any) => infer TReturn ? TReturn : TData>>;
22
+ export default function useLoaderData<TData = unknown>(): LoaderData<TData>;
9
23
  //# sourceMappingURL=use-loader-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-loader-data.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-loader-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,GAAG,OAAO,KAAK,YAAY,CACpE,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,CACzE,CAWA"}
1
+ {"version":3,"file":"use-loader-data.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-loader-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,KAAK,GAAG,OAAO,IAAI,OAAO,CACxD,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAChE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,OAAO,IAAI,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,GAAG,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,CAW1E"}
@@ -4,7 +4,7 @@ import useRouterContext from "./use-router-context.js";
4
4
  /**
5
5
  * 現在の階層のルートに紐づくローダー関数の実行結果を購読・取得するためのカスタムフックです。
6
6
  *
7
- * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型(非同期の解凍結果)が推論されます。
7
+ * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
8
8
  * @returns ローダーの実行状態を管理している `NinjaPromise` を返します。
9
9
  */
10
10
  export default function useLoaderData() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "soseki",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/tai-kun/soseki.js",
6
6
  "license": "MIT",
@@ -33,6 +33,7 @@
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
+ "@tai-kun/valibot-extra-lab": "^0.0.5",
36
37
  "call-fn-once": "^0.0.6",
37
38
  "i18n-error-base": "^0.0.4",
38
39
  "inspect-lite": "^0.0.2",
@@ -43,7 +44,6 @@
43
44
  "type-name": "^2.0.2"
44
45
  },
45
46
  "devDependencies": {
46
- "@tai-kun/valibot-extra-lab": "^0.0.5",
47
47
  "@tsconfig/node24": "^24.0.4",
48
48
  "@tsconfig/strictest": "^2.0.8",
49
49
  "@types/node": "^24.12.4",
@@ -9,24 +9,38 @@ import useRouterContext from "./use-router-context.js";
9
9
  *
10
10
  * アクションがリダイレクトを返した場合、フレームワークの内部仕様によって実際の値は `undefined` に置換されるため、型定義においてもその挙動を忠実に表現します。
11
11
  */
12
- type ActionResult<TResult> = TResult extends RedirectResponse ? undefined : TResult;
12
+ type ActionResult<TResult> = Awaited<TResult extends RedirectResponse ? undefined : TResult>;
13
+
14
+ /**
15
+ * アクション関数またはデータ型から、最終的に解決されるデータの型を抽出するユーティリティー型です。
16
+ *
17
+ * @template TData アクション関数、または解決されるデータの型です。
18
+ */
19
+ export type FulfilledActionData<TData = unknown> = ActionResult<
20
+ TData extends (...args: any) => infer TReturn ? TReturn : TData
21
+ >;
22
+
23
+ /**
24
+ * {@link useActionData|`useActionData`} カスタムフックが返すオブジェクトの型定義です。
25
+ *
26
+ * 非同期処理の進行状況を管理する `NinjaPromise` でラップされた、解決済みのデータ型を表します。
27
+ *
28
+ * @template TData アクション関数、またはアクションが返すデータの型定義です。
29
+ */
30
+ export type ActionData<TData = unknown> = NinjaPromise<FulfilledActionData<TData>>;
13
31
 
14
32
  /**
15
33
  * 現在の階層のルートに紐づくアクション関数の最新の実行結果を購読・取得するためのカスタムフックです。
16
34
  *
17
- * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその戻り値の型(推論結果)が解凍されます。
35
+ * @template TData アクション関数そのものの型、またはアクションが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
18
36
  * @returns アクションが実行済み、または実行中であれば結果を内包した `NinjaPromise` を返し、一度も実行されていないか対象のアクションが存在しない場合は `undefined` を返します。
19
37
  */
20
- export default function useActionData<TData = unknown>():
21
- | NinjaPromise<
22
- ActionResult<Awaited<TData extends (...args: any) => infer TReturn ? TReturn : TData>>
23
- >
24
- | undefined {
38
+ export default function useActionData<TData = unknown>(): ActionData<TData> | undefined {
25
39
  const { action } = useRouteContext();
26
40
  const actionData = useRouterContext((router) => {
27
41
  const { currentEntry, actionDataStore } = router;
28
42
  return actionDataStore.get(currentEntry.id)?.get(action!);
29
43
  });
30
44
 
31
- return actionData satisfies NinjaPromise<unknown> | undefined as NinjaPromise<any> | undefined;
45
+ return actionData satisfies ActionData<unknown> | undefined as ActionData<any> | undefined;
32
46
  }
@@ -4,15 +4,31 @@ import { LoaderDataNotFoundError } from "../core/errors.js";
4
4
  import useRouteContext from "./use-route-context.js";
5
5
  import useRouterContext from "./use-router-context.js";
6
6
 
7
+ /**
8
+ * ローダー関数またはデータ型から、最終的に解決されるデータの型を抽出するユーティリティー型です。
9
+ *
10
+ * @template TData ローダー関数、または解決されるデータの型です。
11
+ */
12
+ export type FulfilledLoaderData<TData = unknown> = Awaited<
13
+ TData extends (...args: any) => infer TReturn ? TReturn : TData
14
+ >;
15
+
16
+ /**
17
+ * {@link useLoaderData|`useLoaderData`} カスタムフックが返すオブジェクトの型定義です。
18
+ *
19
+ * 非同期処理の進行状況を管理する `NinjaPromise` でラップされた、解決済みのデータ型を表します。
20
+ *
21
+ * @template TData ローダー関数、またはローダーが返すデータの型定義です。
22
+ */
23
+ export type LoaderData<TData = unknown> = NinjaPromise<FulfilledLoaderData<TData>>;
24
+
7
25
  /**
8
26
  * 現在の階層のルートに紐づくローダー関数の実行結果を購読・取得するためのカスタムフックです。
9
27
  *
10
- * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型(非同期の解凍結果)が推論されます。
28
+ * @template TData ローダー関数そのものの型、またはローダーが返すことが期待されるデータ構造の型定義です。関数型が渡された場合は、自動的にその非同期戻り値の型が推論されます。
11
29
  * @returns ローダーの実行状態を管理している `NinjaPromise` を返します。
12
30
  */
13
- export default function useLoaderData<TData = unknown>(): NinjaPromise<
14
- Awaited<TData extends (...args: any) => infer TReturn ? TReturn : TData>
15
- > {
31
+ export default function useLoaderData<TData = unknown>(): LoaderData<TData> {
16
32
  const { loader } = useRouteContext();
17
33
  const loaderData = useRouterContext((router) => {
18
34
  const { currentEntry, loaderDataStore } = router;
@@ -22,5 +38,5 @@ export default function useLoaderData<TData = unknown>(): NinjaPromise<
22
38
  throw new LoaderDataNotFoundError({ loader });
23
39
  }
24
40
 
25
- return loaderData satisfies NinjaPromise<unknown> as NinjaPromise<any>;
41
+ return loaderData satisfies LoaderData<unknown> as LoaderData<any>;
26
42
  }