Add flow declarations for `babel-core`
Reviewed By: zertosh Differential Revision: D4166844 fbshipit-source-id: 5ee67b6629179c195dcdeacf87121a3fcd75a738
This commit is contained in:
parent
00b688b0d3
commit
77401b15e0
|
@ -0,0 +1,103 @@
|
|||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// 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,
|
||||
};
|
||||
|
||||
// based on https://babeljs.io/docs/usage/options/ -- 2016-11-11
|
||||
type _TransformOptions = {
|
||||
filename?: string,
|
||||
filenameRelative?: string,
|
||||
presets?: Array<string | Object>,
|
||||
plugins?: Array<string | Object>,
|
||||
parserOpts?: BabylonOptions,
|
||||
generatorOpts?: GeneratorOptions,
|
||||
highlightCode?: boolean,
|
||||
only?: string | RegExp | Array<string | RegExp>,
|
||||
ignore?: string | RegExp | Array<string | RegExp>,
|
||||
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}};
|
||||
type TransformResult = {};
|
||||
type VisitFn = <State>(path: Object, state: State) => any;
|
||||
|
||||
declare module 'babel-core' {
|
||||
declare function transform(
|
||||
code: string,
|
||||
options?: TransformOptions,
|
||||
): TransformResult;
|
||||
declare function traverse<State>(
|
||||
ast: Object,
|
||||
visitor: {[key: string]: VisitFn<State> |
|
||||
{enter?: VisitFn<State>, exit?: VisitFn<State>}},
|
||||
scope?: ?Object,
|
||||
state?: State,
|
||||
parentPath?: ?Object,
|
||||
): void;
|
||||
declare var types: {[key: string]: Function};
|
||||
}
|
||||
|
||||
declare module 'babel-generator' {
|
||||
declare function exports(
|
||||
ast: Object,
|
||||
options?: GeneratorOptions,
|
||||
): {ast: Object, code: string, map: Object};
|
||||
}
|
Loading…
Reference in New Issue