From 8397cd52a5ec915a0b5e85d337cfcc38f4aaa63f Mon Sep 17 00:00:00 2001 From: Steven Guerrero <42647963+Soremwar@users.noreply.github.com> Date: Mon, 13 Apr 2020 12:15:18 -0500 Subject: Refactor std/types (#4713) --- std/types/react-dom/README.md | 13 +++ std/types/react-dom/v16.13.1/react-dom.d.ts | 124 +++++++++++++++++++++ .../react-dom/v16.13.1/tests/react-dom_mock.js | 9 ++ .../react-dom/v16.13.1/tests/react-dom_test.tsx | 20 ++++ std/types/react-dom/v16.13.1/tests/react_mock.js | 9 ++ 5 files changed, 175 insertions(+) create mode 100644 std/types/react-dom/README.md create mode 100644 std/types/react-dom/v16.13.1/react-dom.d.ts create mode 100644 std/types/react-dom/v16.13.1/tests/react-dom_mock.js create mode 100644 std/types/react-dom/v16.13.1/tests/react-dom_test.tsx create mode 100644 std/types/react-dom/v16.13.1/tests/react_mock.js (limited to 'std/types/react-dom') diff --git a/std/types/react-dom/README.md b/std/types/react-dom/README.md new file mode 100644 index 000000000..acf5ee8cd --- /dev/null +++ b/std/types/react-dom/README.md @@ -0,0 +1,13 @@ +Types for Facebook's React DOM library. + +[![npm version](https://img.shields.io/npm/v/react-dom.svg?style=flat)](https://www.npmjs.com/package/react-dom) + +This package serves as the entry point to the DOM and server renderers for +Facebook's React library. + +### Usage Examples + +```typescript +// @deno-types="https://deno.land/std/types/react-dom/v16.13.1/react-dom.d.ts" +import ReactDOM from "https://cdn.pika.dev/@pika/react-dom@v16.13.1"; +``` diff --git a/std/types/react-dom/v16.13.1/react-dom.d.ts b/std/types/react-dom/v16.13.1/react-dom.d.ts new file mode 100644 index 000000000..4880970bd --- /dev/null +++ b/std/types/react-dom/v16.13.1/react-dom.d.ts @@ -0,0 +1,124 @@ +// These types are adapted from +// https://github.com/DefinitelyTyped/DefinitelyTyped to work under Deno. +// +// Project: http://facebook.github.io/react/ +// Definitions by: Asana +// AssureSign +// Microsoft +// MartynasZilinskas +// Josh Rutherford +// Jessica Franco +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +// NOTE: Users of the `experimental` builds of React should add a reference +// to 'react-dom/experimental' in their project. See experimental.d.ts's top comment +// for reference and documentation on how exactly to do it. + +/* eslint-disable */ + +export as namespace ReactDOM; + +import { + ReactInstance, + Component, + ComponentState, + ReactElement, + SFCElement, + CElement, + DOMAttributes, + DOMElement, + ReactNode, + ReactPortal, +} from "../../react/v16.13.1/react.d.ts"; + +export function findDOMNode( + instance: ReactInstance | null | undefined +): Element | null | Text; +export function unmountComponentAtNode(container: Element): boolean; + +export function createPortal( + children: ReactNode, + container: Element, + key?: null | string +): ReactPortal; + +export const version: string; +export const render: Renderer; +export const hydrate: Renderer; + +export function unstable_batchedUpdates( + callback: (a: A, b: B) => any, + a: A, + b: B +): void; +export function unstable_batchedUpdates(callback: (a: A) => any, a: A): void; +export function unstable_batchedUpdates(callback: () => any): void; + +export function unstable_renderSubtreeIntoContainer( + parentComponent: Component, + element: DOMElement, T>, + container: Element, + callback?: (element: T) => any +): T; +export function unstable_renderSubtreeIntoContainer< + P, + T extends Component +>( + parentComponent: Component, + element: CElement, + container: Element, + callback?: (component: T) => any +): T; +export function unstable_renderSubtreeIntoContainer

( + parentComponent: Component, + element: ReactElement

, + container: Element, + callback?: (component?: Component | Element) => any +): Component | Element | void; + +export interface Renderer { + // Deprecated(render): The return value is deprecated. + // In future releases the render function's return type will be void. + + ( + element: DOMElement, T>, + container: Element | null, + callback?: () => void + ): T; + + ( + element: Array, any>>, + container: Element | null, + callback?: () => void + ): Element; + + ( + element: SFCElement | Array>, + container: Element | null, + callback?: () => void + ): void; + + >( + element: CElement, + container: Element | null, + callback?: () => void + ): T; + + ( + element: Array>>, + container: Element | null, + callback?: () => void + ): Component; + +

( + element: ReactElement

, + container: Element | null, + callback?: () => void + ): Component | Element | void; + + (element: ReactElement[], container: Element | null, callback?: () => void): + | Component + | Element + | void; +} diff --git a/std/types/react-dom/v16.13.1/tests/react-dom_mock.js b/std/types/react-dom/v16.13.1/tests/react-dom_mock.js new file mode 100644 index 000000000..cbc20958b --- /dev/null +++ b/std/types/react-dom/v16.13.1/tests/react-dom_mock.js @@ -0,0 +1,9 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +const ReactDOM = { + render(element) { + return JSON.stringify(element); + }, +}; + +export default ReactDOM; diff --git a/std/types/react-dom/v16.13.1/tests/react-dom_test.tsx b/std/types/react-dom/v16.13.1/tests/react-dom_test.tsx new file mode 100644 index 000000000..e754ad0de --- /dev/null +++ b/std/types/react-dom/v16.13.1/tests/react-dom_test.tsx @@ -0,0 +1,20 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +// @deno-types="../../../react/v16.13.1/react.d.ts" +import React from "./react_mock.js"; +// @deno-types="../react-dom.d.ts" +import ReactDOM from "./react-dom_mock.js"; + +import { assertEquals } from "../../../../testing/asserts.ts"; + +const { test } = Deno; + +test({ + name: "ReactDOM is typed to render", + fn() { + assertEquals( + ReactDOM.render(

, null), + '"{\\"type\\":\\"div\\",\\"props\\":null,\\"children\\":[]}"' + ); + } +}); diff --git a/std/types/react-dom/v16.13.1/tests/react_mock.js b/std/types/react-dom/v16.13.1/tests/react_mock.js new file mode 100644 index 000000000..3dec4f422 --- /dev/null +++ b/std/types/react-dom/v16.13.1/tests/react_mock.js @@ -0,0 +1,9 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +const React = { + createElement(type, props, ...children) { + return JSON.stringify({ type, props, children }); + }, +}; + +export default React; -- cgit v1.2.3