iboot-http-client 1.2.5 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- import { ClientGetParams, ClientPostParams, CurWebsite, ServerHttpOpts, HttpToken, ResultModel, ServerRequestOptions, ICookies, IStorage } from './types/http';
1
+ import { ClientGetParams, ClientPostParams, CurWebsite, ServerHttpOpts, HttpToken, ResultModel, ServerRequestOptions, ICookies, IStorage, ServerHttpOptsMin } from './types/http';
2
2
  import { User } from './types/user';
3
3
  export declare const setClientRequestHeader: ({ deviceId, website }: Readonly<{
4
4
  deviceId: string;
5
5
  website?: CurWebsite;
6
6
  }>, storage: IStorage) => void;
7
- export declare const get: <T>(url: string, opts?: ClientGetParams) => Promise<ResultModel<T>>;
7
+ export declare const get: <T>(urlName: string, opts?: ClientGetParams) => Promise<ResultModel<T>>;
8
8
  export declare const post: <T>(url: string, opts?: ClientPostParams) => Promise<ResultModel<T>>;
9
9
  export declare const iGet: <T>(url: string, opts?: ClientGetParams) => Promise<T | undefined>;
10
10
  export declare const iPost: <T>(url: string, opts?: ClientPostParams) => Promise<T | undefined>;
11
11
  export declare const iPostSuccess: (url: string, opts?: ClientPostParams) => Promise<boolean>;
12
- export declare const getServerHttpOpts: (storage: IStorage) => Omit<ServerHttpOpts, "userType" | "helloURL">;
13
- export declare const setServerHttpHeaders: (storage: IStorage, opts: Omit<ServerHttpOpts, "userType" | "helloURL">) => void;
14
- export declare const getHttpOptsByCookies: (cookies: ICookies) => Omit<ServerHttpOpts, "userType" | "helloURL">;
15
- export declare const setServerHttpCookies: (cookies: ICookies, opts: Omit<ServerHttpOpts, "userType" | "helloURL">) => void;
12
+ export declare const getServerHttpOpts: (storage: IStorage) => ServerHttpOptsMin;
13
+ export declare const setServerHttpHeaders: (storage: IStorage, opts: ServerHttpOptsMin) => void;
14
+ export declare const getServerHttpCookies: (cookies: ICookies) => ServerHttpOptsMin;
15
+ export declare const setServerHttpCookies: (cookies: ICookies, opts: ServerHttpOptsMin) => void;
16
16
  export declare const getLoginUser: (cookies: ICookies) => User | undefined;
17
17
  export declare const getToken: (cookies: ICookies) => HttpToken | undefined;
