strands
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Strands

NPM version NPM downloads Build status Test coverage

Simple, light-weight string building for JavaScript.

Installation

npm install strands --save

Usage

String Building

For simple string building.

strand (separator = '', prefix = '', suffix = '')

import { strand } from 'strands'
 
const query = strand(' ', '', ';')
 
query('SELECT *')
query('FROM', tableName)
query('WHERE count > 10')
 
console.log(query) //=> "SELECT * FROM test WHERE count > 10;"

Template Building

The template class built on top of a strand.

new Strands ({ indent = '', eol = '\n' })

import { Strands } from 'strands'
 
const html = new Strands()
const head = new Strands({ indent: '  ' })
const body = new Strands({ indent: '  ' })
 
head.line('<meta charset="utf8">')
 
body.line('<h1></h1>')
body.return()
body.line('<div></div>')
 
html.line('<!doctype html>')
html.line('<html>')
html.line('<head>')
html.append(head)
html.line('</head>')
html.line('<body>')
html.append(body)
html.line('</body>')
html.line('</html>')
 
console.log(html.toString())
//=> "<!doctype html>\n<html>\n<head>\n  <meta charset="utf8">\n</head>\n<body>\n  <h1></h1>\n\n  <div></div>\n</body>\n</html>\n"

Template Wrapper

Simple wrapper function for creating a "template-like function".

wrap (fn: (t: Strands, data: T) => any, options?: Options): (data: T) => string

import { wrap } from 'strands'
 
const doc = wrap(function (t, data) {
  t.line('### Authors')
  t.line()
 
  data.authors.forEach(function (author) {
    t.line('', author.name)
  })
})
 
console.log(doc({ authors: [{ name: 'Blake' }, { name: 'John' }] }))
//=> "### Authors\n\n* Blake\n* John\n"

Useful Libraries

License

Apache License 2.0

Package Sidebar

Install

npm i strands

Weekly Downloads

14

Version

1.0.1

License

Apache-2.0

Last publish

Collaborators

  • mulesoft-npm
  • juan.coen
  • christianvogel
  • cesaraugustogarcia