Skip to content

Configuration options for the Oxfmt.

Most options are the same as Prettier's options, but not all of them. In addition, some options are our own extensions.

arrowParens

tipo: "always" | "avoid"

Include parentheses around a sole arrow function parameter.

  • Default: "always"

bracketSameLine

tipo: boolean

Put the > of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line, instead of being alone on the next line (does not apply to self closing elements).

  • Default: false

bracketSpacing

tipo: boolean

Print spaces between brackets in object literals.

  • Default: true

embeddedLanguageFormatting

tipo: "auto" | "off"

Control whether to format embedded parts (For example, CSS-in-JS, or JS-in-Vue, etc.) in the file.

NOTE: XXX-in-JS support is incomplete.

  • Default: "auto"

endOfLine

tipo: "lf" | "crlf" | "cr"

Which end of line characters to apply.

NOTE: "auto" is not supported.

  • Default: "lf"
  • Overrides .editorconfig.end_of_line

htmlWhitespaceSensitivity

tipo: "css" | "strict" | "ignore"

Specify the global whitespace sensitivity for HTML, Vue, Angular, and Handlebars.

  • Default: "css"

ignorePatterns

tipo: string[]

Ignore files matching these glob patterns. Patterns are based on the location of the Oxfmt configuration file.

  • Default: []

insertFinalNewline

tipo: boolean

Whether to insert a final newline at the end of the file.

  • Default: true
  • Overrides .editorconfig.insert_final_newline

jsdoc

tipo: object | boolean

Enable JSDoc comment formatting.

When enabled, JSDoc comments are normalized and reformatted: tag aliases are canonicalized, descriptions are capitalized, long lines are wrapped, and short comments are collapsed to single-line.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled

jsdoc.addDefaultToDescription

tipo: boolean

Append default values to @param descriptions (e.g. "Default is value").

  • Default: true

jsdoc.bracketSpacing

tipo: boolean

Add spaces inside JSDoc type braces: {string}{ string }.

  • Default: false

jsdoc.capitalizeDescriptions

tipo: boolean

Capitalize the first letter of tag descriptions.

  • Default: true

jsdoc.commentLineStrategy

tipo: string

How to format comment blocks.

  • "singleLine" — Convert to single-line /** content */ when possible.

  • "multiline" — Always use multi-line format.

  • "keep" — Preserve original formatting.

  • Default: "singleLine"

jsdoc.descriptionTag

tipo: boolean

Emit @description tag instead of inline description.

  • Default: false

jsdoc.descriptionWithDot

tipo: boolean

Add a trailing dot to the end of descriptions.

  • Default: false

jsdoc.keepUnparsableExampleIndent

tipo: boolean

Preserve indentation in unparsable @example code.

  • Default: false

jsdoc.lineWrappingStyle

tipo: string

Strategy for wrapping description lines at print width.

  • "greedy" — Always re-wrap text to fit within print width.

  • "balance" — Preserve original line breaks if all lines fit within print width.

  • Default: "greedy"

jsdoc.preferCodeFences

tipo: boolean

