| import { Omit } from "ast-types/types"; |
| /** |
| * All Recast API functions take second parameter with configuration options, |
| * documented in options.js |
| */ |
| export interface Options extends DeprecatedOptions { |
| /** |
| * If you want to use a different branch of esprima, or any other module |
| * that supports a .parse function, pass that module object to |
| * recast.parse as options.parser (legacy synonym: options.esprima). |
| * @default require("recast/parsers/esprima") |
| */ |
| parser?: any; |
| /** |
| * Number of spaces the pretty-printer should use per tab for |
| * indentation. If you do not pass this option explicitly, it will be |
| * (quite reliably!) inferred from the original code. |
| * @default 4 |
| */ |
| tabWidth?: number; |
| /** |
| * If you really want the pretty-printer to use tabs instead of spaces, |
| * make this option true. |
| * @default false |
| */ |
| useTabs?: boolean; |
| /** |
| * The reprinting code leaves leading whitespace untouched unless it has |
| * to reindent a line, or you pass false for this option. |
| * @default true |
| */ |
| reuseWhitespace?: boolean; |
| /** |
| * Override this option to use a different line terminator, e.g. \r\n. |
| * @default require("os").EOL || "\n" |
| */ |
| lineTerminator?: string; |
| /** |
| * Some of the pretty-printer code (such as that for printing function |
| * parameter lists) makes a valiant attempt to prevent really long |
| * lines. You can adjust the limit by changing this option; however, |
| * there is no guarantee that line length will fit inside this limit. |
| * @default 74 |
| */ |
| wrapColumn?: number; |
| /** |
| * Pass a string as options.sourceFileName to recast.parse to tell the |
| * reprinter to keep track of reused code so that it can construct a |
| * source map automatically. |
| * @default null |
| */ |
| sourceFileName?: string | null; |
| /** |
| * Pass a string as options.sourceMapName to recast.print, and (provided |
| * you passed options.sourceFileName earlier) the PrintResult of |
| * recast.print will have a .map property for the generated source map. |
| * @default null |
| */ |
| sourceMapName?: string | null; |
| /** |
| * If provided, this option will be passed along to the source map |
| * generator as a root directory for relative source file paths. |
| * @default null |
| */ |
| sourceRoot?: string | null; |
| /** |
| * If you provide a source map that was generated from a previous call |
| * to recast.print as options.inputSourceMap, the old source map will be |
| * composed with the new source map. |
| * @default null |
| */ |
| inputSourceMap?: string | null; |
| /** |
| * If you want esprima to generate .range information (recast only uses |
| * .loc internally), pass true for this option. |
| * @default false |
| */ |
| range?: boolean; |
| /** |
| * If you want esprima not to throw exceptions when it encounters |
| * non-fatal errors, keep this option true. |
| * @default true |
| */ |
| tolerant?: boolean; |
| /** |
| * If you want to override the quotes used in string literals, specify |
| * either "single", "double", or "auto" here ("auto" will select the one |
| * which results in the shorter literal) Otherwise, use double quotes. |
| * @default null |
| */ |
| quote?: "single" | "double" | "auto" | null; |
| /** |
| * Controls the printing of trailing commas in object literals, array |
| * expressions and function parameters. |
| * |
| * This option could either be: |
| * * Boolean - enable/disable in all contexts (objects, arrays and function params). |
| * * Object - enable/disable per context. |
| * |
| * Example: |
| * trailingComma: { |
| * objects: true, |
| * arrays: true, |
| * parameters: false, |
| * } |
| * |
| * @default false |
| */ |
| trailingComma?: boolean; |
| /** |
| * Controls the printing of spaces inside array brackets. |
| * See: http://eslint.org/docs/rules/array-bracket-spacing |
| * @default false |
| */ |
| arrayBracketSpacing?: boolean; |
| /** |
| * Controls the printing of spaces inside object literals, |
| * destructuring assignments, and import/export specifiers. |
| * See: http://eslint.org/docs/rules/object-curly-spacing |
| * @default true |
| */ |
| objectCurlySpacing?: boolean; |
| /** |
| * If you want parenthesis to wrap single-argument arrow function |
| * parameter lists, pass true for this option. |
| * @default false |
| */ |
| arrowParensAlways?: boolean; |
| /** |
| * There are 2 supported syntaxes (`,` and `;`) in Flow Object Types; |
| * The use of commas is in line with the more popular style and matches |
| * how objects are defined in JS, making it a bit more natural to write. |
| * @default true |
| */ |
| flowObjectCommas?: boolean; |
| /** |
| * Whether to return an array of .tokens on the root AST node. |
| * @default true |
| */ |
| tokens?: boolean; |
| } |
| interface DeprecatedOptions { |
| /** @deprecated */ |
| esprima?: any; |
| } |
| export declare type NormalizedOptions = Required<Omit<Options, keyof DeprecatedOptions>>; |
| export declare function normalize(opts?: Options): NormalizedOptions; |
| export {}; |