diff --git a/flow-typed/babel.js.flow b/flow-typed/babel.js.flow new file mode 100644 index 00000000..5e0f1dea --- /dev/null +++ b/flow-typed/babel.js.flow @@ -0,0 +1,139 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +type _SourceMap = { + file?: string, + mappings: string, + names: Array, + sourceRoot?: string, + sources: Array, + sourcesContent?: Array, + version: number, +}; + +// based on babylon v6.13.1 +type BabylonOptions = { + allowImportExportEverywhere?: boolean, + allowReturnOutsideFunction?: boolean, + allowSuperOutsideMethod?: boolean, + sourceType?: 'script' | 'module', + sourceFilename?: 'string', + plugins?: Array< + 'jsx' | 'flow' | 'doExpressions' | 'objectRestSpread' | 'decorators' | + 'classProperties' | 'exportExtensions' | 'asyncGenerators' | + 'functionBind' | 'functionSent' | 'dynamicImport' + >, +}; + +// based on babel-generator v6.18.0 +type GeneratorOptions = { + auxiliaryCommentBefore?: string, + auxiliaryCommentAfter?: string, + shouldPrintComment?: (comment: string) => boolean, + retainLines?: boolean, + retainFunctionParens?: boolean, + comments?: boolean, + compact?: boolean | 'auto', + minified?: boolean, + concise?: boolean, + quotes?: 'single' | 'double', + filename?: string, + sourceMaps?: boolean, + sourceMapTarget?: string, + sourceRoot?: string, + sourceFileName?: string, +}; + +type InlinePlugin = string | {} | () => {}; +type _Plugins = Array; + +// based on https://babeljs.io/docs/usage/options/ -- 2016-11-11 +type __TransformOptions = { + filename?: string, + filenameRelative?: string, + presets?: Array, + plugins?: _Plugins, + parserOpts?: BabylonOptions, + generatorOpts?: GeneratorOptions, + highlightCode?: boolean, + only?: string | RegExp | Array, + ignore?: string | RegExp | Array, + auxiliaryCommentBefore?: boolean, + auxiliaryCommentAfter?: boolean, + sourceMaps?: boolean, + inputSourceMap?: ?Object, + sourceMapTarget?: string, + sourceFileName?: string, + sourceRoot?: string, + moduleRoot?: string, + moduleIds?: boolean, + moduleId?: string, + getModuleId?: (moduleName: string) => string, + resolveModuleSource?: (source: string, filename: string) => string, + code?: boolean, + babelrc?: boolean, + ast?: boolean, + compact?: boolean | 'auto', + minified?: boolean, + comments?: boolean, + shouldPrintComment?: (comment: string) => boolean, + retainLines?: boolean, + extends?: string, +}; + +type _TransformOptions = + __TransformOptions & {env?: {[key: string]: __TransformOptions}}; +declare class _Ast {} +type TransformResult = { + ast: _Ast, + code: ?string, + ignored: boolean, + map: ?_SourceMap, +}; +type VisitFn = (path: Object, state: State) => any; + +declare module 'babel-core' { + declare type Plugins = _Plugins; + declare type SourceMap = _SourceMap; + declare type Ast = _Ast; + declare type TransformOptions = _TransformOptions; + declare function transform( + code: string, + options?: _TransformOptions, + ): TransformResult; + declare function traverse( + ast: _Ast, + visitor: {[key: string]: VisitFn | + {enter?: VisitFn, exit?: VisitFn}}, + scope?: ?Object, + state?: State, + parentPath?: ?Object, + ): void; + declare var types: {[key: string]: Function}; + declare function transformFromAst( + ast: _Ast, + code?: ?string, + babelOptions?: _TransformOptions, + ): TransformResult; +} + +type RawMapping = { + generated: {column: number, line: number}, + name?: string, + original?: {column: number, line: number}, + source?: string, +}; + +declare module 'babel-generator' { + declare type RawMapping = RawMapping; + declare function exports( + ast: _Ast, + options?: GeneratorOptions, + ): TransformResult & {rawMappings: ?Array}; +} diff --git a/flow-typed/uglify.js b/flow-typed/uglify.js new file mode 100644 index 00000000..29a3e85a --- /dev/null +++ b/flow-typed/uglify.js @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +'use strict'; + +type _SourceMap = { + file?: string, + mappings: string, + names: Array, + sourceRoot?: string, + sources: Array, + sourcesContent?: Array, + version: number, +}; + +type _Result = { + code: string, + map: MapT, +}; + +type _Options = { + compress?: false | {||}, + fromString?: boolean, + inSourceMap?: string | ?_SourceMap, + mangle?: boolean | {| + except?: Array, + toplevel?: boolean, + eval?: boolean, + keep_fnames?: boolean, + |}, + mangleProperties?: boolean | {| + regex?: RegExp, + ignore_quoted?: boolean, + debug?: false | string, + |}, + outFileName?: string, + output?: {| + ascii_only?: boolean, + screw_ie8?: boolean, + |}, + parse?: {| + strict?: boolean, + bare_returns?: boolean, + filename?: string, + |}, + sourceMapUrl?: string, + sourceRoot?: string, + warnings?: boolean, +}; + +type _Input = + | string // code or file name + | Array // array of file names + | {[filename: string]: string}; // file names and corresponding code + +declare module 'uglify-js' { + declare function minify( + fileOrFilesOrCode: _Input, + options?: _Options & {outSourceMap?: ?false | ''}, + ): _Result; + declare function minify( + fileOrFilesOrCode: _Input, + options?: _Options & {outSourceMap: true | string}, + ): _Result; +}