Æsthetic exposes core configuration control via the esthetic.settings() method. The settings method can be used to configure the execution preferences of Æsthetic in Node and Browser environments. Calling the esthetic.settings methods with parameters omitted will return the current setting configurations being used by Æsthetic, plus some additional information such as the version number, environment and current working directory.

Basic Usage

import esthetic from 'esthetic';

  editorConfig: false,
  globalThis: true,
  reportStats: true,
  throwErrors: true,
  persistRules: true,
  logLevel: 2,
  logColors: true,
  resolveConfig: 'package.json'

Read Usage

import esthetic from 'esthetic';

const settings = esthetic.settings();


Available Options

All settings are optional and changes will be persisted, similar to rules. The settings method returns this scope and can be chained. It’s generally recommended that you provide setting customizations before invocation.


Whether or not Æsthetic should inherit and use options defined in .editorconfig files. When an .editorconfig file is detected in your projects root directory, Æsthetic will keep track and use inheritable options.

Default:   false


Whether of not Æsthetic should be made available to global scope when used in Browser environments. This defaults to true resulting in Æsthetic being accessible via window.

Default:   true


Whether or not Æsthetic should track execution statistics. When disabled, Æsthetic will skip reporting on formatting execution timing of beautification / parse operations.

Default:   true


Whether or not Æsthetic should throw exceptions when encountering a parse error. When disabled (false) then errors will fail quietly. Use the esthetic.on('error', (e) => {}) event or check the esthetic.error to take control of parse errors when this is disabled.

Default:   true


Whether or not Æsthetic should persist defined rules. By default, Æsthetic maintains a persisted reference of formatting rules. Setting this to false will result in Æsthetic merging rules with defaults (or preset) each time the esthetic.format(), esthetic.parse() or esthetic.rules() is invoked.

Default:   true


Control the log level when using the CLI. The following levels are available:

  • 1 - Disables logs, only parse errors will show.
  • 2 - Standard logs, this is the default. Operations, errors and warnings.
  • 3 - Detailed logs, various information is printed throughout execution cycles

Default:   2


By default, operations which involve printing to console, as such, errors will apply ansi coloring. Set this to false to prevent highlights being applied.

Default:   true


Use an external configuration approach for defined rules. Æsthetic supports package.json files containing an esthetic key, an .esthetic or .esthetic.json files. You can provide a uri reference to a specific file containing rules.

Default:   package.json