chiyum-composable
Version:
a test npm package for vue3 composables
126 lines (104 loc) • 3.21 kB
TypeScript
import { ComputedRef } from 'vue';
import { Ref } from 'vue';
import { UnwrapRef } from 'vue';
export declare const composables: {
useCounter: typeof useCounter;
useLocalStorage: typeof useLocalStorage;
useDebounce: typeof useDebounce;
useFetch: typeof useFetch;
};
export { ComputedRef }
/**
* 檢查是否為瀏覽器環境
*/
export declare const isClient: boolean;
/**
* 檢查是否支援 LocalStorage
*/
export declare const isLocalStorageSupported: () => boolean;
export declare type MaybeRef<T> = T | Ref<T>;
export declare type MaybeRefOrGetter<T> = T | Ref<T> | (() => T);
export { Ref }
/**
* 安全的 JSON 解析
* @param str 要解析的字串
* @param fallback 解析失敗時的備用值
*/
export declare function safeJsonParse<T>(str: string, fallback: T): T;
/**
* 安全地取得 ref 或普通值
* @param val 可能是 ref 或普通值
* @returns 解除 ref 後的值
*/
export declare function toValue<T>(val: MaybeRef<T>): T;
export { UnwrapRef }
/**
* 計數器 Composable
* @param initialValue 初始值,預設為 0
* @param options 選項配置
* @returns 計數器相關的響應式數據和方法
*/
export declare function useCounter(initialValue?: number, options?: UseCounterOptions_2): UseCounterReturn_2;
export declare interface UseCounterOptions {
min?: number;
max?: number;
step?: number;
}
declare interface UseCounterOptions_2 {
min?: number;
max?: number;
step?: number;
}
export declare interface UseCounterReturn {
count: Ref<number>;
doubleCount: ComputedRef<number>;
increment: () => void;
decrement: () => void;
set: (value: number) => void;
reset: () => void;
canIncrement: ComputedRef<boolean>;
canDecrement: ComputedRef<boolean>;
}
declare interface UseCounterReturn_2 {
count: Ref<number>;
doubleCount: Ref<number>;
increment: () => void;
decrement: () => void;
set: (value: number) => void;
reset: () => void;
canIncrement: Ref<boolean>;
canDecrement: Ref<boolean>;
}
/**
* 防抖 Composable
* @param value 要防抖的響應式值
* @param delay 延遲時間(毫秒)
* @returns 防抖後的響應式值
*/
export declare function useDebounce<T>(value: Ref<T>, delay?: number): Ref<T>;
/**
* Fetch Composable
* @param url 請求的 URL
* @returns Fetch 相關的響應式狀態和執行函數
*/
export declare function useFetch<T = any>(url: string): UseFetchReturn_2<T>;
export declare interface UseFetchReturn<T> {
data: Ref<T | null>;
error: Ref<string | null>;
loading: Ref<boolean>;
execute: () => Promise<void>;
}
declare interface UseFetchReturn_2<T> {
data: Ref<T | null>;
error: Ref<string | null>;
loading: Ref<boolean>;
execute: () => Promise<void>;
}
/**
* LocalStorage Composable
* @param key LocalStorage 的鍵名
* @param defaultValue 預設值
* @returns 響應式的 LocalStorage 值和設定函數
*/
export declare function useLocalStorage<T>(key: string, defaultValue: T): [Ref<T>, (value: T) => void];
export { }