diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..d3e8f0b --- /dev/null +++ b/index.d.ts @@ -0,0 +1,21 @@ +// Type definitions for react-gateway 2.8 +// Project: https://github.com/cloudflare/react-gateway +// Definitions by: Jason Unger +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import Gateway = require('./Gateway'); +import { GatewayProps } from './Gateway'; +import GatewayDest = require('./GatewayDest'); +import { GatewayDestProps } from './GatewayDest'; +import GatewayProvider = require('./GatewayProvider'); +import GatewayRegistry = require('./GatewayRegistry'); + +export { + Gateway, + GatewayProps, + GatewayDest, + GatewayDestProps, + GatewayProvider, + GatewayRegistry +}; diff --git a/package.json b/package.json index d5c156d..9fa28c3 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "3.1.0", "description": "Render React DOM into a new context", "main": "lib/index.js", + "types": "index.d.ts", "scripts": { "build": "babel src -d lib", "example": "browserify example/browser.js -o example/bundle.js -t babelify --debug && babel-node example/server.js", diff --git a/src/Gateway.d.ts b/src/Gateway.d.ts new file mode 100644 index 0000000..8fabcc9 --- /dev/null +++ b/src/Gateway.d.ts @@ -0,0 +1,9 @@ +import * as React from 'react'; + +declare namespace Gateway { + interface GatewayProps { + into: string; + } +} +declare class Gateway extends React.Component { } +export = Gateway; diff --git a/src/GatewayDest.d.ts b/src/GatewayDest.d.ts new file mode 100644 index 0000000..eec9d53 --- /dev/null +++ b/src/GatewayDest.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +declare namespace GatewayDest { + interface GatewayDestProps { + name: string; + tagName?: string | undefined; + component?: string | React.ComponentType | undefined; + } +} +declare class GatewayDest extends React.Component { } +export = GatewayDest; diff --git a/src/GatewayProvider.d.ts b/src/GatewayProvider.d.ts new file mode 100644 index 0000000..2d97153 --- /dev/null +++ b/src/GatewayProvider.d.ts @@ -0,0 +1,4 @@ +import * as React from 'react'; + +declare class GatewayProvider extends React.Component { } +export = GatewayProvider; diff --git a/src/GatewayRegistry.d.ts b/src/GatewayRegistry.d.ts new file mode 100644 index 0000000..260a7e0 --- /dev/null +++ b/src/GatewayRegistry.d.ts @@ -0,0 +1,20 @@ +declare class GatewayRegistry { + _containers: { [name: string]: React.Component | null | undefined }; + _children: { [name: string]: { [gatewayId: string]: React.ReactNode } | undefined }; + _currentId: number; + + _renderContainer(name: string): void; + + addContainer(name: string, container: React.Component): void; + + removeContainer(name: string): void; + + addChild(name: string, gatewayId: string, child: React.ReactNode): void; + + clearChild(name: string, gatewayId: string): void; + + register(name: string, child: React.ReactNode): string; + + unregister(name: string, gatewayId: string): void; +} +export = GatewayRegistry;