Use fenced code blocks (```) instead of 4-space indentation for code without a language tag.

  • Default: false

jsdoc.separateReturnsFromParam

tipo: boolean

Add a blank line between the last @param and @returns.

  • Default: false

jsdoc.separateTagGroups

tipo: boolean

Add blank lines between different tag groups (e.g. between @param and @returns).

  • Default: false

jsxSingleQuote

tipo: boolean

Use single quotes instead of double quotes in JSX.

  • Default: false

objectWrap

tipo: "preserve" | "collapse"

How to wrap object literals when they could fit on one line or span multiple lines.

By default, formats objects as multi-line if there is a newline prior to the first property. Authors can use this heuristic to contextually improve readability, though it has some downsides.

  • Default: "preserve"

overrides

tipo: array

File-specific overrides. When a file matches multiple overrides, the later override takes precedence (array order matters).

  • Default: []

overrides[n]

tipo: object

overrides[n].excludeFiles

tipo: string[]

Glob patterns to exclude from this override.

overrides[n].files

tipo: string[]

Glob patterns to match files for this override. All patterns are relative to the Oxfmt configuration file.

overrides[n].options

tipo: object

overrides[n].options.arrowParens

tipo: "always" | "avoid"

Include parentheses around a sole arrow function parameter.

  • Default: "always"
overrides[n].options.bracketSameLine

tipo: boolean

Put the > of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line, instead of being alone on the next line (does not apply to self closing elements).

  • Default: false
overrides[n].options.bracketSpacing

tipo: boolean

Print spaces between brackets in object literals.

  • Default: true
overrides[n].options.embeddedLanguageFormatting

tipo: "auto" | "off"

Control whether to format embedded parts (For example, CSS-in-JS, or JS-in-Vue, etc.) in the file.

NOTE: XXX-in-JS support is incomplete.

  • Default: "auto"
overrides[n].options.endOfLine

tipo: "lf" | "crlf" | "cr"

Which end of line characters to apply.

NOTE: "auto" is not supported.

  • Default: "lf"
  • Overrides .editorconfig.end_of_line
overrides[n].options.htmlWhitespaceSensitivity

tipo: "css" | "strict" | "ignore"

Specify the global whitespace sensitivity for HTML, Vue, Angular, and Handlebars.

  • Default: "css"
overrides[n].options.insertFinalNewline

tipo: boolean

Whether to insert a final newline at the end of the file.

  • Default: true
  • Overrides .editorconfig.insert_final_newline
overrides[n].options.jsdoc

tipo: object | boolean

Enable JSDoc comment formatting.

When enabled, JSDoc comments are normalized and reformatted: tag aliases are canonicalized, descriptions are capitalized, long lines are wrapped, and short comments are collapsed to single-line.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled
overrides[n].options.jsdoc.addDefaultToDescription

tipo: boolean

Append default values to @param descriptions (e.g. "Default is value").

  • Default: true
overrides[n].options.jsdoc.bracketSpacing

tipo: boolean

Add spaces inside JSDoc type braces: {string}{ string }.

  • Default: false
overrides[n].options.jsdoc.capitalizeDescriptions

tipo: boolean

Capitalize the first letter of tag descriptions.

  • Default: true
overrides[n].options.jsdoc.commentLineStrategy

tipo: string

How to format comment blocks.

  • "singleLine" — Convert to single-line /** content */ when possible.

  • "multiline" — Always use multi-line format.

  • "keep" — Preserve original formatting.

  • Default: "singleLine"

overrides[n].options.jsdoc.descriptionTag

tipo: boolean

Emit @description tag instead of inline description.

  • Default: false
overrides[n].options.jsdoc.descriptionWithDot

tipo: boolean

Add a trailing dot to the end of descriptions.

  • Default: false
overrides[n].options.jsdoc.keepUnparsableExampleIndent

tipo: boolean

Preserve indentation in unparsable @example code.

  • Default: false
overrides[n].options.jsdoc.lineWrappingStyle

tipo: string

Strategy for wrapping description lines at print width.

  • "greedy" — Always re-wrap text to fit within print width.

  • "balance" — Preserve original line breaks if all lines fit within print width.

  • Default: "greedy"

overrides[n].options.jsdoc.preferCodeFences

tipo: boolean

Use fenced code blocks (```) instead of 4-space indentation for code without a language tag.

  • Default: false
overrides[n].options.jsdoc.separateReturnsFromParam

tipo: boolean

Add a blank line between the last @param and @returns.

  • Default: false
overrides[n].options.jsdoc.separateTagGroups

tipo: boolean

Add blank lines between different tag groups (e.g. between @param and @returns).

  • Default: false
overrides[n].options.jsxSingleQuote

tipo: boolean

Use single quotes instead of double quotes in JSX.

  • Default: false
overrides[n].options.objectWrap

tipo: "preserve" | "collapse"

How to wrap object literals when they could fit on one line or span multiple lines.

By default, formats objects as multi-line if there is a newline prior to the first property. Authors can use this heuristic to contextually improve readability, though it has some downsides.

  • Default: "preserve"
overrides[n].options.printWidth

tipo: integer

Specify the line length that the printer will wrap on.

