0.5.2 • Published 6 months ago

extra-tags v0.5.2

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

extra-tags

Install

npm install --save extra-tags
# or
yarn add extra-tags

API

map

function map<T, U, Strings extends ReadonlyArray<string>>(
  fn: (value: T, index: number) => U
, strings: Strings
, ...values: T[]
): [strings: Strings, ...values: U[]]
function map<T, U>(
  fn: (value: T, index: number) => U
): <Strings extends ReadonlyArray<string>>(
  strings: Strings
, ...values: T[]
) => [strings: Strings, ...values: U[]]

filter

function filter<T, U extends T = T>(
  predicate: (value: T, index: number) => boolean
, strings: TemplateStringsArray
, ...values: T[]
): [strings: TemplateStringsArray, ...values: U[]]
function filter<T, U extends T = T>(
  predicate: (value: T, index: number) => boolean
, strings: ReadonlyArray<string>
, ...values: T[]
): [strings: ReadonlyArray<string>, ...values: U[]]
function filter<T, U extends T = T>(
  predicate: (value: T, index: number) => boolean
): <Strings extends ReadonlyArray<string>>(
  strings: Strings
, ...values: T[]
) => [
  strings: Strings extends TemplateStringsArray
  ? TemplateStringsArray
  : ReadonlyArray<string>
, ...values: U[]
]

array

function array<T>(strings: TemplateStringsArray, ...values: T[]): Array<string | T>
array`a${1}b${2}c`
// ['a', 1, 'b', 2, 'c']

fromArray

function fromArray<T>(arr: Array<string | T>): [
  strings: string[]
, ...values: T[]
]
fromArray(array`a${1}b${2}c`)
// [['a', 'b', 'c'], 1, 2]

concat

function concat(strings: ReadonlyArray<string>, ...values: unknown[]): string

It is equivalent to Array.prototype.concat for template arguments.

// It doesn't make sense to use it as a tag function,
// because it equivalent to `a${'b'}c${'d'}e`.
concat`a${'b'}c${'d'}e`
// 'abcde'

concat(strings, ...values)
// 'abcde'

dedent

function dedent(strings: ReadonlyArray<string>, ...values: unknown[]): string
dedent`
  hello
  world
`
//   'hello' + '\n'
// + 'world'

oneline

function oneline(
  separator: string
, strings: ReadonlyArray<string>
, ...values: unknown[]
): string
function oneline(
  separator: string
): (strings: ReadonlyArray<string>, ...values: unknown[]) => string
function oneline(strings: ReadonlyArray<string>, ...values: unknown[]): string
oneline(' ')`
  hello
  world
`
// 'hello world'

indentMultilineValues

function indentMultilineValues<Strings extends ReadonlyArray<string>>(
  strings: Strings
, ...values: string[]
): [strings: Strings, ...values: string[]]
const [strings, ...values] = indentMultilineValues`
  a
  ${'b\nc'}
  d
`
// strings: [
//   '\n'
// + ' '.repeat(2) + 'a' + '\n'
// , '\n'
// + ' '.repeat(2) + 'd' + '\n'
// ]
// values: [
//   'b' + '\n'
// + ' '.repeat(2) + 'c'
// ]

javascript

type JavaScriptValue =
| string
| number
| boolean
| null
| bigint
| undefined
| ((args: any) => any)
| { [property: string]: JavaScriptValue }
| JavaScriptValue[]

function javascript(strings: ReadonlyArray<string>, ...values: JavaScriptValue[]): string
javascript`
  const text = ${'hello world'}
  console.log(text)
`
// const text = "hello world"
// console.log(text)
0.5.2

6 months ago

0.5.1

6 months ago

0.5.0

8 months ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.3.0

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.3

4 years ago

0.2.4

4 years ago

0.2.1

4 years ago

0.2.2

4 years ago

0.2.0

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago