1 |
|
2 | declare function asTable(rows: any[][]): string
|
3 | declare function asTable(objects: {[column: string]: any}[]): string
|
4 | declare namespace asTable {
|
5 | interface Config<T> {
|
6 | maxTotalWidth: number
|
7 | minColumnWidths?: number[]
|
8 | delimiter?: string
|
9 | dash: string
|
10 | right: boolean
|
11 | print(value: T, key?: string | number): string
|
12 | title(value: string): string
|
13 | }
|
14 | type OmitPrint<T> = Pick<T, Exclude<keyof T, 'print'>> & {print: undefined}
|
15 | type ValidValueType<O, T> = {
|
16 | [P in keyof O]: T;
|
17 | }
|
18 | interface Formatter<T> extends Readonly<Config<T>> {
|
19 | (rows: T[][]): string
|
20 | <O extends ValidValueType<O, T>>(objects: O[]): string
|
21 | configure(cfg: Partial<OmitPrint<Config<any>>>): Formatter<T>
|
22 | configure<T>(cfg: Partial<Config<T>>): Formatter<T>
|
23 | }
|
24 | function configure<T = any>(cfg: Partial<Config<T>>): Formatter<T>
|
25 | const maxTotalWidth: number
|
26 | const print: StringConstructor
|
27 | const title: StringConstructor
|
28 | const dash: '-'
|
29 | const right: false
|
30 | }
|
31 |
|
32 | export = asTable
|
33 |
|
\ | No newline at end of file |