Allows you to use multiline strings created with template literals that
were constructed with indentation. noindent
cleans out the indentation,
making the resulting string clean from inconsistent indentations while
still being easy to read on code.
Easy to use with trivial interface, creates no additional dependencies, includes typings and is tiny (616 bytes minified, 369 bytes gzipped).
import noindent from 'noindent'
(() => {
const result = noindent(`
Example input
Usually, this would result in a string
that contains lots of unwanted whitespaces
Which can lead to unwanted results if
the strings are used by whitespace-sensitive
code
Or if the output is used as text where
whitespace is visible.
`)
})()
produces result
(whitespaces and line breaks that
are preserved are displayed as symbols):
ExampleB7inputb
b
Usually,B7thisB7wouldB7resultB7inB7aB7stringb
thatB7containsB7lotsB7ofB7unwantedB7whitespacesb
b
B7B7WhichB7canB7leadB7toB7unwantedB7resultsB7ifb
B7B7theB7stringsB7areB7usedB7byB7whitespace-sensitiveb
B7B7codeb
b
OrB7ifB7theB7outputB7isB7usedB7asB7textB7whereb
whitespaceB7isB7visible.
Note that further indentations, i.e. blocks of text that are further offset from the rest of the text, are preserved. Also, if the string is ended in a last line which only contains spaces, this line is omitted.
Install with yarn add noindent
or npm i noindent --save
,
then import with import noindent from 'noindent'
or const noindent = require('noindent')
.
Various alternative syntax applications should work as well. The following code snippets all produce the output
Test1b
Test2b
B7B7Test3
import noindent from 'noindent'
(() => {
const result = noindent(`Test1
Test2
Test3
`)
})()
import noindent from 'noindent'
(() => {
const result = noindent(`
Test1
Test2
Test3`)
})()