Skip to content
NewBun 1.4.5 is out. Release notes
AphrodyBun

Linter · Rules

unicorn/prefer-string-raw

Require String.raw for strings that escape backslashes

In a normal string you write every backslash twice, which makes a Windows path or a regex source hard to read and easy to get wrong. In a String.raw template you write it once.

The rule skips a string that has another escape such as \n, ends with a backslash, or contains a backtick or ${. String.raw can't express those.

--fix rewrites the string to a String.raw template.

Configure

Off by default. To turn it on:

bunfig.toml
[lint.rules]
"unicorn/prefer-string-raw" = "error" # or "warn"

Examples

Reported:

const logs = "C:\\Users\\ada\\logs";
const version = new RegExp("\\d+\\.\\d+");

Not reported:

const logs = String.raw`C:\Users\ada\logs`;
const version = new RegExp(String.raw`\d+\.\d+`);

const lines = "C:\\logs\n"; // has another escape
const folder = "C:\\logs\\"; // ends with a backslash