mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-06-28 14:20:12 +00:00
ink: Provides its own types (#39595)
* ink: Provides its own types * use @types/ink instead of ink
This commit is contained in:
committed by
Nathan Shively-Sanders
parent
b581c9f5d2
commit
792e8dd0fe
@@ -1812,6 +1812,12 @@
|
||||
"sourceRepoURL": "https://github.com/sindresorhus/indent-string",
|
||||
"asOfVersion": "4.0.0"
|
||||
},
|
||||
{
|
||||
"libraryName": "ink",
|
||||
"typingsPackageName": "ink",
|
||||
"sourceRepoURL": "https://github.com/vadimdemedes/ink#readme",
|
||||
"asOfVersion": "2.0.2"
|
||||
},
|
||||
{
|
||||
"libraryName": "instabug-reactnative",
|
||||
"typingsPackageName": "instabug-reactnative",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@types/ink": "^0.5.2",
|
||||
"chalk": "^2.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
6
types/ink-table/package.json
Normal file
6
types/ink-table/package.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@types/ink": "^0.5.2"
|
||||
}
|
||||
}
|
||||
6
types/ink-testing-library/package.json
Normal file
6
types/ink-testing-library/package.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@types/ink": "^0.5.2"
|
||||
}
|
||||
}
|
||||
6
types/ink-text-input/package.json
Normal file
6
types/ink-text-input/package.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@types/ink": "^0.5.2"
|
||||
}
|
||||
}
|
||||
216
types/ink/index.d.ts
vendored
216
types/ink/index.d.ts
vendored
@@ -1,216 +0,0 @@
|
||||
// Type definitions for ink 0.5
|
||||
// Project: https://github.com/vadimdemedes/ink#readme
|
||||
// Definitions by: Carlos Precioso <https://github.com/cprecioso>
|
||||
// James Adarich <https://github.com/jamesadarich>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.8
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import { ValidationMap } from "prop-types";
|
||||
|
||||
export interface InkElement {
|
||||
component: InkComponent<any>;
|
||||
instance: Component<any, any, any> | null;
|
||||
ref: (ref: any) => void;
|
||||
_props: any;
|
||||
_children: InkNode[];
|
||||
}
|
||||
|
||||
export type InkNode =
|
||||
| ReadonlyArray<InkElement | string | number | null>
|
||||
| InkElement
|
||||
| string
|
||||
| number
|
||||
| null;
|
||||
|
||||
export function h<P extends Record<string, any>>(
|
||||
type: ComponentClass<P, any, any> | StatelessComponent<P, any>,
|
||||
props: P,
|
||||
...children: InkNode[]
|
||||
): InkElement;
|
||||
|
||||
export function h<T extends keyof JSX.IntrinsicElements>(
|
||||
type: T,
|
||||
props: JSX.IntrinsicElements[T],
|
||||
...children: InkNode[]
|
||||
): InkElement;
|
||||
|
||||
export function render(
|
||||
tree: InkElement,
|
||||
stream?: NodeJS.WriteStream
|
||||
): (() => void);
|
||||
export function renderToString(tree: InkElement, prevTree?: InkElement): string;
|
||||
|
||||
export type InkComponent<P extends Record<string, any> = {}> =
|
||||
| ComponentClass<P, any, any>
|
||||
| StatelessComponent<P, any>;
|
||||
|
||||
export interface StatelessComponent<
|
||||
P extends Record<string, any> = {},
|
||||
C extends Record<string, any> = {}
|
||||
> {
|
||||
(props: P, context: C): InkElement;
|
||||
defaultProps?: Record<string, any>;
|
||||
propTypes?: ValidationMap<Record<string, any>>;
|
||||
}
|
||||
|
||||
export abstract class Component<
|
||||
P extends Record<string, any> = {},
|
||||
S extends Record<string, any> = {},
|
||||
C extends Record<string, any> = {}
|
||||
> {
|
||||
readonly props: P & { children?: InkNode };
|
||||
readonly context: C;
|
||||
state: S;
|
||||
|
||||
constructor(props?: P);
|
||||
|
||||
setState(
|
||||
nextState:
|
||||
| Partial<Component["state"]>
|
||||
| ((state: Component["state"]) => Partial<Component["state"]>),
|
||||
callback?: () => void
|
||||
): void;
|
||||
}
|
||||
|
||||
export interface Component<
|
||||
P extends Record<string, any> = {},
|
||||
S extends Record<string, any> = {},
|
||||
C extends Record<string, any> = {}
|
||||
> {
|
||||
state: S;
|
||||
|
||||
render(
|
||||
props: Component["props"],
|
||||
state: Component["state"],
|
||||
context: Component["state"]
|
||||
): InkElement;
|
||||
|
||||
componentWillMount?(): void;
|
||||
componentDidMount?(): void;
|
||||
componentWillUnmount?(): void;
|
||||
componentWillReceiveProps?(
|
||||
nextProps: Component["props"],
|
||||
nextState: Component["state"]
|
||||
): void;
|
||||
shouldComponentUpdate?(
|
||||
nextProps: Component["props"],
|
||||
nextState: Component["state"]
|
||||
): void;
|
||||
componentWillUpdate?(
|
||||
nextProps: Component["props"],
|
||||
nextState: Component["state"]
|
||||
): void;
|
||||
componentDidUpdate?(): void;
|
||||
|
||||
getChildContext?(): (() => Record<string, any>);
|
||||
}
|
||||
|
||||
export interface ComponentClass<
|
||||
P extends Record<string, any> = {},
|
||||
S extends Record<string, any> = {},
|
||||
C extends Record<string, any> = {}
|
||||
> {
|
||||
new (props: Component["props"], context: Component["state"]): Component<
|
||||
P,
|
||||
S,
|
||||
C
|
||||
>;
|
||||
defaultProps?: Record<string, any>;
|
||||
propTypes?: ValidationMap<Record<string, any>>;
|
||||
}
|
||||
|
||||
export namespace h {
|
||||
const Fragment: InkComponent;
|
||||
}
|
||||
export const Fragment: typeof h.Fragment;
|
||||
|
||||
export const Indent: ComponentClass;
|
||||
|
||||
export const Color: ComponentClass<{
|
||||
rgb?: [number, number, number];
|
||||
hsl?: [number, number, number];
|
||||
hsv?: [number, number, number];
|
||||
hwb?: [number, number, number];
|
||||
hex?: string;
|
||||
keyword?: string;
|
||||
bgRgb?: [number, number, number];
|
||||
bgHsl?: [number, number, number];
|
||||
bgHsv?: [number, number, number];
|
||||
bgHwb?: [number, number, number];
|
||||
bgHex?: string;
|
||||
bgKeyword?: string;
|
||||
reset?: boolean;
|
||||
bold?: boolean;
|
||||
dim?: boolean;
|
||||
italic?: boolean;
|
||||
underline?: boolean;
|
||||
inverse?: boolean;
|
||||
hidden?: boolean;
|
||||
strikethrough?: boolean;
|
||||
visible?: boolean;
|
||||
black?: boolean;
|
||||
red?: boolean;
|
||||
green?: boolean;
|
||||
yellow?: boolean;
|
||||
blue?: boolean;
|
||||
magenta?: boolean;
|
||||
cyan?: boolean;
|
||||
white?: boolean;
|
||||
gray?: boolean;
|
||||
grey?: boolean;
|
||||
blackBright?: boolean;
|
||||
redBright?: boolean;
|
||||
greenBright?: boolean;
|
||||
yellowBright?: boolean;
|
||||
blueBright?: boolean;
|
||||
magentaBright?: boolean;
|
||||
cyanBright?: boolean;
|
||||
whiteBright?: boolean;
|
||||
bgBlack?: boolean;
|
||||
bgRed?: boolean;
|
||||
bgGreen?: boolean;
|
||||
bgYellow?: boolean;
|
||||
bgBlue?: boolean;
|
||||
bgMagenta?: boolean;
|
||||
bgCyan?: boolean;
|
||||
bgWhite?: boolean;
|
||||
bgBlackBright?: boolean;
|
||||
bgRedBright?: boolean;
|
||||
bgGreenBright?: boolean;
|
||||
bgYellowBright?: boolean;
|
||||
bgBlueBright?: boolean;
|
||||
bgMagentaBright?: boolean;
|
||||
bgCyanBright?: boolean;
|
||||
bgWhiteBright?: boolean;
|
||||
}>;
|
||||
|
||||
export const Bold: InkComponent;
|
||||
export const Underline: InkComponent;
|
||||
|
||||
declare global {
|
||||
namespace JSX {
|
||||
type Element = InkElement;
|
||||
|
||||
type ElementClass = Component;
|
||||
type FunctionalElement = StatelessComponent;
|
||||
|
||||
interface ElementAttributesProperty {
|
||||
props: {};
|
||||
}
|
||||
interface ElementChildrenAttribute {
|
||||
children: {};
|
||||
}
|
||||
|
||||
interface IntrinsicClassAttributes<T> {
|
||||
ref?: (ref: T | null) => void;
|
||||
}
|
||||
|
||||
interface IntrinsicElements {
|
||||
div: {};
|
||||
span: {};
|
||||
br: {};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
// @jsx h
|
||||
|
||||
import { Color, Component, Fragment, Indent, render } from "ink";
|
||||
|
||||
interface CounterProps {
|
||||
totalTests: number;
|
||||
}
|
||||
|
||||
class Counter extends Component<CounterProps, { i: number }> {
|
||||
timer = null as ReturnType<typeof setInterval> | null;
|
||||
state = { i: 0 };
|
||||
|
||||
constructor(props: CounterProps) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Fragment>
|
||||
<Indent>
|
||||
<Color green>{this.state.i} / {this.props.totalTests} tests passed</Color>
|
||||
</Indent>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.timer = setInterval(() => {
|
||||
this.setState({
|
||||
i: this.state.i + 1
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.timer!);
|
||||
}
|
||||
}
|
||||
|
||||
render(<Counter totalTests={100} />);
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": ["../"],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"jsx": "preserve"
|
||||
},
|
||||
"files": ["index.d.ts", "ink-tests.tsx"]
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user