strands
v1.0.1
Published
Simple, light-weight string building for JavaScript
Downloads
25
Readme
Strands
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
- string-template - For simple placeholder replacement
- moment - For date formatting
- chalk - For terminal color
License
Apache License 2.0