From f2d8908aa077ddb5b79ba8be594c06eedb16b396 Mon Sep 17 00:00:00 2001 From: Shigma Date: Sat, 11 May 2024 21:36:46 +0800 Subject: [PATCH] feat(http): support ctx.http.isError also fix file-type imports --- packages/core/src/adapter/node.ts | 4 ++-- packages/core/src/index.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/core/src/adapter/node.ts b/packages/core/src/adapter/node.ts index 20cf6d3..c50a210 100644 --- a/packages/core/src/adapter/node.ts +++ b/packages/core/src/adapter/node.ts @@ -1,6 +1,6 @@ import { fileURLToPath } from 'node:url' import { basename } from 'node:path' -import { fromBuffer } from 'file-type' +import FileType from 'file-type' import { FileResponse } from '../index.js' import { readFile } from 'node:fs/promises' @@ -9,7 +9,7 @@ export { lookup } from 'node:dns/promises' export async function loadFile(url: string): Promise { if (url.startsWith('file://')) { const data = await readFile(fileURLToPath(url)) - const result = await fromBuffer(data) + const result = await FileType.fromBuffer(data) // https://stackoverflow.com/questions/8609289/convert-a-binary-nodejs-buffer-to-javascript-arraybuffer#answer-31394257 const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength) return { mime: result?.mime, filename: basename(url), data: buffer } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 9d0c8c5..cde1e4f 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -141,7 +141,7 @@ export interface HTTP { export class HTTP extends Service { static Error = HTTPError - /** @deprecated use `HTTP.Error.is()` instead */ + /** @deprecated use `http.isError()` instead */ static isAxiosError = HTTPError.is static [Service.provide] = 'http' @@ -163,6 +163,8 @@ export class HTTP extends Service { } } + public isError = HTTPError.is + private _decoders: Dict = Object.create(null) constructor(config?: HTTP.Config)