SvelteKit で aspida を使用する
import aspida from '@aspida/fetch';
import type { FetchConfig } from '@aspida/fetch';
import api from '../aspida/$api';
const fetchConfig: FetchConfig = {
baseURL: 'http://localhost:3000/api',
throwHttpErrors: true // throw an error on 4xx/5xx, default is false
};
type Aspida = typeof aspida;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore pnpm previewの時に、aspida is not a functionというエラーが発生する。
const callableAspida = typeof aspida === 'function' ? aspida : (aspida.default as Aspida);
export const client = api(callableAspida(fetch, fetchConfig));
const convertTypeOnlyImport = async (filePath) => {
console.log(filePath);
const file = await readFile(filePath, { encoding: 'utf-8' });
const result = file
.replace(/import { AspidaClient } from 'aspida'/, "import type { AspidaClient } from 'aspida'")
.replace(/\nimport { Methods as/g, '\nimport type { Methods as');
writeFile(filePath, result);
return 0;
};
{
"printWidth": 100,
"semi": false,
"arrowParens": "avoid",
"singleQuote": true,
"trailingComma": "none"
}