If you don't want line wrapping when formatting Markdown, you can set the proseWrap option to disable it.

  • Default: 100
  • Overrides .editorconfig.max_line_length
overrides[n].options.proseWrap

tipo: "always" | "never" | "preserve"

How to wrap prose.

By default, formatter will not change wrapping in markdown text since some services use a linebreak-sensitive renderer, e.g. GitHub comments and BitBucket. To wrap prose to the print width, change this option to "always". If you want to force all prose blocks to be on a single line and rely on editor/viewer soft wrapping instead, you can use "never".

  • Default: "preserve"
overrides[n].options.quoteProps

tipo: "as-needed" | "consistent" | "preserve"

Change when properties in objects are quoted.

  • Default: "as-needed"
overrides[n].options.semi

tipo: boolean

Print semicolons at the ends of statements.

  • Default: true
overrides[n].options.singleAttributePerLine

tipo: boolean

Impone single attribute per line in HTML, Vue, and JSX.

  • Default: false
overrides[n].options.singleQuote

tipo: boolean

Use single quotes instead of double quotes.

For JSX, you can set the jsxSingleQuote option.

  • Default: false
  • Overrides .editorconfig.quote_type
overrides[n].options.sortImports

tipo: object | boolean

Sort import statements.

Using the similar algorithm as eslint-plugin-perfectionist/sort-imports. For details, see each field's documentation.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled
overrides[n].options.sortImports.customGroups

tipo: array

Define your own groups for matching very specific imports.

The customGroups list is ordered: The first definition that matches an element will be used. Custom groups have a higher priority than any predefined group.

If you want a predefined group to take precedence over a custom group, you must write a custom group definition that does the same as what the predefined group does, and put it first in the list.

If you specify multiple conditions like elementNamePattern, selector, and modifiers, all conditions must be met for an import to match the custom group (AND logic).

  • Default: []

####### overrides[n].options.sortImports.customGroups[n]

tipo: object

######## overrides[n].options.sortImports.customGroups[n].elementNamePattern

tipo: string[]

predeterminado: []

List of glob patterns to match import sources for this group.

######## overrides[n].options.sortImports.customGroups[n].groupName

tipo: string

predeterminado: ""

Name of the custom group, used in the groups option.

######## overrides[n].options.sortImports.customGroups[n].modifiers

tipo: string[]

Modifiers to match the import characteristics. All specified modifiers must be present (AND logic).

Possible values: "side_effect", "type", "value", "default", "wildcard", "named"

######## overrides[n].options.sortImports.customGroups[n].selector

tipo: string

Selector to match the import kind.

Possible values: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

overrides[n].options.sortImports.groups

tipo: array

Specifies a list of predefined import groups for sorting.

Each import will be assigned a single group specified in the groups option (or the unknown group if no match is found). The order of items in the groups option determines how groups are ordered.

Within a given group, members will be sorted according to the type, order, ignoreCase, etc. options.

Individual groups can be combined together by placing them in an array. The order of groups in that array does not matter. All members of the groups in the array will be sorted together as if they were part of a single group.

Predefined groups are characterized by a single selector and potentially multiple modifiers. You may enter modifiers in any order, but the selector must always come at the end.

The list of selectors is sorted from most to least important:

  • type — TypeScript type imports.
  • side_effect_style — Side effect style imports.
  • side_effect — Side effect imports.
  • style — Style imports.
  • index — Main file from the current directory.
  • sibling — Modules from the same directory.
  • parent — Modules from the parent directory.
  • subpath — Node.js subpath imports.
  • internal — Your internal modules.
  • builtin — Node.js Built-in Modules.
  • external — External modules installed in the project.
  • import — Any import.

The list of modifiers is sorted from most to least important:

  • side_effect — Side effect imports.

  • type — TypeScript type imports.

  • value — Value imports.

  • default — Imports containing the default specifier.

  • wildcard — Imports containing the wildcard (* as) specifier.

  • named — Imports containing at least one named specifier.

  • Default: See below

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]
``````js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
``````js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
``````json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]
``````js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
``````js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";

Configuration options for the Oxfmt.

