diff --git a/deno/types/index.d.ts b/deno/types/index.d.ts index c141cfd9..e8ff53f2 100644 --- a/deno/types/index.d.ts +++ b/deno/types/index.d.ts @@ -8,8 +8,8 @@ import { Readable, Writable } from 'https://deno.land/std@0.132.0/node/stream.ts * @returns An utility function to make queries to the server */ declare function postgres = {}>(options?: postgres.Options | undefined): postgres.Sql extends T ? {} : { [type in keyof T]: T[type] extends { - serialize: (value: infer R) => any, - parse: (raw: any) => infer R + serialize: (value: infer R) => unknown, + parse: (raw: unknown) => infer R } ? R : never }> /** * Establish a connection to a PostgreSQL server. @@ -18,8 +18,8 @@ declare function postgres = {}>( * @returns An utility function to make queries to the server */ declare function postgres = {}>(url: string, options?: postgres.Options | undefined): postgres.Sql extends T ? {} : { [type in keyof T]: T[type] extends { - serialize: (value: infer R) => any, - parse: (raw: any) => infer R + serialize: (value: infer R) => unknown, + parse: (raw: unknown) => infer R } ? R : never }> /** @@ -75,13 +75,13 @@ interface BaseOptions> { */ onnotice: (notice: postgres.Notice) => void; /** (key; value) when a server param change */ - onparameter: (key: string, value: any) => void; + onparameter: (key: string, value: unknown) => void; /** Is called with (connection; query; parameters) */ - debug: boolean | ((connection: number, query: string, parameters: any[], paramTypes: any[]) => void); + debug: boolean | ((connection: number, query: string, parameters: unknown[], paramTypes: unknown[]) => void); /** Transform hooks */ transform: { /** Transforms outcoming undefined values */ - undefined?: any + undefined?: unknown /** Transforms incoming and outgoing column names */ column?: ((column: string) => string) | { @@ -91,16 +91,16 @@ interface BaseOptions> { to?: ((column: string) => string) | undefined; } | undefined; /** Transforms incoming and outgoing row values */ - value?: ((value: any) => any) | { + value?: ((value: unknown) => unknown) | { /** Transform function for values in result rows */ - from?: ((value: unknown, column: postgres.Column) => any) | undefined; - // to?: ((value: unknown) => any) | undefined; // unused + from?: ((value: unknown, column: postgres.Column) => unknown) | undefined; + // to?: ((value: unknown) => unknown) | undefined; // unused } | undefined; /** Transforms entire rows */ - row?: ((row: postgres.Row) => any) | { + row?: ((row: postgres.Row) => unknown) | { /** Transform function for entire result rows */ - from?: ((row: postgres.Row) => any) | undefined; - // to?: ((row: postgres.Row) => any) | undefined; // unused + from?: ((row: postgres.Row) => unknown) | undefined; + // to?: ((row: postgres.Row) => unknown) | undefined; // unused } | undefined; }; /** Connection parameters */ @@ -149,27 +149,27 @@ declare class NotAPromise { private finally(): never; } -type UnwrapPromiseArray = T extends any[] ? { +type UnwrapPromiseArray = T extends unknown[] ? { [k in keyof T]: T[k] extends Promise ? R : T[k] } : T; type Keys = string -type SerializableObject = +type SerializableObject = number extends K['length'] ? {} : - Partial<(Record | undefined> & Record)> + Partial<(Record | undefined> & Record)> -type First = +type First = // Tagged template string call T extends TemplateStringsArray ? TemplateStringsArray : // Identifiers helper T extends string ? string : // Dynamic values helper (depth 2) - T extends readonly any[][] ? readonly postgres.EscapableArray[] : + T extends readonly unknown[][] ? readonly postgres.EscapableArray[] : // Insert/update helper (depth 2) T extends readonly (object & infer R)[] ? (R extends postgres.SerializableParameter ? readonly postgres.SerializableParameter[] : readonly SerializableObject[]) : - // Dynamic values/ANY helper (depth 1) - T extends readonly any[] ? (readonly postgres.SerializableParameter[]) : + // Dynamic values/unknown helper (depth 1) + T extends readonly unknown[] ? (readonly postgres.SerializableParameter[]) : // Insert/update helper (depth 1) T extends object ? SerializableObject : // Unexpected type @@ -178,23 +178,23 @@ type First = type Rest = T extends TemplateStringsArray ? never : // force fallback to the tagged template function overload T extends string ? readonly string[] : - T extends readonly any[][] ? readonly [] : + T extends readonly unknown[][] ? readonly [] : T extends readonly (object & infer R)[] ? ( readonly (Keys & keyof R)[] // sql(data, "prop", "prop2") syntax | [readonly (Keys & keyof R)[]] // sql(data, ["prop", "prop2"]) syntax ) : - T extends readonly any[] ? readonly [] : + T extends readonly unknown[] ? readonly [] : T extends object ? ( readonly (Keys & keyof T)[] // sql(data, "prop", "prop2") syntax | [readonly (Keys & keyof T)[]] // sql(data, ["prop", "prop2"]) syntax ) : - any + unknown -type Return = +type Return = [T] extends [TemplateStringsArray] ? - [unknown] extends [T] ? postgres.Helper : // ensure no `PendingQuery` with `any` types + [unknown] extends [T] ? postgres.Helper : // ensure no `PendingQuery` with `unknown` types [TemplateStringsArray] extends [T] ? postgres.PendingQuery : postgres.Helper : postgres.Helper @@ -225,7 +225,7 @@ declare namespace postgres { /** Only set when debug is enabled */ query: string; /** Only set when debug is enabled */ - parameters: any[]; + parameters: unknown[]; } /** @@ -318,11 +318,11 @@ declare namespace postgres { const BigInt: PostgresType; - interface PostgresType { + interface PostgresType { to: number; from: number[]; serialize: (value: T) => unknown; - parse: (raw: any) => T; + parse: (raw: unknown) => T; } interface ConnectionParameters { @@ -386,13 +386,13 @@ declare namespace postgres { pass: null; /** @inheritdoc */ transform: Transform; - serializers: Record unknown>; - parsers: Record unknown>; + serializers: Record unknown>; + parsers: Record unknown>; } interface Transform { /** Transforms outcoming undefined values */ - undefined: any + undefined: unknown column: { /** Transform function for column names in result rows */ @@ -402,14 +402,14 @@ declare namespace postgres { }; value: { /** Transform function for values in result rows */ - from: ((value: any, column?: Column) => any) | undefined; + from: ((value: unknown, column?: Column) => unknown) | undefined; /** Transform function for interpolated values passed to tagged template literal */ - to: undefined; // (value: any) => any + to: undefined; // (value: unknown) => unknown }; row: { /** Transform function for entire result rows */ - from: ((row: postgres.Row) => any) | undefined; - to: undefined; // (row: postgres.Row) => any + from: ((row: postgres.Row) => unknown) | undefined; + to: undefined; // (row: postgres.Row) => unknown }; } @@ -432,7 +432,7 @@ declare namespace postgres { raw: T | null; } - interface ArrayParameter extends Parameter { + interface ArrayParameter extends Parameter { array: true; } @@ -533,8 +533,8 @@ declare namespace postgres { type SerializableParameter = never | T | Serializable - | Helper - | Parameter + | Helper + | Parameter | ArrayParameter | readonly SerializableParameter[]; @@ -545,16 +545,16 @@ declare namespace postgres { | boolean | Date // serialized as `string` | readonly JSONValue[] - | { toJSON(): any } // `toJSON` called by `JSON.stringify`; not typing the return type, types definition is strict enough anyway + | { toJSON(): unknown } // `toJSON` called by `JSON.stringify`; not typing the return type, types definition is strict enough unknownway | { readonly [prop: string | number]: | undefined | JSONValue - | ((...args: any) => any) // serialized as `undefined` + | ((...args: unknown) => unknown) // serialized as `undefined` }; interface Row { - [column: string]: any; + [column: string]: unknown; } type MaybeRow = Row | undefined; @@ -597,11 +597,11 @@ declare namespace postgres { } type ExecutionResult = [] & ResultQueryMeta>; - type ValuesRowList = T[number][keyof T[number]][][] & ResultQueryMeta; - type RawRowList = Buffer[][] & Iterable & ResultQueryMeta; - type RowList = T & Iterable> & ResultQueryMeta; + type ValuesRowList = T[number][keyof T[number]][][] & ResultQueryMeta; + type RawRowList = Buffer[][] & Iterable & ResultQueryMeta; + type RowList = T & Iterable> & ResultQueryMeta; - interface PendingQueryModifiers { + interface PendingQueryModifiers { simple(): this; readable(): Promise; writable(): Promise; @@ -644,12 +644,12 @@ declare namespace postgres { unlisten(): Promise } - interface Helper extends NotAPromise { + interface Helper extends NotAPromise { first: T; rest: U; } - type Fragment = PendingQuery + type Fragment = PendingQuery type ParameterOrJSON = | SerializableParameter @@ -688,13 +688,13 @@ declare namespace postgres { [name in keyof TTypes]: (value: TTypes[name]) => postgres.Parameter }; - unsafe)[]>(query: string, parameters?: (ParameterOrJSON)[] | undefined, queryOptions?: UnsafeQueryOptions | undefined): PendingQuery; + unsafe)[]>(query: string, parameters?: (ParameterOrJSON)[] | undefined, queryOptions?: UnsafeQueryOptions | undefined): PendingQuery; end(options?: { timeout?: number | undefined } | undefined): Promise; listen(channel: string, onnotify: (value: string) => void, onlisten?: (() => void) | undefined): ListenRequest; notify(channel: string, payload: string): PendingRequest; - subscribe(event: string, cb: (row: Row | null, info: ReplicationEvent) => void, onsubscribe?: (() => void), onerror?: (() => any)): Promise; + subscribe(event: string, cb: (row: Row | null, info: ReplicationEvent) => void, onsubscribe?: (() => void), onerror?: (() => unknown)): Promise; largeObject(oid?: number | undefined, /** @default 0x00020000 | 0x00040000 */ mode?: number | undefined): Promise; @@ -702,8 +702,8 @@ declare namespace postgres { begin(options: string, cb: (sql: TransactionSql) => T | Promise): Promise>; array[] = SerializableParameter[]>(value: T, type?: number | undefined): ArrayParameter; - file(path: string | Buffer | URL | number, options?: { cache?: boolean | undefined } | undefined): PendingQuery; - file(path: string | Buffer | URL | number, args: (ParameterOrJSON)[], options?: { cache?: boolean | undefined } | undefined): PendingQuery; + file(path: string | Buffer | URL | number, options?: { cache?: boolean | undefined } | undefined): PendingQuery; + file(path: string | Buffer | URL | number, args: (ParameterOrJSON)[], options?: { cache?: boolean | undefined } | undefined): PendingQuery; json(value: JSONValue): Parameter; reserve(): Promise> diff --git a/types/index.d.ts b/types/index.d.ts index 4b796799..642b9a59 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -6,8 +6,8 @@ import { Readable, Writable } from 'node:stream' * @returns An utility function to make queries to the server */ declare function postgres = {}>(options?: postgres.Options | undefined): postgres.Sql extends T ? {} : { [type in keyof T]: T[type] extends { - serialize: (value: infer R) => any, - parse: (raw: any) => infer R + serialize: (value: infer R) => unknown, + parse: (raw: unknown) => infer R } ? R : never }> /** * Establish a connection to a PostgreSQL server. @@ -16,8 +16,8 @@ declare function postgres = {}>( * @returns An utility function to make queries to the server */ declare function postgres = {}>(url: string, options?: postgres.Options | undefined): postgres.Sql extends T ? {} : { [type in keyof T]: T[type] extends { - serialize: (value: infer R) => any, - parse: (raw: any) => infer R + serialize: (value: infer R) => unknown, + parse: (raw: unknown) => infer R } ? R : never }> /** @@ -73,13 +73,13 @@ interface BaseOptions> { */ onnotice: (notice: postgres.Notice) => void; /** (key; value) when a server param change */ - onparameter: (key: string, value: any) => void; + onparameter: (key: string, value: unknown) => void; /** Is called with (connection; query; parameters) */ - debug: boolean | ((connection: number, query: string, parameters: any[], paramTypes: any[]) => void); + debug: boolean | ((connection: number, query: string, parameters: unknown[], paramTypes: unknown[]) => void); /** Transform hooks */ transform: { /** Transforms outcoming undefined values */ - undefined?: any + undefined?: unknown /** Transforms incoming and outgoing column names */ column?: ((column: string) => string) | { @@ -89,16 +89,16 @@ interface BaseOptions> { to?: ((column: string) => string) | undefined; } | undefined; /** Transforms incoming and outgoing row values */ - value?: ((value: any) => any) | { + value?: ((value: unknown) => unknown) | { /** Transform function for values in result rows */ - from?: ((value: unknown, column: postgres.Column) => any) | undefined; - // to?: ((value: unknown) => any) | undefined; // unused + from?: ((value: unknown, column: postgres.Column) => unknown) | undefined; + // to?: ((value: unknown) => unknown) | undefined; // unused } | undefined; /** Transforms entire rows */ - row?: ((row: postgres.Row) => any) | { + row?: ((row: postgres.Row) => unknown) | { /** Transform function for entire result rows */ - from?: ((row: postgres.Row) => any) | undefined; - // to?: ((row: postgres.Row) => any) | undefined; // unused + from?: ((row: postgres.Row) => unknown) | undefined; + // to?: ((row: postgres.Row) => unknown) | undefined; // unused } | undefined; }; /** Connection parameters */ @@ -147,27 +147,27 @@ declare class NotAPromise { private finally(): never; } -type UnwrapPromiseArray = T extends any[] ? { +type UnwrapPromiseArray = T extends unknown[] ? { [k in keyof T]: T[k] extends Promise ? R : T[k] } : T; type Keys = string -type SerializableObject = +type SerializableObject = number extends K['length'] ? {} : - Partial<(Record | undefined> & Record)> + Partial<(Record | undefined> & Record)> -type First = +type First = // Tagged template string call T extends TemplateStringsArray ? TemplateStringsArray : // Identifiers helper T extends string ? string : // Dynamic values helper (depth 2) - T extends readonly any[][] ? readonly postgres.EscapableArray[] : + T extends readonly unknown[][] ? readonly postgres.EscapableArray[] : // Insert/update helper (depth 2) T extends readonly (object & infer R)[] ? (R extends postgres.SerializableParameter ? readonly postgres.SerializableParameter[] : readonly SerializableObject[]) : - // Dynamic values/ANY helper (depth 1) - T extends readonly any[] ? (readonly postgres.SerializableParameter[]) : + // Dynamic values/unknown helper (depth 1) + T extends readonly unknown[] ? (readonly postgres.SerializableParameter[]) : // Insert/update helper (depth 1) T extends object ? SerializableObject : // Unexpected type @@ -176,23 +176,23 @@ type First = type Rest = T extends TemplateStringsArray ? never : // force fallback to the tagged template function overload T extends string ? readonly string[] : - T extends readonly any[][] ? readonly [] : + T extends readonly unknown[][] ? readonly [] : T extends readonly (object & infer R)[] ? ( readonly (Keys & keyof R)[] // sql(data, "prop", "prop2") syntax | [readonly (Keys & keyof R)[]] // sql(data, ["prop", "prop2"]) syntax ) : - T extends readonly any[] ? readonly [] : + T extends readonly unknown[] ? readonly [] : T extends object ? ( readonly (Keys & keyof T)[] // sql(data, "prop", "prop2") syntax | [readonly (Keys & keyof T)[]] // sql(data, ["prop", "prop2"]) syntax ) : - any + unknown -type Return = +type Return = [T] extends [TemplateStringsArray] ? - [unknown] extends [T] ? postgres.Helper : // ensure no `PendingQuery` with `any` types + [unknown] extends [T] ? postgres.Helper : // ensure no `PendingQuery` with `unknown` types [TemplateStringsArray] extends [T] ? postgres.PendingQuery : postgres.Helper : postgres.Helper @@ -223,7 +223,7 @@ declare namespace postgres { /** Only set when debug is enabled */ query: string; /** Only set when debug is enabled */ - parameters: any[]; + parameters: unknown[]; } /** @@ -316,11 +316,11 @@ declare namespace postgres { const BigInt: PostgresType; - interface PostgresType { + interface PostgresType { to: number; from: number[]; serialize: (value: T) => unknown; - parse: (raw: any) => T; + parse: (raw: unknown) => T; } interface ConnectionParameters { @@ -384,13 +384,13 @@ declare namespace postgres { pass: null; /** @inheritdoc */ transform: Transform; - serializers: Record unknown>; - parsers: Record unknown>; + serializers: Record unknown>; + parsers: Record unknown>; } interface Transform { /** Transforms outcoming undefined values */ - undefined: any + undefined: unknown column: { /** Transform function for column names in result rows */ @@ -400,14 +400,14 @@ declare namespace postgres { }; value: { /** Transform function for values in result rows */ - from: ((value: any, column?: Column) => any) | undefined; + from: ((value: unknown, column?: Column) => unknown) | undefined; /** Transform function for interpolated values passed to tagged template literal */ - to: undefined; // (value: any) => any + to: undefined; // (value: unknown) => unknown }; row: { /** Transform function for entire result rows */ - from: ((row: postgres.Row) => any) | undefined; - to: undefined; // (row: postgres.Row) => any + from: ((row: postgres.Row) => unknown) | undefined; + to: undefined; // (row: postgres.Row) => unknown }; } @@ -430,7 +430,7 @@ declare namespace postgres { raw: T | null; } - interface ArrayParameter extends Parameter { + interface ArrayParameter extends Parameter { array: true; } @@ -531,8 +531,8 @@ declare namespace postgres { type SerializableParameter = never | T | Serializable - | Helper - | Parameter + | Helper + | Parameter | ArrayParameter | readonly SerializableParameter[]; @@ -543,16 +543,16 @@ declare namespace postgres { | boolean | Date // serialized as `string` | readonly JSONValue[] - | { toJSON(): any } // `toJSON` called by `JSON.stringify`; not typing the return type, types definition is strict enough anyway + | { toJSON(): unknown } // `toJSON` called by `JSON.stringify`; not typing the return type, types definition is strict enough unknownway | { readonly [prop: string | number]: | undefined | JSONValue - | ((...args: any) => any) // serialized as `undefined` + | ((...args: unknown) => unknown) // serialized as `undefined` }; interface Row { - [column: string]: any; + [column: string]: unknown; } type MaybeRow = Row | undefined; @@ -595,11 +595,11 @@ declare namespace postgres { } type ExecutionResult = [] & ResultQueryMeta>; - type ValuesRowList = T[number][keyof T[number]][][] & ResultQueryMeta; - type RawRowList = Buffer[][] & Iterable & ResultQueryMeta; - type RowList = T & Iterable> & ResultQueryMeta; + type ValuesRowList = T[number][keyof T[number]][][] & ResultQueryMeta; + type RawRowList = Buffer[][] & Iterable & ResultQueryMeta; + type RowList = T & Iterable> & ResultQueryMeta; - interface PendingQueryModifiers { + interface PendingQueryModifiers { simple(): this; readable(): Promise; writable(): Promise; @@ -642,12 +642,12 @@ declare namespace postgres { unlisten(): Promise } - interface Helper extends NotAPromise { + interface Helper extends NotAPromise { first: T; rest: U; } - type Fragment = PendingQuery + type Fragment = PendingQuery type ParameterOrJSON = | SerializableParameter @@ -686,13 +686,13 @@ declare namespace postgres { [name in keyof TTypes]: (value: TTypes[name]) => postgres.Parameter }; - unsafe)[]>(query: string, parameters?: (ParameterOrJSON)[] | undefined, queryOptions?: UnsafeQueryOptions | undefined): PendingQuery; + unsafe)[]>(query: string, parameters?: (ParameterOrJSON)[] | undefined, queryOptions?: UnsafeQueryOptions | undefined): PendingQuery; end(options?: { timeout?: number | undefined } | undefined): Promise; listen(channel: string, onnotify: (value: string) => void, onlisten?: (() => void) | undefined): ListenRequest; notify(channel: string, payload: string): PendingRequest; - subscribe(event: string, cb: (row: Row | null, info: ReplicationEvent) => void, onsubscribe?: (() => void), onerror?: (() => any)): Promise; + subscribe(event: string, cb: (row: Row | null, info: ReplicationEvent) => void, onsubscribe?: (() => void), onerror?: (() => unknown)): Promise; largeObject(oid?: number | undefined, /** @default 0x00020000 | 0x00040000 */ mode?: number | undefined): Promise; @@ -700,8 +700,8 @@ declare namespace postgres { begin(options: string, cb: (sql: TransactionSql) => T | Promise): Promise>; array[] = SerializableParameter[]>(value: T, type?: number | undefined): ArrayParameter; - file(path: string | Buffer | URL | number, options?: { cache?: boolean | undefined } | undefined): PendingQuery; - file(path: string | Buffer | URL | number, args: (ParameterOrJSON)[], options?: { cache?: boolean | undefined } | undefined): PendingQuery; + file(path: string | Buffer | URL | number, options?: { cache?: boolean | undefined } | undefined): PendingQuery; + file(path: string | Buffer | URL | number, args: (ParameterOrJSON)[], options?: { cache?: boolean | undefined } | undefined): PendingQuery; json(value: JSONValue): Parameter; reserve(): Promise>