Refactor typings.

This commit is contained in:
Dylan Vann 2018-01-31 22:16:32 -05:00
parent ab12d8de4f
commit ac667495d2
1 changed files with 79 additions and 44 deletions

123
index.d.ts vendored
View File

@ -1,56 +1,91 @@
import * as React from 'react';
import { ObjectOverwrite } from 'typelevel-ts';
import { ImageProperties, ImageStatic } from 'react-native';
import * as React from 'react'
import { FlexStyle, LayoutChangeEvent, ShadowStyleIOS, StyleProp, TransformsStyle } from 'react-native'
declare namespace FastImage {
export namespace priority {
type low = 'low';
type normal = 'normal';
type high = 'high';
}
export namespace priority {
type low = 'low'
type normal = 'normal'
type high = 'high'
}
type priority =
FastImage.priority.low |
FastImage.priority.normal |
FastImage.priority.high;
type priority =
FastImage.priority.low |
FastImage.priority.normal |
FastImage.priority.high
export namespace resizeMode {
type contain = 'contain';
type cover = 'cover';
type stretch = 'stretch';
type center = 'center';
}
export namespace resizeMode {
type contain = 'contain'
type cover = 'cover'
type stretch = 'stretch'
type center = 'center'
}
export type resizeMode =
FastImage.resizeMode.contain |
FastImage.resizeMode.cover |
FastImage.resizeMode.stretch |
FastImage.resizeMode.center
export type resizeMode =
FastImage.resizeMode.contain |
FastImage.resizeMode.cover |
FastImage.resizeMode.stretch |
FastImage.resizeMode.center
}
export type FastImageSource = {
uri?: string,
headers?: object;
priority?: FastImage.priority;
};
export type FastImageProperties = ObjectOverwrite<ImageProperties, {
source: FastImageSource | number,
resizeMode?: FastImage.resizeMode;
onLoadStart?(): void;
onprogress?(event: any): void;
onLoad?(): void;
onError?(): void;
onLoadEnd?(): void;
}>;
interface FastImageStatic extends React.ComponentClass<FastImageProperties> {
resizeMode: FastImage.resizeMode;
preload(sources: Array<FastImageProperties['source']>): void;
uri?: string,
headers?: object
priority?: FastImage.priority
}
declare var FastImage: FastImageStatic;
type FastImage = FastImageStatic;
export interface ImageStyle extends FlexStyle, TransformsStyle, ShadowStyleIOS {
backfaceVisibility?: 'visible' | 'hidden'
backgroundColor?: string
borderColor?: string
overlayColor?: string
tintColor?: string
opacity?: number
}
export default FastImage;
export interface FastImageProperties {
source: FastImageSource | number
resizeMode?: FastImage.resizeMode
onLoadStart?(): void
onProgress?(event: any): void
onLoad?(): void
onError?(): void
onLoadEnd?(): void
/**
* onLayout function
*
* Invoked on mount and layout changes with
*
* {nativeEvent: { layout: {x, y, width, height}}}.
*/
onLayout?: (event: LayoutChangeEvent) => void;
/**
*
* Style
*/
style?: StyleProp<ImageStyle>;
/**
* A unique identifier for this element to be used in UI Automation testing scripts.
*/
testID?: string;
}
interface FastImageStatic extends React.ComponentClass<FastImageProperties> {
resizeMode: FastImage.resizeMode
priority: FastImage.priority
preload(sources: FastImageSource[]): void
}
declare var FastImage: FastImageStatic
type FastImage = FastImageStatic
export default FastImage