Most options are the same as Prettier's options, but not all of them. In addition, some options are our own extensions.

arrowParens

tipo: "always" | "avoid"

Include parentheses around a sole arrow function parameter.

  • Default: "always"

bracketSameLine

tipo: boolean

Put the > of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line, instead of being alone on the next line (does not apply to self closing elements).

  • Default: false

bracketSpacing

tipo: boolean

Print spaces between brackets in object literals.

  • Default: true

embeddedLanguageFormatting

tipo: "auto" | "off"

Control whether to format embedded parts (For example, CSS-in-JS, or JS-in-Vue, etc.) in the file.

NOTE: XXX-in-JS support is incomplete.

  • Default: "auto"

endOfLine

tipo: "lf" | "crlf" | "cr"

Which end of line characters to apply.

NOTE: "auto" is not supported.

  • Default: "lf"
  • Overrides .editorconfig.end_of_line

htmlWhitespaceSensitivity

tipo: "css" | "strict" | "ignore"

Specify the global whitespace sensitivity for HTML, Vue, Angular, and Handlebars.

  • Default: "css"

ignorePatterns

tipo: string[]

Ignore files matching these glob patterns. Patterns are based on the location of the Oxfmt configuration file.

  • Default: []

insertFinalNewline

tipo: boolean

Whether to insert a final newline at the end of the file.

  • Default: true
  • Overrides .editorconfig.insert_final_newline

jsdoc

tipo: object | boolean

Enable JSDoc comment formatting.

When enabled, JSDoc comments are normalized and reformatted: tag aliases are canonicalized, descriptions are capitalized, long lines are wrapped, and short comments are collapsed to single-line.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled

jsdoc.addDefaultToDescription

tipo: boolean

Append default values to @param descriptions (e.g. "Default is value").

  • Default: true

jsdoc.bracketSpacing

tipo: boolean

Add spaces inside JSDoc type braces: {string}{ string }.

  • Default: false

jsdoc.capitalizeDescriptions

tipo: boolean

Capitalize the first letter of tag descriptions.

  • Default: true

jsdoc.commentLineStrategy

tipo: string

How to format comment blocks.

  • "singleLine" — Convert to single-line /** content */ when possible.

  • "multiline" — Always use multi-line format.

  • "keep" — Preserve original formatting.

  • Default: "singleLine"

jsdoc.descriptionTag

tipo: boolean

Emit @description tag instead of inline description.

  • Default: false

jsdoc.descriptionWithDot

tipo: boolean

Add a trailing dot to the end of descriptions.

  • Default: false

jsdoc.keepUnparsableExampleIndent

tipo: boolean

Preserve indentation in unparsable @example code.

  • Default: false

jsdoc.lineWrappingStyle

tipo: string

Strategy for wrapping description lines at print width.

  • "greedy" — Always re-wrap text to fit within print width.

  • "balance" — Preserve original line breaks if all lines fit within print width.

  • Default: "greedy"

jsdoc.preferCodeFences

tipo: boolean

