| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import {Deprecation} from '../deprecations';
- import {SourceSpan} from './source_span';
- export {SourceLocation} from './source_location';
- export {SourceSpan} from './source_span';
- /**
- * The options passed to {@link Logger.warn}.
- *
- * * `deprecation`: Whether this is a deprecation warning.
- *
- * * `deprecationType`: The type of deprecation. Only set if `deprecation` is
- * true.
- *
- * * `span`: The location in the Sass source code that generated this warning.
- * This may be unset if the warning didn't come from Sass source, for
- * example if it's from a deprecated JavaScript option.
- *
- * * `stack`: The Sass stack trace at the point the warning was issued. This may
- * be unset if the warning didn't come from Sass source, for example if it's
- * from a deprecated JavaScript option.
- *
- * @category Logger
- */
- export type LoggerWarnOptions = (
- | {
- deprecation: true;
- deprecationType: Deprecation;
- }
- | {deprecation: false}
- ) & {
- span?: SourceSpan;
- stack?: string;
- };
- /**
- * An object that can be passed to {@link LegacySharedOptions.logger} to control
- * how Sass emits warnings and debug messages.
- *
- * @example
- *
- * ```js
- * const fs = require('fs');
- * const sass = require('sass');
- *
- * let log = "";
- * sass.renderSync({
- * file: 'input.scss',
- * logger: {
- * warn(message, options) {
- * if (options.span) {
- * log += `${span.url}:${span.start.line}:${span.start.column}: ` +
- * `${message}\n`;
- * } else {
- * log += `::: ${message}\n`;
- * }
- * }
- * }
- * });
- *
- * fs.writeFileSync('log.txt', log);
- * ```
- *
- * @category Logger
- */
- export interface Logger {
- /**
- * This method is called when Sass emits a warning, whether due to a [`@warn`
- * rule](https://sass-lang.com/documentation/at-rules/warn) or a warning
- * generated by the Sass compiler.
- *
- * If this is `undefined`, Sass will print warnings to standard error.
- *
- * `options` may contain the following fields:
- *
- * @param message - The warning message.
- */
- warn?(message: string, options: LoggerWarnOptions): void;
- /**
- * This method is called when Sass emits a debug message due to a [`@debug`
- * rule](https://sass-lang.com/documentation/at-rules/debug).
- *
- * If this is `undefined`, Sass will print debug messages to standard error.
- *
- * @param message - The debug message.
- * @param options.span - The location in the Sass source code that generated this
- * debug message.
- */
- debug?(message: string, options: {span: SourceSpan}): void;
- }
- /**
- * A namespace for built-in {@link Logger}s.
- *
- * @category Logger
- * @compatibility dart: "1.43.0", node: false
- */
- export namespace Logger {
- /**
- * A {@link Logger} that silently ignores all warnings and debug messages.
- *
- * @example
- *
- * ```js
- * const sass = require('sass');
- *
- * const result = sass.renderSync({
- * file: 'input.scss',
- * logger: sass.Logger.silent,
- * });
- * ```
- */
- export const silent: Logger;
- }
|