silgi 0.3.9 → 0.3.10

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.
@@ -3,7 +3,7 @@ import consola from 'consola';
3
3
 
4
4
  const name = "silgi";
5
5
  const type = "module";
6
- const version = "0.3.9";
6
+ const version = "0.3.10";
7
7
  const packageManager = "pnpm@9.15.1";
8
8
  const sideEffects = false;
9
9
  const exports = {
@@ -1,19 +1,14 @@
1
- import type { AsyncData, UseFetchOptions } from 'nuxt/app';
2
- import type { $Fetch } from 'ofetch';
3
- import type { Ref } from 'vue';
4
- import type { FetchResponseData, FetchResponseError, FilterMethods, ParamsOption, RequestBodyOption, SilgiRouterTypes } from 'silgi';
5
- export type OpenFetchClientName = 'ofetch';
6
- type PickFrom<T, K extends Array<string>> = T extends Array<any> ? T : T extends Record<string, any> ? keyof T extends K[number] ? T : K[number] extends never ? T : Pick<T, K[number]> : T;
7
- type KeysOf<T> = Array<T extends T ? keyof T extends string ? keyof T : never : never>;
8
- type ComputedOptions<T> = {
9
- [K in keyof T]: T[K] extends Function ? T[K] : ComputedOptions<T[K]> | Ref<T[K]> | T[K];
10
- };
11
- type ComputedMethodOption<M, P> = 'get' extends keyof P ? ComputedOptions<{
12
- method?: M;
13
- }> : ComputedOptions<{
14
- method: M;
15
- }>;
16
- type UseOpenFetchOptions<ReqT extends keyof SilgiRouterTypes, Method extends keyof SilgiRouterTypes[ReqT], LowercasedMethod, Params, ResT, DataT = ResT, PickKeys extends KeysOf<DataT> = KeysOf<DataT>, DefaultT = null, Operation = 'get' extends LowercasedMethod ? ('get' extends keyof Params ? Params['get'] : never) : LowercasedMethod extends keyof Params ? Params[LowercasedMethod] : never> = ComputedMethodOption<Method, Params> & ComputedOptions<ParamsOption<Operation>> & ComputedOptions<RequestBodyOption<ReqT, Method>> & Omit<UseFetchOptions<ResT, DataT, PickKeys, DefaultT>, 'query' | 'body' | 'method'>;
17
- export type UseOpenFetchClient<Paths extends keyof SilgiRouterTypes, Lazy extends boolean> = <Methods extends FilterMethods<Paths>, Method extends Extract<keyof Methods, string> | Uppercase<Extract<keyof Methods, string>>, LowercasedMethod extends Lowercase<Method> extends keyof Methods ? Lowercase<Method> : never, DefaultMethod extends 'get' extends LowercasedMethod ? 'get' : LowercasedMethod, ResT = Methods[DefaultMethod] extends Record<string | number, any> ? FetchResponseData<Paths, Method> : never, ErrorT = Methods[DefaultMethod] extends Record<string | number, any> ? FetchResponseError<Methods[DefaultMethod]> : never, DataT = ResT, PickKeys extends KeysOf<DataT> = KeysOf<DataT>, DefaultT = null>(url: Paths | (() => Paths), options?: Lazy extends true ? Omit<UseOpenFetchOptions<Paths, Method, LowercasedMethod, Methods, ResT, DataT, PickKeys, DefaultT>, 'lazy'> : UseOpenFetchOptions<Paths, Method, LowercasedMethod, Methods, ResT, DataT, PickKeys, DefaultT>, autoKey?: string) => AsyncData<PickFrom<DataT, PickKeys> | DefaultT, ErrorT | null>;
18
- export declare function createUseOpenFetch<Paths extends keyof SilgiRouterTypes, Lazy extends boolean = false>(client: $Fetch | OpenFetchClientName, lazy?: Lazy): UseOpenFetchClient<Paths, Lazy>;
19
- export {};
1
+ import type { SilgiRouterTypes } from 'silgi';
2
+ import { type FetchResult, type UseFetchOptions } from 'nuxt/app';
3
+ import type { FetchError } from 'ofetch';
4
+ import type { AvailableRouterMethod } from 'nitropack';
5
+ import type { KeysOf } from 'nuxt/dist/app/composables/asyncData';
6
+ import type { DefaultAsyncDataValue } from 'nuxt/app/defaults';
7
+ export declare function useSilgiFetch<ResT = void, ErrorT = FetchError, ReqT extends keyof SilgiRouterTypes = keyof SilgiRouterTypes, Method extends AvailableRouterMethod<ReqT> = ResT extends void ? 'get' extends AvailableRouterMethod<ReqT> ? 'get' : AvailableRouterMethod<ReqT> : AvailableRouterMethod<ReqT>, _ResT = ResT extends void ? FetchResult<ReqT, Method> : ResT, DataT = _ResT, PickKeys extends KeysOf<DataT> = KeysOf<DataT>, DefaultT = DefaultAsyncDataValue>(url: ReqT | (() => ReqT), options?: Omit<UseFetchOptions<any, any, any, any, ReqT>, 'method' | 'body'> & {
8
+ method?: SilgiRouterTypes[ReqT][Method] extends {
9
+ output: any;
10
+ } ? SilgiRouterTypes[ReqT][Method]['output'] : any;
11
+ body?: SilgiRouterTypes[ReqT][Method] extends {
12
+ input: any;
13
+ } ? SilgiRouterTypes[ReqT][Method]['input'] : never;
14
+ }): import("nuxt/app").AsyncData<DefaultT | import("nuxt/dist/app/composables/asyncData").PickFrom<DataT, PickKeys>, ErrorT | null>;
@@ -1,10 +1,7 @@
1
- import { useFetch, useNuxtApp } from "nuxt/app";
2
- import { toValue } from "vue";
3
- export function createUseOpenFetch(client, lazy = false) {
4
- return (url, options = {}, autoKey) => {
5
- const nuxtApp = useNuxtApp();
6
- const $fetch = typeof client === "string" ? nuxtApp[`$${client}`] : client;
7
- const opts = { $fetch, key: autoKey, ...options };
8
- return useFetch(() => toValue(url), lazy ? { ...opts, lazy } : opts);
9
- };
1
+ import { useFetch } from "nuxt/app";
2
+ export function useSilgiFetch(url, options) {
3
+ return useFetch(url, {
4
+ ...options,
5
+ method: options?.method?.toUpperCase() ?? "GET"
6
+ });
10
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "silgi",
3
3
  "type": "module",
4
- "version": "0.3.9",
4
+ "version": "0.3.10",
5
5
  "sideEffects": false,
6
6
  "exports": {
7
7
  ".": {