Use fenced code blocks (```) instead of 4-space indentation for code without a language tag.

  • Default: false

jsdoc.separateReturnsFromParam

tipo: boolean

Add a blank line between the last @param and @returns.

  • Default: false

jsdoc.separateTagGroups

tipo: boolean

Add blank lines between different tag groups (e.g. between @param and @returns).

  • Default: false

jsxSingleQuote

tipo: boolean

Use single quotes instead of double quotes in JSX.

  • Default: false

objectWrap

tipo: "preserve" | "collapse"

How to wrap object literals when they could fit on one line or span multiple lines.

By default, formats objects as multi-line if there is a newline prior to the first property. Authors can use this heuristic to contextually improve readability, though it has some downsides.

  • Default: "preserve"

overrides

tipo: array

File-specific overrides. When a file matches multiple overrides, the later override takes precedence (array order matters).

  • Default: []

overrides[n]

tipo: object

overrides[n].excludeFiles

tipo: string[]

Glob patterns to exclude from this override.

overrides[n].files

tipo: string[]

Glob patterns to match files for this override. All patterns are relative to the Oxfmt configuration file.

overrides[n].options

tipo: object

overrides[n].options.arrowParens

tipo: "always" | "avoid"

Include parentheses around a sole arrow function parameter.

  • Default: "always"
overrides[n].options.bracketSameLine

tipo: boolean

Put the > of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line, instead of being alone on the next line (does not apply to self closing elements).

  • Default: false
overrides[n].options.bracketSpacing

tipo: boolean

Print spaces between brackets in object literals.

  • Default: true
overrides[n].options.embeddedLanguageFormatting

tipo: "auto" | "off"

Control whether to format embedded parts (For example, CSS-in-JS, or JS-in-Vue, etc.) in the file.

NOTE: XXX-in-JS support is incomplete.

  • Default: "auto"
overrides[n].options.endOfLine

tipo: "lf" | "crlf" | "cr"

Which end of line characters to apply.

NOTE: "auto" is not supported.

  • Default: "lf"
  • Overrides .editorconfig.end_of_line
overrides[n].options.htmlWhitespaceSensitivity

tipo: "css" | "strict" | "ignore"

Specify the global whitespace sensitivity for HTML, Vue, Angular, and Handlebars.

  • Default: "css"
overrides[n].options.insertFinalNewline

tipo: boolean

Whether to insert a final newline at the end of the file.

  • Default: true
  • Overrides .editorconfig.insert_final_newline
overrides[n].options.jsdoc

tipo: object | boolean

Enable JSDoc comment formatting.

When enabled, JSDoc comments are normalized and reformatted: tag aliases are canonicalized, descriptions are capitalized, long lines are wrapped, and short comments are collapsed to single-line.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled
overrides[n].options.jsdoc.addDefaultToDescription

tipo: boolean

Append default values to @param descriptions (e.g. "Default is value").

  • Default: true
overrides[n].options.jsdoc.bracketSpacing

tipo: boolean

Add spaces inside JSDoc type braces: {string}{ string }.

  • Default: false
overrides[n].options.jsdoc.capitalizeDescriptions

tipo: boolean

Capitalize the first letter of tag descriptions.

  • Default: true
overrides[n].options.jsdoc.commentLineStrategy

tipo: string

How to format comment blocks.

  • "singleLine" — Convert to single-line /** content */ when possible.

  • "multiline" — Always use multi-line format.

  • "keep" — Preserve original formatting.

  • Default: "singleLine"

overrides[n].options.jsdoc.descriptionTag

tipo: boolean

Emit @description tag instead of inline description.

  • Default: false
overrides[n].options.jsdoc.descriptionWithDot

tipo: boolean

Add a trailing dot to the end of descriptions.

  • Default: false
overrides[n].options.jsdoc.keepUnparsableExampleIndent

tipo: boolean

Preserve indentation in unparsable @example code.

  • Default: false
overrides[n].options.jsdoc.lineWrappingStyle

tipo: string

Strategy for wrapping description lines at print width.

  • "greedy" — Always re-wrap text to fit within print width.

  • "balance" — Preserve original line breaks if all lines fit within print width.

  • Default: "greedy"

overrides[n].options.jsdoc.preferCodeFences

tipo: boolean

Use fenced code blocks (```) instead of 4-space indentation for code without a language tag.

  • Default: false
overrides[n].options.jsdoc.separateReturnsFromParam

tipo: boolean

Add a blank line between the last @param and @returns.

  • Default: false
overrides[n].options.jsdoc.separateTagGroups

tipo: boolean

Add blank lines between different tag groups (e.g. between @param and @returns).

  • Default: false
overrides[n].options.jsxSingleQuote

tipo: boolean

Use single quotes instead of double quotes in JSX.

  • Default: false
overrides[n].options.objectWrap

tipo: "preserve" | "collapse"

How to wrap object literals when they could fit on one line or span multiple lines.

By default, formats objects as multi-line if there is a newline prior to the first property. Authors can use this heuristic to contextually improve readability, though it has some downsides.

  • Default: "preserve"
overrides[n].options.printWidth

tipo: integer

Specify the line length that the printer will wrap on.

