123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- 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 {};
|