mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-22 22:48:29 +08:00
59ad48476b
* chore: add boime lint * fix lint * use files ignore * revert change * ignore clarity.js * fix some errors * fix some errors * fix some errors * fix some errors * add yml file * Update clarity.js Signed-off-by: afc163 <afc163@gmail.com> * add npm run lint:biome * add npm run lint:biome * fix test case * fix ts errors * fix ts errors * fix lint and add .lintstagedrc * shorten prop name * chore: update package.json * update biome.json * chore: remove stylelint * chore: useOptionalChain * fix lint * biome format * prettier all code * prettier all code * fix site test --------- Signed-off-by: afc163 <afc163@gmail.com>
22 lines
508 B
TypeScript
22 lines
508 B
TypeScript
import fetch from 'cross-fetch';
|
|
|
|
import use from '../use';
|
|
import FetchCache from './cache';
|
|
|
|
const cache = new FetchCache();
|
|
|
|
const useFetch = <T>(options: string | { request: () => PromiseLike<T>; key: string }) => {
|
|
let request;
|
|
let key;
|
|
if (typeof options === 'string') {
|
|
request = () => fetch(options).then((res) => res.json());
|
|
key = options;
|
|
} else {
|
|
request = options.request;
|
|
key = options.key;
|
|
}
|
|
return use(cache.promise<T>(key, request));
|
|
};
|
|
|
|
export default useFetch;
|