If you don't want line wrapping when formatting Markdown, you can set the proseWrap option to disable it.

  • Default: 100
  • Overrides .editorconfig.max_line_length
overrides[n].options.proseWrap

tipo: "always" | "never" | "preserve"

How to wrap prose.

By default, formatter will not change wrapping in markdown text since some services use a linebreak-sensitive renderer, e.g. GitHub comments and BitBucket. To wrap prose to the print width, change this option to "always". If you want to force all prose blocks to be on a single line and rely on editor/viewer soft wrapping instead, you can use "never".

  • Default: "preserve"
overrides[n].options.quoteProps

tipo: "as-needed" | "consistent" | "preserve"

Change when properties in objects are quoted.

  • Default: "as-needed"
overrides[n].options.semi

tipo: boolean

Print semicolons at the ends of statements.

  • Default: true
overrides[n].options.singleAttributePerLine

tipo: boolean

Impone single attribute per line in HTML, Vue, and JSX.

  • Default: false
overrides[n].options.singleQuote

tipo: boolean

Use single quotes instead of double quotes.

For JSX, you can set the jsxSingleQuote option.

  • Default: false
  • Overrides .editorconfig.quote_type
overrides[n].options.sortImports

tipo: object | boolean

Sort import statements.

Using the similar algorithm as eslint-plugin-perfectionist/sort-imports. For details, see each field's documentation.

Pass true or an object to enable with defaults, or omit/set false to disable.

  • Default: Disabled
overrides[n].options.sortImports.customGroups

tipo: array

Define your own groups for matching very specific imports.

The customGroups list is ordered: The first definition that matches an element will be used. Custom groups have a higher priority than any predefined group.

If you want a predefined group to take precedence over a custom group, you must write a custom group definition that does the same as what the predefined group does, and put it first in the list.

If you specify multiple conditions like elementNamePattern, selector, and modifiers, all conditions must be met for an import to match the custom group (AND logic).

  • Default: []

####### overrides[n].options.sortImports.customGroups[n]

tipo: object

######## overrides[n].options.sortImports.customGroups[n].elementNamePattern

tipo: string[]

predeterminado: []

List of glob patterns to match import sources for this group.

######## overrides[n].options.sortImports.customGroups[n].groupName

tipo: string

predeterminado: ""

Name of the custom group, used in the groups option.

######## overrides[n].options.sortImports.customGroups[n].modifiers

tipo: string[]

Modifiers to match the import characteristics. All specified modifiers must be present (AND logic).

Possible values: "side_effect", "type", "value", "default", "wildcard", "named"

######## overrides[n].options.sortImports.customGroups[n].selector

tipo: string

Selector to match the import kind.

Possible values: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

overrides[n].options.sortImports.groups

tipo: array

Specifies a list of predefined import groups for sorting.

Each import will be assigned a single group specified in the groups option (or the unknown group if no match is found). The order of items in the groups option determines how groups are ordered.

Within a given group, members will be sorted according to the type, order, ignoreCase, etc. options.

Individual groups can be combined together by placing them in an array. The order of groups in that array does not matter. All members of the groups in the array will be sorted together as if they were part of a single group.

Predefined groups are characterized by a single selector and potentially multiple modifiers. You may enter modifiers in any order, but the selector must always come at the end.

The list of selectors is sorted from most to least important:

  • type — TypeScript type imports.
  • side_effect_style — Side effect style imports.
  • side_effect — Side effect imports.
  • style — Style imports.
  • index — Main file from the current directory.
  • sibling — Modules from the same directory.
  • parent — Modules from the parent directory.
  • subpath — Node.js subpath imports.
  • internal — Your internal modules.
  • builtin — Node.js Built-in Modules.
  • external — External modules installed in the project.
  • import — Any import.

The list of modifiers is sorted from most to least important:

  • side_effect — Side effect imports.

  • type — TypeScript type imports.

  • value — Value imports.

  • default — Imports containing the default specifier.

  • wildcard — Imports containing the wildcard (* as) specifier.

  • named — Imports containing at least one named specifier.

  • Default: See below

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]
``````js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
``````js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
``````json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]
``````js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
``````js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";