@@ -1,9 +0,0 @@
|
||||
import '../helpers/global-fetch'
|
||||
|
||||
import { defaultKyAdaptor } from '~/adaptors/ky'
|
||||
|
||||
import { testAdaptor } from '../helpers/adaptor-test'
|
||||
|
||||
describe('test ky adaptor', () => {
|
||||
testAdaptor(defaultKyAdaptor)
|
||||
})
|
||||
@@ -7,7 +7,7 @@ describe('test activity client', () => {
|
||||
|
||||
test('POST /like', async () => {
|
||||
mockResponse('/activity/like', {}, 'post', {
|
||||
type: 'Note',
|
||||
type: 'note',
|
||||
id: '11111111',
|
||||
})
|
||||
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
import ky from 'ky'
|
||||
import type { IRequestAdapter } from '~/interfaces/adapter'
|
||||
import type { Options, ResponsePromise } from 'ky'
|
||||
import type { KyInstance } from 'ky/distribution/types/ky'
|
||||
|
||||
// eslint-disable-next-line spaced-comment
|
||||
const $http: KyInstance = /*#__PURE__*/ ky.create({})
|
||||
// TODO post data not only json,
|
||||
const getDataFromKyResponse = async (response: ResponsePromise) => {
|
||||
const res = await response
|
||||
|
||||
const isJsonType = res.headers
|
||||
.get('content-type')
|
||||
?.includes('application/json')
|
||||
const json = isJsonType ? await res.clone().json() : null
|
||||
|
||||
const result: Awaited<ResponsePromise> & {
|
||||
data: any
|
||||
} = {
|
||||
...res,
|
||||
data: json ?? (await res.clone().text()),
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
export const createKyAdaptor = (ky: KyInstance) => {
|
||||
const adaptor: IRequestAdapter<KyInstance, ResponsePromise> =
|
||||
Object.preventExtensions({
|
||||
get default() {
|
||||
return ky
|
||||
},
|
||||
|
||||
responseWrapper: {} as any as ResponsePromise,
|
||||
get(url, options) {
|
||||
return getDataFromKyResponse(ky.get(url, options))
|
||||
},
|
||||
async post(url, options) {
|
||||
const data = options.data
|
||||
delete options.data
|
||||
const kyOptions: Options = {
|
||||
...options,
|
||||
|
||||
json: data,
|
||||
}
|
||||
// FIXME https://github.com/sindresorhus/ky/issues/535
|
||||
|
||||
return getDataFromKyResponse(ky.post(url, kyOptions))
|
||||
},
|
||||
put(url, options) {
|
||||
const data = options.data
|
||||
delete options.data
|
||||
const kyOptions: Options = {
|
||||
...options,
|
||||
json: data,
|
||||
}
|
||||
return getDataFromKyResponse(ky.put(url, kyOptions))
|
||||
},
|
||||
|
||||
patch(url, options) {
|
||||
const data = options.data
|
||||
delete options.data
|
||||
const kyOptions: Options = {
|
||||
...options,
|
||||
json: data,
|
||||
}
|
||||
return getDataFromKyResponse(ky.patch(url, kyOptions))
|
||||
},
|
||||
delete(url, options) {
|
||||
return getDataFromKyResponse(ky.delete(url, options))
|
||||
},
|
||||
})
|
||||
return adaptor
|
||||
}
|
||||
|
||||
export const defaultKyAdaptor = createKyAdaptor($http)
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default defaultKyAdaptor
|
||||
@@ -53,11 +53,10 @@
|
||||
"cors": "2.8.5",
|
||||
"express": "4.18.2",
|
||||
"form-data": "4.0.0",
|
||||
"ky": "1.2.1",
|
||||
"lodash": "4.17.21",
|
||||
"tsup": "8.0.2",
|
||||
"umi-request": "1.4.0",
|
||||
"vite": "^5.1.3",
|
||||
"vitest": "^1.0.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user