@fewer/adapter-postgres
Version:
A Fewer database adapter to connect to Postgres
54 lines (53 loc) • 3.31 kB
TypeScript
import { ColumnType } from 'fewer';
export interface ColumnOptions {
nonNull?: boolean;
unique?: boolean;
default?: any;
}
export interface NumericOptions extends ColumnOptions {
precision?: number;
scale?: number;
}
export interface CharacterOptions extends ColumnOptions {
length?: number;
}
export interface PathOptions extends ColumnOptions {
open?: boolean;
}
export interface ArrayOptions<T> extends ColumnOptions {
type: T;
}
declare const columnTypes: {
boolean: (config?: ColumnOptions | undefined) => ColumnType<boolean | undefined, ColumnOptions>;
numeric: (config?: NumericOptions | undefined) => ColumnType<number | undefined, NumericOptions>;
decimal: (config?: NumericOptions | undefined) => ColumnType<number | undefined, NumericOptions>;
smallint: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
integer: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
int: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
bigint: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
double: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
real: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
smallserial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
serial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
bigserial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
char: (config?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
varchar: (config?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
text: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
string: (options?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
bytea: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
point: (config?: ColumnOptions | undefined) => ColumnType<[number, number] | undefined, ColumnOptions>;
line: (config?: ColumnOptions | undefined) => ColumnType<{
A: number;
B: number;
C: number;
} | undefined, ColumnOptions>;
lseg: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], [number, number]] | undefined, ColumnOptions>;
box: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], [number, number]] | undefined, ColumnOptions>;
path: (config?: PathOptions | undefined) => ColumnType<[number, number][] | undefined, PathOptions>;
polygon: (config?: PathOptions | undefined) => ColumnType<[number, number][] | undefined, PathOptions>;
circle: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], number] | undefined, ColumnOptions>;
uuid: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
json: (config?: ColumnOptions | undefined) => ColumnType<object | undefined, ColumnOptions>;
jsonb: (config?: ColumnOptions | undefined) => ColumnType<object | undefined, ColumnOptions>;
};
export default columnTypes;