@hyperttp/core 1.2.5 → 1.3.0

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.
@@ -0,0 +1,28 @@
1
+ import type { HttpClientOptions, HyperTransport, HttpResponse, StreamResponse } from "@hyperttp/types";
2
+ export type Runtime = "bun" | "node";
3
+ type TransportDef = {
4
+ name: string;
5
+ runtime: Runtime[];
6
+ pkg: string;
7
+ export: string;
8
+ priority: number;
9
+ };
10
+ export declare const CURRENT_RUNTIME: Runtime;
11
+ export declare function getRuntime(): Runtime;
12
+ export declare const TRANSPORTS: TransportDef[];
13
+ export declare function resolveTransport(config: HttpClientOptions): Promise<HyperTransport>;
14
+ export declare class TransportManager {
15
+ private transport;
16
+ private transportPromise;
17
+ private config;
18
+ constructor(config: HttpClientOptions, customTransport?: HyperTransport);
19
+ setConfig(config: HttpClientOptions): void;
20
+ get instance(): HyperTransport | null;
21
+ get(): Promise<HyperTransport>;
22
+ private syncConfig;
23
+ execute<T = unknown>(req: Parameters<HyperTransport["execute"]>[0]): Promise<HttpResponse<T>>;
24
+ executeStream<T = unknown>(req: Parameters<HyperTransport["execute"]>[0]): Promise<StreamResponse<T>>;
25
+ destroy(graceful?: boolean): Promise<void>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAIzB,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAIrC,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OACe,CAAC;AAE9C,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,eAAO,MAAM,UAAU,EAAE,YAAY,EAwBpC,CAAC;AAmGF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,cAAc,CAAC,CAiFzB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA+B;IAEhD,OAAO,CAAC,gBAAgB,CAAwC;IAEhE,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,cAAc;IAShE,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKjD,IAAW,QAAQ,IAAI,cAAc,GAAG,IAAI,CAE3C;IAEY,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;IAa3C,OAAO,CAAC,UAAU;IAML,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAMd,aAAa,CAAC,CAAC,GAAG,OAAO,EACpC,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAMhB,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAYrD"}
@@ -0,0 +1,193 @@
1
+ import { pathToFileURL } from "node:url";
2
+ import resolveFrom from "resolve-from";
3
+ import { mapResponseFast, mapStreamFast } from "../utils/response.js";
4
+ export const CURRENT_RUNTIME = typeof Bun !== "undefined" ? "bun" : "node";
5
+ export function getRuntime() {
6
+ return CURRENT_RUNTIME;
7
+ }
8
+ export const TRANSPORTS = [
9
+ {
10
+ name: "Bun",
11
+ runtime: ["bun"],
12
+ pkg: "@hyperttp/transport-bun",
13
+ export: "BunTransport",
14
+ priority: 100,
15
+ },
16
+ {
17
+ name: "Undici",
18
+ runtime: ["node"],
19
+ pkg: "@hyperttp/transport-undici",
20
+ export: "UndiciTransport",
21
+ priority: 90,
22
+ },
23
+ {
24
+ name: "Node",
25
+ runtime: ["node", "bun"],
26
+ pkg: "../transports/node.js",
27
+ export: "NodeTransport",
28
+ priority: 10,
29
+ },
30
+ ];
31
+ const CANDIDATES_MAP = {
32
+ node: TRANSPORTS.filter((t) => t.runtime.includes("node")).sort((a, b) => b.priority - a.priority),
33
+ bun: TRANSPORTS.filter((t) => t.runtime.includes("bun")).sort((a, b) => b.priority - a.priority),
34
+ };
35
+ const GLOBAL_TRANSPORT_CLASS_CACHE = Object.create(null);
36
+ function logError(config, message, err) {
37
+ if (config.verbose) {
38
+ console.error(message, err);
39
+ }
40
+ const logger = config.logger;
41
+ if (logger) {
42
+ if (typeof logger === "function") {
43
+ logger(message, err);
44
+ return;
45
+ }
46
+ const candidate = logger;
47
+ if (typeof candidate.error === "function") {
48
+ candidate.error(message, err);
49
+ return;
50
+ }
51
+ }
52
+ if (!config.verbose) {
53
+ console.error(message, err);
54
+ }
55
+ }
56
+ function isModuleNotFoundError(err) {
57
+ if (!err || typeof err !== "object")
58
+ return false;
59
+ const code = err.code;
60
+ const message = err instanceof Error ? err.message : "";
61
+ return (code === "ERR_MODULE_NOT_FOUND" ||
62
+ message.includes("Cannot find module") ||
63
+ message.includes("Failed to resolve"));
64
+ }
65
+ async function resolveTransportModulePath(pkg) {
66
+ if (pkg.startsWith(".")) {
67
+ try {
68
+ return import.meta.resolve(pkg, import.meta.url);
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ const physicalPath = resolveFrom.silent(process.cwd(), pkg);
75
+ if (physicalPath) {
76
+ return pathToFileURL(physicalPath).href;
77
+ }
78
+ try {
79
+ return import.meta.resolve(pkg, import.meta.url);
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ async function loadTransportCtor(pkg, exportName) {
86
+ const path = await resolveTransportModulePath(pkg);
87
+ if (!path)
88
+ return null;
89
+ const mod = (await import(path));
90
+ const candidate = mod[exportName] ??
91
+ mod.default?.[exportName] ??
92
+ mod.default;
93
+ if (typeof candidate !== "function")
94
+ return null;
95
+ return candidate;
96
+ }
97
+ export async function resolveTransport(config) {
98
+ if (config.customTransport) {
99
+ config.logger?.(`info`, "[Hyperttp] Using custom user-provided transport.", config);
100
+ return config.customTransport;
101
+ }
102
+ const runtime = CURRENT_RUNTIME;
103
+ const cachedCtor = GLOBAL_TRANSPORT_CLASS_CACHE[runtime];
104
+ if (cachedCtor) {
105
+ config.logger?.(`info`, `[Hyperttp] Using cached transport class for runtime: ${runtime}`, config);
106
+ return new cachedCtor(config);
107
+ }
108
+ const candidates = CANDIDATES_MAP[runtime];
109
+ for (const t of candidates) {
110
+ try {
111
+ config.logger?.(`debug`, `[Hyperttp] Attempting to load transport: ${t.name} (${t.pkg})...`, config);
112
+ const Transport = await loadTransportCtor(t.pkg, t.export);
113
+ if (!Transport) {
114
+ config.logger?.(`debug`, `[Hyperttp] Export '${t.export}' not found in ${t.pkg}. Skipping...`, config);
115
+ continue;
116
+ }
117
+ config.logger?.(`debug`, `[Hyperttp] Successfully loaded transport: ${t.name}`, config);
118
+ GLOBAL_TRANSPORT_CLASS_CACHE[runtime] = Transport;
119
+ return new Transport(config);
120
+ }
121
+ catch (err) {
122
+ if (isModuleNotFoundError(err)) {
123
+ config.logger?.(`info`, `[Hyperttp] Transport package '${t.pkg}' is not available. Skipping...`, config);
124
+ continue;
125
+ }
126
+ logError(config, `[Hyperttp] Critical error while loading transport ${t.pkg}:`, err);
127
+ throw err;
128
+ }
129
+ }
130
+ throw new Error(`No compatible transport implementation available for runtime: ${runtime}. Make sure one of ${candidates
131
+ .map((c) => c.pkg)
132
+ .join(", ")} is installed.`);
133
+ }
134
+ export class TransportManager {
135
+ transport = null;
136
+ transportPromise = null;
137
+ config;
138
+ constructor(config, customTransport) {
139
+ this.config = config;
140
+ if (customTransport) {
141
+ this.transport = customTransport;
142
+ this.transportPromise = Promise.resolve(customTransport);
143
+ this.syncConfig();
144
+ }
145
+ }
146
+ setConfig(config) {
147
+ this.config = config;
148
+ this.syncConfig();
149
+ }
150
+ get instance() {
151
+ return this.transport;
152
+ }
153
+ async get() {
154
+ if (this.transport)
155
+ return this.transport;
156
+ if (this.transportPromise)
157
+ return this.transportPromise;
158
+ this.transportPromise = resolveTransport(this.config).then((t) => {
159
+ this.transport = t;
160
+ this.syncConfig();
161
+ return t;
162
+ });
163
+ return this.transportPromise;
164
+ }
165
+ syncConfig() {
166
+ if (this.transport && "config" in this.transport) {
167
+ this.transport.config = this.config;
168
+ }
169
+ }
170
+ async execute(req) {
171
+ const transport = this.transport || (await this.get());
172
+ const rawResponse = await transport.execute(req);
173
+ return mapResponseFast(rawResponse);
174
+ }
175
+ async executeStream(req) {
176
+ const transport = this.transport || (await this.get());
177
+ const rawResponse = await transport.execute(req);
178
+ return mapStreamFast(rawResponse);
179
+ }
180
+ async destroy(graceful = true) {
181
+ const transport = this.transport;
182
+ if (!transport)
183
+ return;
184
+ if (graceful && typeof transport.close === "function") {
185
+ await transport.close();
186
+ return;
187
+ }
188
+ if (typeof transport.destroy === "function") {
189
+ await transport.destroy();
190
+ }
191
+ }
192
+ }
193
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
- import type { HttpClientOptions, HyperTransport, RetryOptions, TransportRequest, TransportResponse } from "@hyperttp/types";
2
- export declare function isRedirect(status: number): boolean;
3
- export declare function shouldRetry(status: number, retryOptions: RetryOptions): boolean;
4
- export declare function sleep(ms: number): Promise<void>;
5
- export declare function calcDelay(attempt: number, retryOptions: RetryOptions): number;
1
+ import type { HttpClientOptions, HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
2
+ export interface NodeTransportConfig extends HttpClientOptions {
3
+ baseUrl?: string;
4
+ network?: {
5
+ maxConcurrent?: number;
6
+ keepAliveTimeout?: number;
7
+ };
8
+ }
6
9
  export declare class NodeTransport implements HyperTransport {
7
- config: HttpClientOptions;
10
+ config: NodeTransportConfig;
8
11
  private readonly httpAgent;
9
12
  private readonly httpsAgent;
10
- constructor(config: HttpClientOptions);
11
- private get timeout();
12
- private logRetry;
13
+ constructor(config: NodeTransportConfig);
14
+ private get baseUrl();
13
15
  execute(req: TransportRequest): Promise<TransportResponse>;
14
- private dispatchOnce;
15
16
  close(): Promise<void>;
16
17
  destroy(): Promise<void>;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAWzB,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,OAAO,CAMT;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAI7E;AAgKD,qBAAa,aAAc,YAAW,cAAc;IAC3C,MAAM,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,MAAM,EAAE,iBAAiB;IAkBrC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,QAAQ;IAOH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkJvE,OAAO,CAAC,YAAY;IAsGP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,qBAAa,aAAc,YAAW,cAAc;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,MAAM,EAAE,mBAAmB;IAkBvC,OAAO,KAAK,OAAO,GAElB;IAEY,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6I1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}