Socket
Socket
Sign inDemoInstall

dedent

Package Overview
Dependencies
37
Maintainers
2
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Protect your apps from supply chain attacks

Install

dedent

An ES6 string tag that strips indentation from multi-line strings

    1.5.1latest
    GitHub
    npm

Version published
Maintainers
2
Weekly downloads
24,256,042
increased by2.03%

Weekly downloads

Package description

What is dedent?

The dedent npm package is a utility for stripping indentation from multi-line strings. It is commonly used to make template literals more readable by removing the leading whitespace that is introduced by indenting the code for readability purposes.

What are dedent's main functionalities?

Remove indentation from multi-line strings

This feature allows you to write multi-line strings in your code with indentation for readability, and then process them with dedent to remove the extra leading whitespace.

const dedent = require('dedent');

const text = dedent`
    Line one
    Line two
    Line three
`;
console.log(text); // 'Line one\nLine two\nLine three'

Other packages similar to dedent

Changelog

Source

1.5.1

  • fix: add missing dedent.d.mts entry to package.json files (#73)

Readme

Source

Dedent

An ES6 string tag that strips indentation from multi-line strings.

Usage

import dedent from "dedent";

function usageExample() {
  const first = dedent`A string that gets so long you need to break it over
                       multiple lines. Luckily dedent is here to keep it
                       readable without lots of spaces ending up in the string
                       itself.`;

  const second = dedent`
    Leading and trailing lines will be trimmed, so you can write something like
    this and have it work as you expect:

      * how convenient it is
      * that I can use an indented list
         - and still have it do the right thing

    That's all.
  `;

  const third = dedent(`
    Wait! I lied. Dedent can also be used as a function.
  `);

  return first + "\n\n" + second + "\n\n" + third;
}
> console.log(usageExample());
A string that gets so long you need to break it over
multiple lines. Luckily dedent is here to keep it
readable without lots of spaces ending up in the string
itself.

Leading and trailing lines will be trimmed, so you can write something like
this and have it work as you expect:

  * how convenient it is
  * that I can use an indented list
    - and still have it do the right thing

That's all.

Wait! I lied. Dedent can also be used as a function.

Options

You can customize the options dedent runs with by calling its withOptions method with an object:

import dedent from 'dedent';

dedent.withOptions({ /* ... */ })`input`;
dedent.withOptions({ /* ... */ })(`input`);

options returns a new dedent function, so if you'd like to reuse the same options, you can create a dedicated dedent function:

import dedent from 'dedent';

const dedenter = dedent.withOptions({ /* ... */ });

dedenter`input`;
dedenter(`input`);

escapeSpecialCharacters

JavaScript string tags by default add an extra \ escape in front of some special characters such as $ dollar signs. dedent will escape those special characters when called as a string tag.

If you'd like to change the behavior, an escapeSpecialCharacters option is available. It defaults to:

  • false: when dedent is called as a function
  • true: when dedent is called as a string tag
import dedent from "dedent";

// "$hello!"
dedent`
  $hello!
`;

// "\$hello!"
dedent.withOptions({ escapeSpecialCharacters: false })`
  $hello!
`;

// "$hello!"
dedent.withOptions({ escapeSpecialCharacters: true })`
  $hello!
`;

For more context, see [https://github.com/dmnd/dedent/issues/63](🚀 Feature: Add an option to disable special character escaping).

License

MIT

Keywords

FAQs

Last updated on 31 Jul 2023

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc