detag
v1.0.2
Published
Tagged template literals, without substitutions. Convert tagged template literals arguments into regular string arguments, so that both types of function call return the same string argument.
Downloads
8
Maintainers
Readme
Detag
Tagged template literals, without substitutions. Sometimes tagged template literals are handy without needing to use their literal and substitution parameters. Detag converts tagged template literals arguments into regular string arguments, so that both types of function call return the same string argument.
Install
npm install detag
How to use
Use the rest parameter to collect arguments, and pass to detag. Detag will return a string, equivalent to calling the function normally:
import detag from 'detag'
// Getting detagged argument
function detaggedFunction (...args) {
const name = detag(args)
console.log(name)
}
// 'I am Chris' ✅
detaggedFunction('I am ' + 'Chris')
// 'I am Chris' ✅
detaggedFunction`I am ${'Chris'}`
// Alternative detag usage
const detaggedFunction = detag(name => {
console.log(name)
})
Default value
Supply a default value by passing a second argument:
import detag from 'detag'
// Detag default value
function withDefault (...args) {
const name = detag(args, 'Adam')
console.log(name)
}
// 'Rachel'
withDefault`Rachel`
// 'Adam'
withDefault``
// Alternative detag definition
const withDefault = detag(name => {
console.log(name)
}, 'Adam')
Ignore escape characters
Ignore escape characters by passing true
as the third argument:
import detag from 'detag'
function dontIgnore (...args) {
const cookedText = detag(args)
console.log(cookedText)
}
function ignoreEscape (...args) {
const rawText = detag(args, '', true)
console.log(rawText)
}
// 'New line
// now'
dontIgnore`New line \n now`
// 'New line \n now'
ignoreEscape`New line \n now`
// Alternative detag definition
const ignoreEscape = detag(name => {
console.log(name)
}, '', true)
Syntax
const argument = detag(args[, defaultValue[, ignoreEscapeChars]])
Valid args value
// 'I am Chris' ✅
detag(['I am Chris'])
// 'I am Chris' ✅
detag([['I am Chris']])
// 'I am Chris' ✅
detag([['I', 'Chris'], [' am ']])
Invalid args value
// null ❌
detag('I am Chris')
// null ❌
detag(['I am', ['Chris']])
// null ❌
detag(undefined)
Alternative syntax
const func = detag(functionToDetag[, defaultValue[, ignoreEscapeChars]])