diff --git a/types/ink-table/index.d.ts b/types/ink-table/index.d.ts new file mode 100644 index 0000000000..a225084f59 --- /dev/null +++ b/types/ink-table/index.d.ts @@ -0,0 +1,23 @@ +// Type definitions for ink-table 1.0 +// Project: https://github.com/maticzav/ink-table#readme +// Definitions by: Ɓukasz Ostrowski +// Definitions: https://github.com/DefinitelyTyped/ +// TypeScript Version: 2.8 + +import { InkComponent, InkNode, StatelessComponent } from 'ink'; + +export interface TableProps { + cell?: InkComponent; + data?: ReadonlyArray; + header?: InkComponent; + padding?: number; + skeleton?: InkComponent; +} + +export const Cell: StatelessComponent<{ children: InkNode }>; +export const Header: StatelessComponent<{ children: InkNode }>; +export const Skeleton: StatelessComponent<{ children: InkNode }>; + +declare const Table: StatelessComponent; + +export default Table; diff --git a/types/ink-table/ink-table-tests.tsx b/types/ink-table/ink-table-tests.tsx new file mode 100644 index 0000000000..53f3eb0c3b --- /dev/null +++ b/types/ink-table/ink-table-tests.tsx @@ -0,0 +1,45 @@ +/** @jsx h */ +import { h } from 'ink'; +import Table from 'ink-table'; + +const data = [ + { + name: 'Sosa Saunders', + gender: 'male', + age: 17, + email: 'sosa.saunders@mail.com', + phone: '+1 (809) 435-2786' + }, + { + name: 'Angelina Kirk', + gender: 'female', + age: 3, + email: 'angelina@kirk.io', + phone: '+1 (870) 567-3516' + }, + { + name: 'Bradford Rosales', + gender: 'male', + age: 20, + email: 'bradfordrosales@fast.com', + phone: '+1 (918) 573-3240' + }, + { + name: 'Gwen Schroeder', + gender: 'female', + age: 17, + email: 'gwen@corp.xyz', + phone: '+1 (987) 417-2062' + }, + { + name: 'Ellison Mann', + gender: 'male', + age: 5, + email: 'ellisonmann@katakana.com', + phone: '+1 (889) 411-2186' + } +]; + +const Basic = () => ( + +); diff --git a/types/ink-table/tsconfig.json b/types/ink-table/tsconfig.json new file mode 100644 index 0000000000..0bc43e3305 --- /dev/null +++ b/types/ink-table/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "jsx": "react", + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ink-table-tests.tsx" + ] +} diff --git a/types/ink-table/tslint.json b/types/ink-table/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/ink-table/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }