// Type definitions for @babel/generator 7.6 // Project: https://github.com/babel/babel/tree/master/packages/babel-generator, https://babeljs.io // Definitions by: Troy Gerwien // Johnny Estilles // Melvin Groenhoff // Cameron Yan // Lyanbin // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.9 import * as t from '@babel/types'; export interface GeneratorOptions { /** * Optional string to add as a block comment at the start of the output file. */ auxiliaryCommentBefore?: string; /** * Optional string to add as a block comment at the end of the output file. */ auxiliaryCommentAfter?: string; /** * Function that takes a comment (as a string) and returns true if the comment should be included in the output. * By default, comments are included if `opts.comments` is `true` or if `opts.minifed` is `false` and the comment * contains `@preserve` or `@license`. */ shouldPrintComment?(comment: string): boolean; /** * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces). * Defaults to `false`. */ retainLines?: boolean; /** * Retain parens around function expressions (could be used to change engine parsing behavior) * Defaults to `false`. */ retainFunctionParens?: boolean; /** * Should comments be included in output? Defaults to `true`. */ comments?: boolean; /** * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`. */ compact?: boolean | 'auto'; /** * Should the output be minified. Defaults to `false`. */ minified?: boolean; /** * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`. */ concise?: boolean; /** * Used in warning messages */ filename?: string; /** * Enable generating source maps. Defaults to `false`. */ sourceMaps?: boolean; /** * A root for all relative URLs in the source map. */ sourceRoot?: string; /** * The filename for the source code (i.e. the code in the `code` argument). * This will only be used if `code` is a string. */ sourceFileName?: string; /** * Set to true to run jsesc with "json": true to print "\u00A9" vs. "©"; */ jsonCompatibleStrings?: boolean; /** * Set to true to enable support for experimental decorators syntax before module exports. * Defaults to `false`. */ decoratorsBeforeExport?: boolean; /** * Options for outputting jsesc representation. */ jsescOption?: { /** * The default value for the quotes option is 'single'. This means that any occurrences of ' in the input * string are escaped as \', so that the output can be used in a string literal wrapped in single quotes. */ quotes?: 'single' | 'double' | 'backtick'; /** * The default value for the numbers option is 'decimal'. This means that any numeric values are represented * using decimal integer literals. Other valid options are binary, octal, and hexadecimal, which result in * binary integer literals, octal integer literals, and hexadecimal integer literals, respectively. */ numbers?: 'binary' | 'octal' | 'decimal' | 'hexadecimal'; /** * The wrap option takes a boolean value (true or false), and defaults to false (disabled). When enabled, the * output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through * the quotes setting. */ wrap?: boolean; /** * The es6 option takes a boolean value (true or false), and defaults to false (disabled). When enabled, any * astral Unicode symbols in the input are escaped using ECMAScript 6 Unicode code point escape sequences * instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 * environments is a concern, don’t enable this setting. If the json setting is enabled, the value for the es6 * setting is ignored (as if it was false). */ es6?: boolean; /** * The escapeEverything option takes a boolean value (true or false), and defaults to false (disabled). When * enabled, all the symbols in the output are escaped — even printable ASCII symbols. */ escapeEverything?: boolean; /** * The minimal option takes a boolean value (true or false), and defaults to false (disabled). When enabled, * only a limited set of symbols in the output are escaped: \0, \b, \t, \n, \f, \r, \\, \u2028, \u2029. */ minimal?: boolean; /** * The isScriptContext option takes a boolean value (true or false), and defaults to false (disabled). When * enabled, occurrences of or