UNPKG

@push.rocks/smartrequest

Version:

A module for modern HTTP/HTTPS requests with support for form data, file uploads, JSON, binary data, streams, and more.

45 lines (38 loc) 1.14 kB
import * as types from './types.js'; /** * Abstract Core Request class that defines the interface for all HTTP/HTTPS requests */ export abstract class CoreRequest<TOptions extends types.ICoreRequestOptions = types.ICoreRequestOptions, TResponse = any> { /** * Tests if a URL is a unix socket */ static isUnixSocket(url: string): boolean { const unixRegex = /^(http:\/\/|https:\/\/|)unix:/; return unixRegex.test(url); } /** * Parses socket path and route from unix socket URL */ static parseUnixSocketUrl(url: string): { socketPath: string; path: string } { const parseRegex = /(.*):(.*)/; const result = parseRegex.exec(url); return { socketPath: result[1], path: result[2], }; } protected url: string; protected options: TOptions; constructor(url: string, options?: TOptions) { this.url = url; this.options = options || ({} as TOptions); } /** * Fire the request and return a response */ abstract fire(): Promise<TResponse>; /** * Fire the request and return the raw response (platform-specific) */ abstract fireCore(): Promise<any>; }