diff --git a/packages/cluster/index.d.mts b/packages/cluster/index.d.mts new file mode 100644 index 0000000..520a15e --- /dev/null +++ b/packages/cluster/index.d.mts @@ -0,0 +1,7 @@ +import type { RequestListener } from 'http'; + +export interface ClusterController { + listen(port: number): void; +} + +export default function (app: RequestListener | { listen: Function }): ClusterController; diff --git a/packages/cluster/index.d.ts b/packages/cluster/index.d.ts index 520a15e..2ed1290 100644 --- a/packages/cluster/index.d.ts +++ b/packages/cluster/index.d.ts @@ -1,7 +1,15 @@ import type { RequestListener } from 'http'; -export interface ClusterController { - listen(port: number): void; +declare namespace cluster { + export interface ClusterController { + listen(port: number): void; + } } -export default function (app: RequestListener | { listen: Function }): ClusterController; +declare function cluster( + app: RequestListener | { + listen: Function + } +): cluster.ClusterController; + +export = cluster; diff --git a/packages/cluster/package.json b/packages/cluster/package.json index b0fdc8e..ec6c2f9 100644 --- a/packages/cluster/package.json +++ b/packages/cluster/package.json @@ -9,15 +9,20 @@ "license": "MIT", "exports": { ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" + "import": { + "types": "./index.d.mts", + "default": "./build.mjs" + }, + "require": { + "types": "./index.d.ts", + "default": "./build.js" + } }, "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", @@ -27,4 +32,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/parse/index.d.ts b/packages/parse/index.d.ts index 50e347b..ab3ef1d 100644 --- a/packages/parse/index.d.ts +++ b/packages/parse/index.d.ts @@ -10,7 +10,7 @@ export interface ParseOptions { type?: string; } -function parse(opts?: ParseOptions): Middleware; +declare function parse(opts?: ParseOptions): Middleware; export { parse, diff --git a/packages/parse/package.json b/packages/parse/package.json index b2ac44b..3478cc6 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -9,15 +9,20 @@ "license": "MIT", "exports": { ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" + "import": { + "types": "./index.d.ts", + "default": "./build.mjs" + }, + "require": { + "types": "./index.d.ts", + "default": "./build.js" + } }, "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", @@ -27,4 +32,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/polka/index.d.mts b/packages/polka/index.d.mts new file mode 100644 index 0000000..7375e44 --- /dev/null +++ b/packages/polka/index.d.mts @@ -0,0 +1,66 @@ +import type { IncomingMessage, ServerResponse } from 'http'; +import type { ListenOptions, Server } from 'net'; +import type { ParsedURL } from '@polka/url'; +import type { Trouter } from 'trouter'; + +type Promisable = Promise | T; +type ListenCallback = () => Promisable; + +export interface IError extends Error { + code?: number; + status?: number; + details?: any; +} + +export type NextHandler = (err?: string | IError) => Promisable; +export type ErrorHandler = (err: string | IError, req: T, res: Response, next: NextHandler) => Promisable; +export type Middleware = (req: T & Request, res: Response, next: NextHandler) => Promisable; + +export interface IOptions { + server?: Server; + onNoMatch?: Middleware; + onError?: ErrorHandler; +} + +export type Response = ServerResponse; + +export interface Request extends IncomingMessage { + url: string; + method: string; + originalUrl: string; + params: Record; + path: string; + search: string; + query: Record; + body?: any; + _decoded?: true; + _parsedUrl: ParsedURL; +} + +export interface Polka extends Trouter> { + readonly server: Server; + readonly wares: Middleware[]; + + readonly onError: ErrorHandler; + readonly onNoMatch: Middleware; + + readonly handler: Middleware; + parse: (req: IncomingMessage) => ParsedURL; + + use(pattern: RegExp|string, ...handlers: (Polka | Middleware)[]): this; + use(...handlers: (Polka | Middleware)[]): this; + + listen(port?: number, hostname?: string, backlog?: number, callback?: ListenCallback): this; + listen(port?: number, hostname?: string, callback?: ListenCallback): this; + listen(port?: number, backlog?: number, callback?: ListenCallback): this; + listen(port?: number, callback?: ListenCallback): this; + listen(path: string, backlog?: number, callback?: ListenCallback): this; + listen(path: string, callback?: ListenCallback): this; + listen(options: ListenOptions, callback?: ListenCallback): this; + listen(handle: any, backlog?: number, callback?: ListenCallback): this; + listen(handle: any, callback?: ListenCallback): this; +} + +export default function( + options?: IOptions +): Polka; diff --git a/packages/polka/index.d.ts b/packages/polka/index.d.ts index 4c01652..d945760 100644 --- a/packages/polka/index.d.ts +++ b/packages/polka/index.d.ts @@ -6,59 +6,65 @@ import type { Trouter } from 'trouter'; type Promisable = Promise | T; type ListenCallback = () => Promisable; -export interface IError extends Error { - code?: number; - status?: number; - details?: any; -} +declare namespace polka { + export interface IError extends Error { + code?: number; + status?: number; + details?: any; + } -export type NextHandler = (err?: string | IError) => Promisable; -export type ErrorHandler = (err: string | IError, req: T, res: Response, next: NextHandler) => Promisable; -export type Middleware = (req: T & Request, res: Response, next: NextHandler) => Promisable; + export type NextHandler = (err?: string | IError) => Promisable; + export type ErrorHandler = (err: string | IError, req: T, res: Response, next: NextHandler) => Promisable; + export type Middleware = (req: T & Request, res: Response, next: NextHandler) => Promisable; -export interface IOptions { - server?: Server; - onNoMatch?: Middleware; - onError?: ErrorHandler; -} + export interface IOptions { + server?: Server; + onNoMatch?: Middleware; + onError?: ErrorHandler; + } -export type Response = ServerResponse; + export type Response = ServerResponse; -export interface Request extends IncomingMessage { - url: string; - method: string; - originalUrl: string; - params: Record; - path: string; - search: string; - query: Record; - body?: any; - _decoded?: true; - _parsedUrl: ParsedURL; -} + export interface Request extends IncomingMessage { + url: string; + method: string; + originalUrl: string; + params: Record; + path: string; + search: string; + query: Record; + body?: any; + _decoded?: true; + _parsedUrl: ParsedURL; + } -export interface Polka extends Trouter> { - readonly server: Server; - readonly wares: Middleware[]; + export interface Polka extends Trouter> { + readonly server: Server; + readonly wares: Middleware[]; - readonly onError: ErrorHandler; - readonly onNoMatch: Middleware; + readonly onError: ErrorHandler; + readonly onNoMatch: Middleware; - readonly handler: Middleware; - parse: (req: IncomingMessage) => ParsedURL; + readonly handler: Middleware; + parse: (req: IncomingMessage) => ParsedURL; - use(pattern: RegExp|string, ...handlers: (Polka | Middleware)[]): this; - use(...handlers: (Polka | Middleware)[]): this; + use(pattern: RegExp|string, ...handlers: (Polka | Middleware)[]): this; + use(...handlers: (Polka | Middleware)[]): this; - listen(port?: number, hostname?: string, backlog?: number, callback?: ListenCallback): this; - listen(port?: number, hostname?: string, callback?: ListenCallback): this; - listen(port?: number, backlog?: number, callback?: ListenCallback): this; - listen(port?: number, callback?: ListenCallback): this; - listen(path: string, backlog?: number, callback?: ListenCallback): this; - listen(path: string, callback?: ListenCallback): this; - listen(options: ListenOptions, callback?: ListenCallback): this; - listen(handle: any, backlog?: number, callback?: ListenCallback): this; - listen(handle: any, callback?: ListenCallback): this; + listen(port?: number, hostname?: string, backlog?: number, callback?: ListenCallback): this; + listen(port?: number, hostname?: string, callback?: ListenCallback): this; + listen(port?: number, backlog?: number, callback?: ListenCallback): this; + listen(port?: number, callback?: ListenCallback): this; + listen(path: string, backlog?: number, callback?: ListenCallback): this; + listen(path: string, callback?: ListenCallback): this; + listen(options: ListenOptions, callback?: ListenCallback): this; + listen(handle: any, backlog?: number, callback?: ListenCallback): this; + listen(handle: any, callback?: ListenCallback): this; + } } -export default function (options?: IOptions): Polka; +declare function polka( + options?: polka.IOptions +): polka.Polka; + +export = polka; diff --git a/packages/polka/package.json b/packages/polka/package.json index db912cd..8508a2d 100644 --- a/packages/polka/package.json +++ b/packages/polka/package.json @@ -9,15 +9,20 @@ "license": "MIT", "exports": { ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" + "import": { + "types": "./index.d.mts", + "default": "./build.mjs" + }, + "require": { + "types": "./index.d.ts", + "default": "./build.js" + } }, "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", diff --git a/packages/redirect/index.d.mts b/packages/redirect/index.d.mts new file mode 100644 index 0000000..a044616 --- /dev/null +++ b/packages/redirect/index.d.mts @@ -0,0 +1,2 @@ +import type { ServerResponse } from 'http'; +export default function (res: ServerResponse, code?: number, location?: string): void; diff --git a/packages/redirect/index.d.ts b/packages/redirect/index.d.ts index a044616..81ad8a1 100644 --- a/packages/redirect/index.d.ts +++ b/packages/redirect/index.d.ts @@ -1,2 +1,5 @@ import type { ServerResponse } from 'http'; -export default function (res: ServerResponse, code?: number, location?: string): void; + +declare function redirect(res: ServerResponse, code?: number, location?: string): void; + +export = redirect; diff --git a/packages/redirect/package.json b/packages/redirect/package.json index a93400e..2faa3cc 100644 --- a/packages/redirect/package.json +++ b/packages/redirect/package.json @@ -9,15 +9,20 @@ "license": "MIT", "exports": { ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" + "import": { + "types": "./index.d.mts", + "default": "./build.mjs" + }, + "require": { + "types": "./index.d.ts", + "default": "./build.js" + } }, "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", @@ -27,4 +32,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/send/index.d.mts b/packages/send/index.d.mts new file mode 100644 index 0000000..6d73313 --- /dev/null +++ b/packages/send/index.d.mts @@ -0,0 +1,3 @@ +import type { ServerResponse } from 'http'; +export type OutgoingHeaders = Record; +export default function (res: ServerResponse, status?: number, data?: any, headers?: OutgoingHeaders): void; diff --git a/packages/send/index.d.ts b/packages/send/index.d.ts index 6d73313..20dde6d 100644 --- a/packages/send/index.d.ts +++ b/packages/send/index.d.ts @@ -1,3 +1,14 @@ import type { ServerResponse } from 'http'; -export type OutgoingHeaders = Record; -export default function (res: ServerResponse, status?: number, data?: any, headers?: OutgoingHeaders): void; + +declare namespace send { + export type OutgoingHeaders = Record; +} + +declare function send( + res: ServerResponse, + status?: number, + data?: any, + headers?: send.OutgoingHeaders +): void; + +export = send; diff --git a/packages/send/package.json b/packages/send/package.json index 77394df..b492bdd 100644 --- a/packages/send/package.json +++ b/packages/send/package.json @@ -9,15 +9,20 @@ "license": "MIT", "exports": { ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" + "import": { + "types": "./index.d.mts", + "default": "./build.mjs" + }, + "require": { + "types": "./index.d.ts", + "default": "./build.js" + } }, "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", @@ -30,4 +35,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/url/package.json b/packages/url/package.json index f934d0e..89a5a03 100644 --- a/packages/url/package.json +++ b/packages/url/package.json @@ -16,8 +16,8 @@ "./package.json": "./package.json" }, "files": [ - "*.d.ts", - "build.*" + "build.*", + "index.d.*" ], "author": { "name": "Luke Edwards", @@ -27,4 +27,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +}