What is ts-dedent?
The ts-dedent package is a utility designed to remove indentation from multi-line template strings in TypeScript and JavaScript. This is particularly useful when working with code that needs to be displayed to the user or when dealing with strings that should not have additional leading whitespace that is typically introduced by code formatting in source files.
What are ts-dedent's main functionalities?
Dedentation of template strings
This feature allows you to normalize the indentation of multi-line strings to enhance readability and maintain consistent formatting. The dedent function automatically adjusts the indentation based on the least indented line in the template string.
import dedent from 'ts-dedent';
const text = dedent`
This is a text
with inconsistent
indentation.`;
console.log(text); // Outputs:
// This is a text
// with inconsistent
// indentation.
Other packages similar to ts-dedent
dedent
Similar to ts-dedent, the dedent package is also aimed at removing excess indentation from multi-line strings. It works in a similar manner but does not specifically target TypeScript, making ts-dedent potentially more suitable for projects that are using TypeScript.
strip-indent
The strip-indent package removes leading whitespace from each line in a string. It differs from ts-dedent in that it does not consider the relative indentation levels between lines, but simply strips the common leading whitespace from all lines.
TypeScript Dedent
TypeScript package which smartly trims and strips indentation from multi-line strings.
Usage Examples
import dedent from 'dedent';
console.log(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.`);
console.log(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.
`);
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.
console.log(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.
`);
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.
console.log(dedent`
Also works fine
${1}. With any kind of
${2}. Placeholders
`);
Also works fine
1. With any kind of
2. Placeholders
console.log(dedent(`
Wait! I lied. Dedent can also be used as a function.
`);
Wait! I lied. Dedent can also be used as a function.
License
MIT
Based on
Changelog
See history for more details.
2.2.0
2021-08-01 Add indentation to values with multiline strings & added ESM module2.1.1
2021-03-31 Update dependencies2.1.0
2021-03-24 Bugfixes2.0.0
2020-09-28 Bugfixes1.2.0
2020-09-28 Update dependencies and a couple of minor improvments1.1.0
2019-07-26 Update dependencies and fixed links in readme1.0.0
2018-06-14 Initial release