From 04d8b844c5e8080b15ede015df826ab6f89d5aea Mon Sep 17 00:00:00 2001 From: ark120202 Date: Mon, 28 Jan 2019 17:46:34 +0500 Subject: [PATCH] Add types for react-dev-utils --- types/react-dev-utils/FileSizeReporter.d.ts | 27 ++++++++++ .../InlineChunkHtmlPlugin.d.ts | 11 ++++ .../InterpolateHtmlPlugin.d.ts | 11 ++++ types/react-dev-utils/ModuleScopePlugin.d.ts | 11 ++++ .../WatchMissingNodeModulesPlugin.d.ts | 10 ++++ .../WebpackDevServerUtils.d.ts | 46 ++++++++++++++++ types/react-dev-utils/checkRequiredFiles.d.ts | 9 ++++ types/react-dev-utils/clearConsole.d.ts | 5 ++ types/react-dev-utils/eslintFormatter.d.ts | 9 ++++ .../formatWebpackMessages.d.ts | 16 ++++++ .../getCSSModuleLocalIdent.d.ts | 18 +++++++ types/react-dev-utils/getCacheIdentifier.d.ts | 6 +++ types/react-dev-utils/getProcessForPort.d.ts | 6 +++ types/react-dev-utils/index.d.ts | 7 +++ types/react-dev-utils/launchEditor.d.ts | 8 +++ .../noopServiceWorkerMiddleware.d.ts | 9 ++++ types/react-dev-utils/openBrowser.d.ts | 9 ++++ types/react-dev-utils/printBuildError.d.ts | 6 +++ .../printHostingInstructions.d.ts | 12 +++++ types/react-dev-utils/test/eslintFormatter.ts | 13 +++++ .../test/noopServiceWorkerMiddleware.ts | 6 +++ types/react-dev-utils/test/utils.ts | 31 +++++++++++ types/react-dev-utils/test/webpack-plugins.ts | 22 ++++++++ types/react-dev-utils/test/webpack-utils.ts | 52 +++++++++++++++++++ types/react-dev-utils/tsconfig.json | 45 ++++++++++++++++ types/react-dev-utils/tslint.json | 1 + 26 files changed, 406 insertions(+) create mode 100644 types/react-dev-utils/FileSizeReporter.d.ts create mode 100644 types/react-dev-utils/InlineChunkHtmlPlugin.d.ts create mode 100644 types/react-dev-utils/InterpolateHtmlPlugin.d.ts create mode 100644 types/react-dev-utils/ModuleScopePlugin.d.ts create mode 100644 types/react-dev-utils/WatchMissingNodeModulesPlugin.d.ts create mode 100644 types/react-dev-utils/WebpackDevServerUtils.d.ts create mode 100644 types/react-dev-utils/checkRequiredFiles.d.ts create mode 100644 types/react-dev-utils/clearConsole.d.ts create mode 100644 types/react-dev-utils/eslintFormatter.d.ts create mode 100644 types/react-dev-utils/formatWebpackMessages.d.ts create mode 100644 types/react-dev-utils/getCSSModuleLocalIdent.d.ts create mode 100644 types/react-dev-utils/getCacheIdentifier.d.ts create mode 100644 types/react-dev-utils/getProcessForPort.d.ts create mode 100644 types/react-dev-utils/index.d.ts create mode 100644 types/react-dev-utils/launchEditor.d.ts create mode 100644 types/react-dev-utils/noopServiceWorkerMiddleware.d.ts create mode 100644 types/react-dev-utils/openBrowser.d.ts create mode 100644 types/react-dev-utils/printBuildError.d.ts create mode 100644 types/react-dev-utils/printHostingInstructions.d.ts create mode 100644 types/react-dev-utils/test/eslintFormatter.ts create mode 100644 types/react-dev-utils/test/noopServiceWorkerMiddleware.ts create mode 100644 types/react-dev-utils/test/utils.ts create mode 100644 types/react-dev-utils/test/webpack-plugins.ts create mode 100644 types/react-dev-utils/test/webpack-utils.ts create mode 100644 types/react-dev-utils/tsconfig.json create mode 100644 types/react-dev-utils/tslint.json diff --git a/types/react-dev-utils/FileSizeReporter.d.ts b/types/react-dev-utils/FileSizeReporter.d.ts new file mode 100644 index 0000000000..8b95d43db5 --- /dev/null +++ b/types/react-dev-utils/FileSizeReporter.d.ts @@ -0,0 +1,27 @@ +import webpack = require('webpack'); + +export interface OpaqueFileSizes { + root: string; + sizes: Record; +} + +/** + * Captures JS and CSS asset sizes inside the passed `buildFolder`. Save the + * result value to compare it after the build. + */ +export function measureFileSizesBeforeBuild(buildFolder: string): Promise; + +/** + * Prints the JS and CSS asset sizes after the build, and includes a size + * comparison with `previousFileSizes` that were captured earlier using + * `measureFileSizesBeforeBuild()`. `maxBundleGzipSize` and + * `maxChunkGzipSizemay` may optionally be specified to display a warning when + * the main bundle or a chunk exceeds the specified size (in bytes). + */ +export function printFileSizesAfterBuild( + webpackStats: webpack.Stats, + previousFileSizes: OpaqueFileSizes, + buildFolder: string, + maxBundleGzipSize?: number, + maxChunkGzipSize?: number, +): void; diff --git a/types/react-dev-utils/InlineChunkHtmlPlugin.d.ts b/types/react-dev-utils/InlineChunkHtmlPlugin.d.ts new file mode 100644 index 0000000000..41f35faef6 --- /dev/null +++ b/types/react-dev-utils/InlineChunkHtmlPlugin.d.ts @@ -0,0 +1,11 @@ +import webpack = require('webpack'); +import HtmlWebpackPlugin = require('html-webpack-plugin'); + +/** + * This Webpack plugin inlines script chunks into `index.html`. + */ +declare class InlineChunkHtmlPlugin extends webpack.Plugin { + constructor(htmlWebpackPlugin: HtmlWebpackPlugin, tests: ReadonlyArray); +} + +export = InlineChunkHtmlPlugin; diff --git a/types/react-dev-utils/InterpolateHtmlPlugin.d.ts b/types/react-dev-utils/InterpolateHtmlPlugin.d.ts new file mode 100644 index 0000000000..61357879c4 --- /dev/null +++ b/types/react-dev-utils/InterpolateHtmlPlugin.d.ts @@ -0,0 +1,11 @@ +import webpack = require('webpack'); +import HtmlWebpackPlugin = require('html-webpack-plugin'); + +/** + * This Webpack plugin lets us interpolate custom variables into `index.html`. + */ +declare class InterpolateHtmlPlugin extends webpack.Plugin { + constructor(htmlWebpackPlugin: HtmlWebpackPlugin, replacements: { [key: string]: string }); +} + +export = InterpolateHtmlPlugin; diff --git a/types/react-dev-utils/ModuleScopePlugin.d.ts b/types/react-dev-utils/ModuleScopePlugin.d.ts new file mode 100644 index 0000000000..61d234d712 --- /dev/null +++ b/types/react-dev-utils/ModuleScopePlugin.d.ts @@ -0,0 +1,11 @@ +import webpack = require('webpack'); + +/** + * This Webpack plugin ensures that relative imports from app's source + * directories don't reach outside of it. + */ +declare class ModuleScopePlugin extends webpack.Plugin { + constructor(appSrc: string | ReadonlyArray, allowedFiles?: ReadonlyArray); +} + +export = ModuleScopePlugin; diff --git a/types/react-dev-utils/WatchMissingNodeModulesPlugin.d.ts b/types/react-dev-utils/WatchMissingNodeModulesPlugin.d.ts new file mode 100644 index 0000000000..1ab7cc30be --- /dev/null +++ b/types/react-dev-utils/WatchMissingNodeModulesPlugin.d.ts @@ -0,0 +1,10 @@ +import webpack = require('webpack'); + +/** + * This Webpack plugin ensures `npm install ` forces a project rebuild. + */ +declare class WatchMissingNodeModulesPlugin extends webpack.Plugin { + constructor(nodeModulesPath: string); +} + +export = WatchMissingNodeModulesPlugin; diff --git a/types/react-dev-utils/WebpackDevServerUtils.d.ts b/types/react-dev-utils/WebpackDevServerUtils.d.ts new file mode 100644 index 0000000000..08d2ae0ebe --- /dev/null +++ b/types/react-dev-utils/WebpackDevServerUtils.d.ts @@ -0,0 +1,46 @@ +import webpack = require('webpack'); +import WebpackDevServer = require('webpack-dev-server'); + +export interface Urls { + lanUrlForConfig?: string; + lanUrlForTerminal?: string; + localUrlForTerminal: string; + localUrlForBrowser: string; +} + +/** + * Returns a Promise resolving to either `defaultPort` or next available port + * if the user confirms it is okay to do. If the port is taken and the user has + * refused to use another port, or if the terminal is not interactive and can’t + * present user with the choice, resolves to `null`. + */ +export function choosePort(host: string, defaultPort: number): Promise; + +/** + * Creates a Webpack compiler instance for WebpackDevServer with built-in + * helpful messages. Takes the `require('webpack')` entry point as the first + * argument. To provide the `urls` argument, use `prepareUrls()` described + * below. + */ +export function createCompiler( + _webpack: typeof webpack, + config: webpack.Configuration, + appName: string, + urls: Urls, + useYarn: boolean, +): webpack.Compiler; + +/** + * Creates a WebpackDevServer `proxy` configuration object from the `proxy` + * setting in `package.json`. + */ +export function prepareProxy( + proxySetting: any, + appPublicFolder: string, +): WebpackDevServer.Configuration; + +/** + * Returns an object with local and remote URLs for the development server. + * Pass this object to `createCompiler()` described above. + */ +export function prepareUrls(protocol: string, host: string, port: number): Urls; diff --git a/types/react-dev-utils/checkRequiredFiles.d.ts b/types/react-dev-utils/checkRequiredFiles.d.ts new file mode 100644 index 0000000000..40a8e45c88 --- /dev/null +++ b/types/react-dev-utils/checkRequiredFiles.d.ts @@ -0,0 +1,9 @@ +/** + * Makes sure that all passed files exist. + * + * Filenames are expected to be absolute. + * + * If a file is not found, prints a warning message and returns `false`. + */ +declare function checkRequiredFiles(files: ReadonlyArray): boolean; +export = checkRequiredFiles; diff --git a/types/react-dev-utils/clearConsole.d.ts b/types/react-dev-utils/clearConsole.d.ts new file mode 100644 index 0000000000..d3ae28c991 --- /dev/null +++ b/types/react-dev-utils/clearConsole.d.ts @@ -0,0 +1,5 @@ +/** + * Clears the console, hopefully in a cross-platform way. + */ +declare function clearConsole(): void; +export = clearConsole; diff --git a/types/react-dev-utils/eslintFormatter.d.ts b/types/react-dev-utils/eslintFormatter.d.ts new file mode 100644 index 0000000000..b5a10718d2 --- /dev/null +++ b/types/react-dev-utils/eslintFormatter.d.ts @@ -0,0 +1,9 @@ +import { CLIEngine } from 'eslint'; + +/** + * This is our custom ESLint formatter that integrates well with + * Create React App console output. + */ +declare function eslintFormatter(results: ReadonlyArray): string; + +export = eslintFormatter; diff --git a/types/react-dev-utils/formatWebpackMessages.d.ts b/types/react-dev-utils/formatWebpackMessages.d.ts new file mode 100644 index 0000000000..8e1994feea --- /dev/null +++ b/types/react-dev-utils/formatWebpackMessages.d.ts @@ -0,0 +1,16 @@ +declare namespace formatWebpackMessages { + interface WebpackMessages { + errors: string[]; + warnings: string[]; + } +} + +/** + * Extracts and prettifies warning and error messages from webpack + * [stats](https://github.com/webpack/docs/wiki/node.js-api#stats) object. + */ +declare function formatWebpackMessages( + json: formatWebpackMessages.WebpackMessages, +): formatWebpackMessages.WebpackMessages; + +export = formatWebpackMessages; diff --git a/types/react-dev-utils/getCSSModuleLocalIdent.d.ts b/types/react-dev-utils/getCSSModuleLocalIdent.d.ts new file mode 100644 index 0000000000..a443355f8b --- /dev/null +++ b/types/react-dev-utils/getCSSModuleLocalIdent.d.ts @@ -0,0 +1,18 @@ +import webpack = require('webpack'); + +/** + * Creates a class name for CSS Modules that uses either the filename or folder + * name if named `index.module.css`. + * + * For `MyFolder/MyComponent.module.css` and class `MyClass` the output will be + * `MyComponent.module_MyClass__[hash]`. For `MyFolder/index.module.css` and + * class `MyClass` the output will be `MyFolder_MyClass__[hash]` + */ +declare function getCSSModuleLocalIdent( + context: webpack.loader.LoaderContext, + localIdentName: string, + localName: string, + options: object, +): string; + +export = getCSSModuleLocalIdent; diff --git a/types/react-dev-utils/getCacheIdentifier.d.ts b/types/react-dev-utils/getCacheIdentifier.d.ts new file mode 100644 index 0000000000..86cbb093e3 --- /dev/null +++ b/types/react-dev-utils/getCacheIdentifier.d.ts @@ -0,0 +1,6 @@ +/** + * Returns a cache identifier (string) consisting of the specified environment + * and related package versions. + */ +declare function getCacheIdentifier(environment: string, packages: ReadonlyArray): string; +export = getCacheIdentifier; diff --git a/types/react-dev-utils/getProcessForPort.d.ts b/types/react-dev-utils/getProcessForPort.d.ts new file mode 100644 index 0000000000..5c2c9aac62 --- /dev/null +++ b/types/react-dev-utils/getProcessForPort.d.ts @@ -0,0 +1,6 @@ +/** + * Finds the currently running process on `port`. + * Returns a string containing the name and directory. + */ +declare function getProcessForPort(port: number): string | null; +export = getProcessForPort; diff --git a/types/react-dev-utils/index.d.ts b/types/react-dev-utils/index.d.ts new file mode 100644 index 0000000000..49bf463b73 --- /dev/null +++ b/types/react-dev-utils/index.d.ts @@ -0,0 +1,7 @@ +// Type definitions for react-dev-utils 7.0 +// Project: https://github.com/facebook/create-react-app#readme +// Definitions by: ark120202 +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +export {}; diff --git a/types/react-dev-utils/launchEditor.d.ts b/types/react-dev-utils/launchEditor.d.ts new file mode 100644 index 0000000000..5132d488ba --- /dev/null +++ b/types/react-dev-utils/launchEditor.d.ts @@ -0,0 +1,8 @@ +/** + * On macOS, tries to find a known running editor process and opens the file in + * it. It can also be explicitly configured by `REACT_EDITOR`, `VISUAL`, or + * `EDITOR` environment variables. For example, you can put `REACT_EDITOR=atom` + * in your `.env.local` file, and Create React App will respect that. + */ +declare function launchEditor(fileName: string, lineNumber: number, colNumber?: number): void; +export = launchEditor; diff --git a/types/react-dev-utils/noopServiceWorkerMiddleware.d.ts b/types/react-dev-utils/noopServiceWorkerMiddleware.d.ts new file mode 100644 index 0000000000..8f52455324 --- /dev/null +++ b/types/react-dev-utils/noopServiceWorkerMiddleware.d.ts @@ -0,0 +1,9 @@ +import express = require('express'); + +/** + * Returns Express middleware that serves a `/service-worker.js` that resets + * any previously set service worker configuration. Useful for development. + */ +declare function noopServiceWorkerMiddleware(): express.Handler; + +export = noopServiceWorkerMiddleware; diff --git a/types/react-dev-utils/openBrowser.d.ts b/types/react-dev-utils/openBrowser.d.ts new file mode 100644 index 0000000000..1c87eee617 --- /dev/null +++ b/types/react-dev-utils/openBrowser.d.ts @@ -0,0 +1,9 @@ +/** + * Attempts to open the browser with a given URL. + * + * On Mac OS X, attempts to reuse an existing Chrome tab via AppleScript. + * + * Otherwise, falls back to [opn](https://github.com/sindresorhus/opn) behavior. + */ +declare function openBrowser(url: string): boolean; +export = openBrowser; diff --git a/types/react-dev-utils/printBuildError.d.ts b/types/react-dev-utils/printBuildError.d.ts new file mode 100644 index 0000000000..c145e32d8c --- /dev/null +++ b/types/react-dev-utils/printBuildError.d.ts @@ -0,0 +1,6 @@ +/** + * Prettify some known build errors. + * Pass an Error object to log a prettified error message in the console. + */ +declare function printBuildError(error: Error): void; +export = printBuildError; diff --git a/types/react-dev-utils/printHostingInstructions.d.ts b/types/react-dev-utils/printHostingInstructions.d.ts new file mode 100644 index 0000000000..946b3118cb --- /dev/null +++ b/types/react-dev-utils/printHostingInstructions.d.ts @@ -0,0 +1,12 @@ +/** + * Prints hosting instructions after the project is built. + */ +declare function printHostingInstructions( + appPackage: object, + publicUrl: string, + publicPath: string, + buildFolder: string, + useYarn: boolean, +): void; + +export = printHostingInstructions; diff --git a/types/react-dev-utils/test/eslintFormatter.ts b/types/react-dev-utils/test/eslintFormatter.ts new file mode 100644 index 0000000000..d6fae121cc --- /dev/null +++ b/types/react-dev-utils/test/eslintFormatter.ts @@ -0,0 +1,13 @@ +import { CLIEngine } from 'eslint'; +import eslintFormatter = require('react-dev-utils/eslintFormatter'); + +const { results } = new CLIEngine({}).executeOnText(''); + +// $ExpectError +eslintFormatter(['error']); + +// $ExpectError +eslintFormatter([results]); + +// $ExpectType string +eslintFormatter(results); diff --git a/types/react-dev-utils/test/noopServiceWorkerMiddleware.ts b/types/react-dev-utils/test/noopServiceWorkerMiddleware.ts new file mode 100644 index 0000000000..37f5b85f04 --- /dev/null +++ b/types/react-dev-utils/test/noopServiceWorkerMiddleware.ts @@ -0,0 +1,6 @@ +import express = require('express'); +import noopServiceWorkerMiddleware = require('react-dev-utils/noopServiceWorkerMiddleware'); + +const app = express(); +app.use(noopServiceWorkerMiddleware()); +app.listen(8080); diff --git a/types/react-dev-utils/test/utils.ts b/types/react-dev-utils/test/utils.ts new file mode 100644 index 0000000000..6bb535ba2a --- /dev/null +++ b/types/react-dev-utils/test/utils.ts @@ -0,0 +1,31 @@ +import webpack = require('webpack'); +import checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); +import clearConsole = require('react-dev-utils/clearConsole'); +import getProcessForPort = require('react-dev-utils/getProcessForPort'); +import launchEditor = require('react-dev-utils/launchEditor'); +import openBrowser = require('react-dev-utils/openBrowser'); +import printHostingInstructions = require('react-dev-utils/printHostingInstructions'); +import getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); + +// $ExpectType boolean +checkRequiredFiles(['public/index.html', 'src/index.js']); + +// $ExpectType void +clearConsole(); + +// $ExpectType string | null +getProcessForPort(3000); + +// $ExpectType void +launchEditor(__filename, 2); +// $ExpectType void +launchEditor(__filename, 2, 10); + +// $ExpectType boolean +openBrowser('http://localhost:3000'); + +// $ExpectType void +printHostingInstructions({}, '', '', 'build', true); + +// $ExpectType string +getCacheIdentifier('prod', ['react-dev-utils', 'chalk']); diff --git a/types/react-dev-utils/test/webpack-plugins.ts b/types/react-dev-utils/test/webpack-plugins.ts new file mode 100644 index 0000000000..a72c6b823f --- /dev/null +++ b/types/react-dev-utils/test/webpack-plugins.ts @@ -0,0 +1,22 @@ +import webpack = require('webpack'); +import HtmlWebpackPlugin = require('html-webpack-plugin'); +import InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); +import InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin'); +import ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); +import WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); + +// $ExpectError +new InterpolateHtmlPlugin(HtmlWebpackPlugin, { PUBLIC_URL: 0 }); +const plugin1 = new InterpolateHtmlPlugin(HtmlWebpackPlugin, { PUBLIC_URL: '' }); + +// $ExpectError +new InlineChunkHtmlPlugin({}, [/runtime/]); +const plugin2 = new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime/]); + +const plugin3 = new ModuleScopePlugin('src', ['package.json']); + +const plugin4 = new WatchMissingNodeModulesPlugin('node_modules'); + +const configWithPlugins: webpack.Configuration = { + plugins: [plugin1, plugin2, plugin3, plugin4] +}; diff --git a/types/react-dev-utils/test/webpack-utils.ts b/types/react-dev-utils/test/webpack-utils.ts new file mode 100644 index 0000000000..d68483c0a2 --- /dev/null +++ b/types/react-dev-utils/test/webpack-utils.ts @@ -0,0 +1,52 @@ +import webpack = require('webpack'); +import FileSizeReporter = require('react-dev-utils/FileSizeReporter'); +import formatWebpackMessages = require('react-dev-utils/formatWebpackMessages'); +import printBuildError = require('react-dev-utils/printBuildError'); +import WebpackDevServerUtils = require('react-dev-utils/WebpackDevServerUtils'); +import getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); + +FileSizeReporter.measureFileSizesBeforeBuild('src').then(previousFileSizes => { + webpack().run((err, webpackStats) => { + FileSizeReporter.printFileSizesAfterBuild(webpackStats, previousFileSizes, 'src'); + }); +}); + +webpack().run((err, stats) => { + const rawMessages = stats.toJson(); + const messages = formatWebpackMessages(rawMessages); + if (!messages.errors.length && !messages.warnings.length) { + console.log('Compiled successfully!'); + } + if (messages.errors.length) { + console.log('Failed to compile.'); + messages.errors.forEach(e => console.log(e)); + return; + } + if (messages.warnings.length) { + console.log('Compiled with warnings.'); + messages.warnings.forEach(w => console.log(w)); + } +}); + +webpack().run((err) => { + if (err) printBuildError(err); +}); + +// $ExpectType Promise +WebpackDevServerUtils.choosePort('localhost', 3000); + +// $ExpectType Urls +const urls = WebpackDevServerUtils.prepareUrls('http', 'localhost', 3000); + +// $ExpectType Compiler +WebpackDevServerUtils.createCompiler(webpack, {}, 'app', urls, true); + +// $ExpectType Configuration +WebpackDevServerUtils.prepareProxy(undefined, 'build'); + +const loaderContext: webpack.loader.LoaderContext = null!; +// $ExpectType string +getCSSModuleLocalIdent(loaderContext, '', '', {}); + +// $ExpectError +getCSSModuleLocalIdent({}, '', '', {}); diff --git a/types/react-dev-utils/tsconfig.json b/types/react-dev-utils/tsconfig.json new file mode 100644 index 0000000000..dc5c861101 --- /dev/null +++ b/types/react-dev-utils/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "checkRequiredFiles.d.ts", + "clearConsole.d.ts", + "eslintFormatter.d.ts", + "FileSizeReporter.d.ts", + "formatWebpackMessages.d.ts", + "getCacheIdentifier.d.ts", + "getCSSModuleLocalIdent.d.ts", + "getProcessForPort.d.ts", + "InlineChunkHtmlPlugin.d.ts", + "InterpolateHtmlPlugin.d.ts", + "launchEditor.d.ts", + "ModuleScopePlugin.d.ts", + "noopServiceWorkerMiddleware.d.ts", + "openBrowser.d.ts", + "printBuildError.d.ts", + "printHostingInstructions.d.ts", + "WatchMissingNodeModulesPlugin.d.ts", + "WebpackDevServerUtils.d.ts", + "test/eslintFormatter.ts", + "test/noopServiceWorkerMiddleware.ts", + "test/utils.ts", + "test/webpack-plugins.ts", + "test/webpack-utils.ts" + ] +} diff --git a/types/react-dev-utils/tslint.json b/types/react-dev-utils/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-dev-utils/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }