Skip to content

Releases: olado/doT

v2.0.0-beta.1

26 Jul 12:03
Compare
Choose a tag to compare
v2.0.0-beta.1 Pre-release
Pre-release

Changes/additions:

  • ES6 code generated
  • types: https://github.com/olado/doT/blob/v2/doT.d.ts
  • varname option renamed to argName
  • support templates without explicit context "it" - the list of properties should be passed as array to argName option, template function will expect an object and will destructure it into multiple arguments - so it is nearly zero-cost:
const tmpl = doT.template("{{=foo}}{{=bar}}", {argName: ["foo", "bar"]})
tmpl({foo: 1, bar: 2}) // "12"
  • partial options can be passed, global options object will not be available in the next release.
  • custom encoders:
    • syntax {{<encoder name>! it.foo}}, encoders passed to encoders option object ( is any valid JS identifier) as functions (or as code strings in selfContained: true mode).
    • HTML encoding with syntax {{! it.foo }} requires passing {encoders: {"": require("dot/encodeHTML")}} options
  • type safe interpolation (maybe % should be dropped...):
    • {{%n= it.foo}} - it.foo must be number (or exception will be thrown)
    • {{%s= it.foo}} - string
    • {{%b= it.foo}} - boolean
  • support iterables for {{~iter:x}} and {{~iter:x:i}} syntaxes (now uses for-of loop).
  • syntax is no longer in options
  • configurable delimiters:
    • e.g. {delimiters: {start: "<%", end: "%>"}} via options to change for one template
    • or setDelimiters({start: "<%", end: "%>"}) to change globally
  • reduces internal variables names usage, two configurable name prefixes are used, can be changed via options (internalPrefix: "_val", encodersPrefix: "_enc").
  • optional iterator index variable is now local (with let)

Removed:

  • doT.process (possibly will be added if there is an interest)
  • browser bundle (possibly will be added if there is a substantial interest)
  • dot-packer - can be added as a separate module to dot-template org
  • legacy doU engine
  • append: false option (only append: true now, that is faster and that was default anyway)
  • no HTML interpolation by default (see custom encoders above)

v1.1.3

25 Jul 12:33
Compare
Choose a tag to compare

Tests for doT.process
Patch code injection via prototype pollution (#291)

2.0.0-beta.0

16 Feb 23:20
Compare
Choose a tag to compare
2.0.0-beta.0 Pre-release
Pre-release

Allow multiline parameters in defines (#221, @RionStick)

1.1.0

16 Feb 23:23
Compare
Choose a tag to compare

Added tests

1.0.3

01 Nov 22:37
Compare
Choose a tag to compare
added example for issue #137

1.0.1

18 Sep 03:29
Compare
Choose a tag to compare
merging in davsket:uglifyjsfix by @davsket