1.0.2 • Published 2 years ago

detag v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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]])