DefinitelyTyped/types/pg-large-object/index.d.ts
Ravi van Rooijen 47e9cf6d89 [@types/pg] Generify query methods (#37892)
* [@types/pg] Generify query methods

`R` will be the return type of the query, `I` a tuple for parameters

* [@types/pg] Add test for generified query method

* Raise pg-copy-streams minimum typescript version for pg compatibility

* Raise pg-ears minimum typescript version for pg compatibility

* Raise pg-large-object minimum typescript version for pg compatibility

* Raise pg-pool minimum typescript version for pg compatibility

* Raise pg-query minimum typescript version for pg compatibility
2019-09-04 10:44:34 -07:00

60 lines
2.6 KiB
TypeScript

// Type definitions for pg-large-object 2.0
// Project: https://github.com/Joris-van-der-Wel/node-pg-large-object#readme
// Definitions by: Mateusz Krupa <https://github.com/mateuszkrupa>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
/// <reference types="node" />
import stream = require("stream");
import pg = require("pg");
export class LargeObject {
static readonly SEEK_SET: number;
static readonly SEEK_CUR: number;
static readonly SEEK_END: number;
constructor(query: any, oid: number, fd: any);
close(callback: (error: Error) => void): void;
closeAsync(): Promise<any>;
read(length: number, callback: (error: Error, data: Buffer) => void): void;
readAsync(length: number): Promise<Buffer>;
write(buffer: Buffer, callback?: (error: Error) => void): void;
writeAsync(buffer: Buffer): Promise<any>;
seek(position: number, ref: number, callback?: (error: Error, position: number) => void): void;
seekAsync(position: number, ref: number): Promise<number>;
tell(callback: (error: Error, position: number) => void): void;
tellAsync(): Promise<number>;
size(callback: (error: Error, size: number) => void): void;
sizeAsync(): Promise<number>;
truncate(length: number, callback?: (error: Error) => void): void;
truncateAsync(length: number): Promise<any>;
getReadableStream(bufferSize?: number): ReadStream;
getWritableStream(bufferSize?: number): WriteStream;
}
export interface LargeObjectManagerSettings {
pg?: pg.Client;
pgPromise?: object; // module: pg-promise/Task
}
export class LargeObjectManager {
static readonly WRITE: number;
static readonly READ: number;
static readonly READWRITE: number;
constructor(options: LargeObjectManagerSettings|object);
open(oid: number, mode: number, callback: (error: Error, result: LargeObject) => void): void;
openAsync(oid: number, mode: number): Promise<LargeObject>;
create(callback: (error: Error, oid: number) => void): void;
createAsync(): Promise<number>;
openAndReadableStream(oid: number, bufferSize: number, callback: (error: Error, size: number, stream: ReadStream) => void): void;
openAndReadableStreamAsync(oid: number, bufferSize?: number): Promise<[number, ReadStream]>;
createAndWritableStream(bufferSize?: number, callback?: (error: Error, oid: number, stream: WriteStream) => void): void;
createAndWritableStreamAsync(bufferSize?: number): Promise<[number, WriteStream]>;
unlink(oid: number, callback?: (error: Error) => void): void;
unlinkAsync(oid: number): Promise<any>;
}
export class ReadStream extends stream.Readable {}
export class WriteStream extends stream.Writable {}