Security News
The Dark Side of Open Source
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
typo
Advanced tools
Readme
typo
is an extendable template engine designed for the future:
Promise
and async/await
.$ npm install typo --save
const typo = require('typo')()
typo.template('Hello, {{user.name}}!', {
user: {
name: 'Steve'
}
}).then(console.log)
// Hello, Steve!
typo
with chalkconst typo = require('typo')()
const chalk = require('typo-chalk')
typo.use(chalk)
typo.template('Once in a {{blue blue}} moon').then(console.log)
// Then it will print a blue word "blue"
Basic:
typo.use('upper', word => word.toUpperCase())
typo.template('{{upper foo}} bar').then(console.log)
// FOO bar
typo.use('fullname', async name => await getFullNameFromServer(name))
typo.template('{{fullname name}}', {name: 'Steve'}).then(console.log)
// Steve Jobs
typo.template('{{fullname Steve}}').then(console.log)
// Steve Jobs
const template = typo.compile(`Once in a {{blue color}} moon`)
template({color: 'blue'})
.then(console.log)
// Once in a blue moon
Creates the typo
instance.
String={{
The beginning of each directive.String=}}
The end of each directive.Compiles a template into a function.
String
Object
Boolean=true
whether should be compiled into an asynchronous function, defaults to true
Number=Number.POSITIVE_INFINITY
If compiled as an asynchronous function, the number of max concurrently pending directive functions.enum.<print|ignore|throw>=print
Suppose the value of an expression is not found in data
, then it will print the expression directly if print
(as default), or print nothing if ignore
, or throw an error if throw
.enum.<print|ignore|throw>=value_not_defined
Tells typo
what to do if the parameter expression of a directive is not found in data
. And this option is default to the value of value_not_defined
// default options
typo.compile('{{blue color}}')()
// prints a blue letter, "color"
.then(console.log) => {
// value_not_defined: throw
typo.compile('{{blue color}}', {
value_not_defined: 'throw'
})()
.catch((e) => {
// code frame and
// 'value not found for key "color"''
console.error(e.message)
})
typo.compile('{{adjective}} {{blue color}}', {
value_not_defined: 'throw',
directive_value_not_defined: 'print'
})({
adjective: 'beautiful'
})
// prints "beautiful color", and the letter color is blue
.then(console.log)
Returns function(data)
async: false
const result = typo.compile(template)(data)
console.log(result)
async: true (default)
typo.compile(template)(data).then(console.log)
String
Object=
Object=
Returns Promise
if compile_options.async
is true
(default), or String
the substituted result if is not.
{{<directive>[:<directive-params>][|<directive¶ms>] <expression>}}
{{<expression>}}
MIT
FAQs
`typo` is an extendable template engine designed for the future
The npm package typo receives a total of 510 weekly downloads. As such, typo popularity was classified as not popular.
We found that typo demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.
Security News
OpenJS is warning of social engineering takeovers targeting open source projects after receiving a credible attempt on the foundation.