| import { FilePosition } from './input.js' | |
| declare namespace CssSyntaxError { | |
| /** | |
| * A position that is part of a range. | |
| */ | |
| export interface RangePosition { | |
| /** | |
| * The column number in the input. | |
| */ | |
| column: number | |
| /** | |
| * The line number in the input. | |
| */ | |
| line: number | |
| } | |
| // eslint-disable-next-line @typescript-eslint/no-use-before-define | |
| export { CssSyntaxError_ as default } | |
| } | |
| /** | |
| * The CSS parser throws this error for broken CSS. | |
| * | |
| * Custom parsers can throw this error for broken custom syntax using | |
| * the `Node#error` method. | |
| * | |
| * PostCSS will use the input source map to detect the original error location. | |
| * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, | |
| * PostCSS will show the original position in the Sass file. | |
| * | |
| * If you need the position in the PostCSS input | |
| * (e.g., to debug the previous compiler), use `error.input.file`. | |
| * | |
| * ```js | |
| * // Raising error from plugin | |
| * throw node.error('Unknown variable', { plugin: 'postcss-vars' }) | |
| * ``` | |
| * | |
| * ```js | |
| * // Catching and checking syntax error | |
| * try { | |
| * postcss.parse('a{') | |
| * } catch (error) { | |
| * if (error.name === 'CssSyntaxError') { | |
| * error //=> CssSyntaxError | |
| * } | |
| * } | |
| * ``` | |
| */ | |
| declare class CssSyntaxError_ { | |
| /** | |
| * Source column of the error. | |
| * | |
| * ```js | |
| * error.column //=> 1 | |
| * error.input.column //=> 4 | |
| * ``` | |
| * | |
| * PostCSS will use the input source map to detect the original location. | |
| * If you need the position in the PostCSS input, use `error.input.column`. | |
| */ | |
| column?: number | |
| /** | |
| * Source column of the error's end, exclusive. Provided if the error pertains | |
| * to a range. | |
| * | |
| * ```js | |
| * error.endColumn //=> 1 | |
| * error.input.endColumn //=> 4 | |
| * ``` | |
| * | |
| * PostCSS will use the input source map to detect the original location. | |
| * If you need the position in the PostCSS input, use `error.input.endColumn`. | |
| */ | |
| endColumn?: number | |
| /** | |
| * Source line of the error's end, exclusive. Provided if the error pertains | |
| * to a range. | |
| * | |
| * ```js | |
| * error.endLine //=> 3 | |
| * error.input.endLine //=> 4 | |
| * ``` | |
| * | |
| * PostCSS will use the input source map to detect the original location. | |
| * If you need the position in the PostCSS input, use `error.input.endLine`. | |
| */ | |
| endLine?: number | |
| /** | |
| * Absolute path to the broken file. | |
| * | |
| * ```js | |
| * error.file //=> 'a.sass' | |
| * error.input.file //=> 'a.css' | |
| * ``` | |
| * | |
| * PostCSS will use the input source map to detect the original location. | |
| * If you need the position in the PostCSS input, use `error.input.file`. | |
| */ | |
| file?: string | |
| /** | |
| * Input object with PostCSS internal information | |
| * about input file. If input has source map | |
| * from previous tool, PostCSS will use origin | |
| * (for example, Sass) source. You can use this | |
| * object to get PostCSS input source. | |
| * | |
| * ```js | |
| * error.input.file //=> 'a.css' | |
| * error.file //=> 'a.sass' | |
| * ``` | |
| */ | |
| input?: FilePosition | |
| /** | |
| * Source line of the error. | |
| * | |
| * ```js | |
| * error.line //=> 2 | |
| * error.input.line //=> 4 | |
| * ``` | |
| * | |
| * PostCSS will use the input source map to detect the original location. | |
| * If you need the position in the PostCSS input, use `error.input.line`. | |
| */ | |
| line?: number | |
| /** | |
| * Full error text in the GNU error format | |
| * with plugin, file, line and column. | |
| * | |
| * ```js | |
| * error.message //=> 'a.css:1:1: Unclosed block' | |
| * ``` | |
| */ | |
| message: string | |
| /** | |
| * Always equal to `'CssSyntaxError'`. You should always check error type | |
| * by `error.name === 'CssSyntaxError'` | |
| * instead of `error instanceof CssSyntaxError`, | |
| * because npm could have several PostCSS versions. | |
| * | |
| * ```js | |
| * if (error.name === 'CssSyntaxError') { | |
| * error //=> CssSyntaxError | |
| * } | |
| * ``` | |
| */ | |
| name: 'CssSyntaxError' | |
| /** | |
| * Plugin name, if error came from plugin. | |
| * | |
| * ```js | |
| * error.plugin //=> 'postcss-vars' | |
| * ``` | |
| */ | |
| plugin?: string | |
| /** | |
| * Error message. | |
| * | |
| * ```js | |
| * error.message //=> 'Unclosed block' | |
| * ``` | |
| */ | |
| reason: string | |
| /** | |
| * Source code of the broken file. | |
| * | |
| * ```js | |
| * error.source //=> 'a { b {} }' | |
| * error.input.source //=> 'a b { }' | |
| * ``` | |
| */ | |
| source?: string | |
| stack: string | |
| /** | |
| * Instantiates a CSS syntax error. Can be instantiated for a single position | |
| * or for a range. | |
| * @param message Error message. | |
| * @param lineOrStartPos If for a single position, the line number, or if for | |
| * a range, the inclusive start position of the error. | |
| * @param columnOrEndPos If for a single position, the column number, or if for | |
| * a range, the exclusive end position of the error. | |
| * @param source Source code of the broken file. | |
| * @param file Absolute path to the broken file. | |
| * @param plugin PostCSS plugin name, if error came from plugin. | |
| */ | |
| constructor( | |
| message: string, | |
| lineOrStartPos?: CssSyntaxError.RangePosition | number, | |
| columnOrEndPos?: CssSyntaxError.RangePosition | number, | |
| source?: string, | |
| file?: string, | |
| plugin?: string | |
| ) | |
| /** | |
| * Returns a few lines of CSS source that caused the error. | |
| * | |
| * If the CSS has an input source map without `sourceContent`, | |
| * this method will return an empty string. | |
| * | |
| * ```js | |
| * error.showSourceCode() //=> " 4 | } | |
| * // 5 | a { | |
| * // > 6 | bad | |
| * // | ^ | |
| * // 7 | } | |
| * // 8 | b {" | |
| * ``` | |
| * | |
| * @param color Whether arrow will be colored red by terminal | |
| * color codes. By default, PostCSS will detect | |
| * color support by `process.stdout.isTTY` | |
| * and `process.env.NODE_DISABLE_COLORS`. | |
| * @return Few lines of CSS source that caused the error. | |
| */ | |
| showSourceCode(color?: boolean): string | |
| /** | |
| * Returns error position, message and source code of the broken part. | |
| * | |
| * ```js | |
| * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block | |
| * // > 1 | a { | |
| * // | ^" | |
| * ``` | |
| * | |
| * @return Error position, message and source code. | |
| */ | |
| toString(): string | |
| } | |
| declare class CssSyntaxError extends CssSyntaxError_ {} | |
| export = CssSyntaxError | |