18
18
  export declare const setToken: (data: User & {
@@ -3,3 +3,4 @@ export * from './types/user';
3
3
  export * from './logger';
4
4
  export * from './utils';
5
5
  export * from './http-client';
6
+ export * from './router';
@@ -0,0 +1,7 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+ import { FrameworkAdapter, RequestContext, ResponseContext } from '../types/router';
3
+ export declare class NextJsAdapter implements FrameworkAdapter {
4
+ parseRequest(request: NextRequest): Promise<RequestContext>;
5
+ createResponse(context: ResponseContext): NextResponse;
6
+ setCookie(response: ResponseContext, name: string, value: string, options?: any): void;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { H3Event } from 'h3';
2
+ import { FrameworkAdapter, RequestContext, ResponseContext } from '../types/router';
3
+ export declare class NuxtJsAdapter implements FrameworkAdapter {
4
+ parseRequest(event: H3Event): Promise<RequestContext>;
5
+ createResponse(context: ResponseContext): any;
6
+ setCookie(response: ResponseContext, name: string, value: string, options?: any): void;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { ICookies, IStorage } from './types/http';
2
+ import { FrameworkAdapter, RequestContext, ResponseContext, RouteConfig } from './types/router';
3
+ export declare const CONTENT_TYPE_KEY = "Content-Type";
4
+ export declare const CONTENT_TYPE_MAP: {
5
+ applicationJson: string;
6
+ multipartFormData: string;
7
+ applicationXwwwFormUrlencoded: string;
8
+ };
9
+ export declare class HTTPRouter {
10
+ private config;
11
+ private http;
12
+ private cookies;
13
+ private adapter;
14
+ constructor(config: RouteConfig, adapter: FrameworkAdapter, storage: IStorage, cookies: ICookies);
15
+ handleRequest(rawRequest: any): Promise<any>;
16
+ private processRequest;
17
+ private createErrorResponse;
18
+ }
19
+ export { NextJsAdapter } from './router-dapter/nextjs';
20
+ export type { RequestContext, ResponseContext, RouteConfig };
@@ -17,6 +17,7 @@ export type ServerHttpOpts = {
17
17
  "userType"?: USER_TYPE;
18
18
  "helloURL"?: string;
19
19
  };
20
+ export type ServerHttpOptsMin = Omit<ServerHttpOpts, 'userType' | 'helloURL'>;
20
21
  /**
21
22
  * 客户端HTTP请求请求头
22
23
  */
@@ -0,0 +1,60 @@
1
+ import { ResultModel } from './http';
2
+ export type ContentType = 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded';
3
+ export interface RequestContext {
4
+ url: URL;
5
+ headers: Readonly<Headers>;
6
+ body?: Record<string, any>;
7
+ formData?: FormData;
8
+ cookies?: Record<string, string>;
9
+ clone(): Request;
10
+ [key: string]: any;
11
+ }
12
+ export interface ResponseContext {
13
+ status: number;
14
+ headers: Record<string, string>;
15
+ cookies: Record<string, {
16
+ value: string;
17
+ options?: any;
18
+ }>;
19
+ body: ResultModel<any>;
20
+ }
21
+ /**
22
+ * 路由处理适配器
23
+ * 不同框架集成请实成该适配器
24
+ * 注:本组件已实现NextJs、NuxtJs框架的路由处理
25
+ */
26
+ export interface FrameworkAdapter {
27
+ /**
28
+ * 解析请求
29
+ * @param request
30
+ */
31
+ parseRequest(request: any): Promise<RequestContext>;
32
+ /**
33
+ * 创建响应
34
+ * @param context
35
+ */
36
+ createResponse(context: ResponseContext): any;
37
+ /**
38
+ *
39
+ * @param response 设置cookies
40
+ * @param name
41
+ * @param value
42
+ * @param options
43
+ */
44
+ setCookie(response: ResponseContext, name: string, value: string, options?: any): void;
45
+ }
46
+ export interface RouteConfig {
47
+ /**
48
+ * 设置API影射
49
+ */
50
+ APIMAP: Record<string, string>;
51
+ /**
52
+ * 自定义处理成功输出
53
+ * @param param0
54
+ * @returns
55
+ */
56
+ onHandlerSuccess?: ({ request, response }: Readonly<{
57
+ request: RequestContext;
58
+ response: ResponseContext;
59
+ }>) => void;
60
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iboot-http-client",
3
3
  "private": false,
4
- "version": "1.2.5",
4
+ "version": "1.2.7",
5
5
  "description": "iBoot.xin 相关应用的客户端Http封装",
6
6
  "type": "module",
7
7
  "main": "./dist/iboot-http-client.cjs.js",
@@ -37,14 +37,6 @@
37
37
  ],
38
38
  "author": "rock.chen<szygnet@qq.com>",
39
39
  "license": "MIT",
40
- "devDependencies": {
41
- "@types/crypto-js": "^4.2.2",
42
- "@types/node": "^25.0.3",
43
- "typescript": "~5.9.3",
44
- "vite": "^7.2.4",
45
- "vite-plugin-dts": "^4.5.4",
46
- "vitest": "^1.0.0"
47
- },
48
40
  "repository": {
49
41
  "type": "git",
50
42
  "url": "git+https://github.com/rockychen2016/iboot-http-client.git"
@@ -55,15 +47,27 @@
55
47
  "homepage": "https://www.iboot.fun",
56
48
  "dependencies": {
57
49
  "crypto-js": "^4.2.0",
50
+ "h3": "^2.0.1-rc.8",
58
51
  "js-md5": "^0.8.3",
52
+ "next-server-context": "^6.0.0",
59
53
  "pino": "^10.1.0",
60
54
  "pino-pretty": "^13.1.3"
61
55
  },
56
+ "devDependencies": {
57
+ "@types/crypto-js": "^4.2.2",
58
+ "@types/node": "^25.0.3",
59
+ "typescript": "~5.9.3",
60
+ "vite": "^7.2.4",
61
+ "vite-plugin-dts": "^4.5.4",
62
+ "vitest": "^1.0.0"
63
+ },
62
64
  "peerDependencies": {
63
- "crypto-js": "^4.2.0",
64
- "js-md5": "^0.8.3",
65
- "pino": "^10.1.0",
66
- "pino-pretty": "^13.1.3"
65
+ "crypto-js": ">=4.2.0",
66
+ "js-md5": ">=0.8.3",
67
+ "next-server-context": ">=6.0.0",
68
+ "h3": ">=2.0.1-rc.8",
69
+ "pino": ">=10.1.0",
70
+ "pino-pretty": ">=13.1.3"
67
71
  },
68
72
  "peerDependenciesMeta": {
69
73
  "pino-pretty": {