babel-plugin-dedent

2.1.0 • Public • Published

babel-plugin-dedent

Removes indentation from multiline template strings. Works with both tabs and spaces.

Not using Babel? Here's a runtime version of this plugin.

Installation

$ npm install babel babel-plugin-dedent
$ babel --plugins dedent script.js

Babel v6+

v2.x.x of this plugin is required. Older versions are not compatible with Babel v6+.

Usage

Indentation will be removed from all strings tagged with dedent tag (you can also use dedent as a function, if you need to use your own tag).

expect(dedent`Line #1
    Line #2
    Line #3`).to.equal('Line #1\nLine #2\nLine #3');
 
// Leading/trailing line break is removed.
expect(
    dedent`
    Line #1
    Line #2
    Line #3
    `
).to.equal('Line #1\nLine #2\nLine #3');
 
// No more than one leading/trailing line break is removed.
expect(
    dedent`
 
    Line #1
    Line #2
    Line #3
 
    `
).to.equal('\nLine #1\nLine #2\nLine #3\n');
 
// Only the "base" indentation is removed.
expect(
    dedent`
    Line #1
        Line #2
            Line #3
    `
).to.equal('Line #1\n\tLine #2\n\t\tLine #3');
 
// The last line is ignored if it doesn't contain anything else than whitespace.
expect(
    function () {
        return dedent`
            Line #1
            Line #2
            Line #3
        `;
    }()
).to.equal('Line #1\nLine #2\nLine #3');
 
// Escaped characters are ignored.
expect(
    dedent`
    \tLine #1
    \tLine #2
    \tLine #3
    `
).to.equal('\tLine #1\n\tLine #2\n\tLine #3');

License

Copyright (c) 2015 - 2020 Martin Kolárik. Released under the MIT license.

Package Sidebar

Install

npm i babel-plugin-dedent

Weekly Downloads

378

Version

2.1.0

License

MIT

Unpacked Size

7.28 kB

Total Files

4

Last publish

Collaborators

  • martin-kolarik