diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-03-31 20:07:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 20:07:11 -0400 |
commit | 5d7309ed5474a9fb67b9cae1b1176bc10bde6115 (patch) | |
tree | 3dd2f58e8b365298d5a75a3a360899803b67e0b8 /ext/js/templates/template-renderer.js | |
parent | da612bbdd7c5ac15ed64497666f6415c525c823f (diff) |
Log Anki data (#1579)
* Remove unused modifierPost
* Add _getModifier
* Add _getModifiedData
* Add getModifiedData
* Add getRenderingData
* Update logging to also log anki note data
* Fix dangling comma
Diffstat (limited to 'ext/js/templates/template-renderer.js')
-rw-r--r-- | ext/js/templates/template-renderer.js | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/ext/js/templates/template-renderer.js b/ext/js/templates/template-renderer.js index f72740d5..a7a4a842 100644 --- a/ext/js/templates/template-renderer.js +++ b/ext/js/templates/template-renderer.js @@ -29,8 +29,8 @@ class TemplateRenderer { this._dataTypes = new Map(); } - registerDataType(name, {modifier=null, modifierPost=null}) { - this._dataTypes.set(name, {modifier, modifierPost}); + registerDataType(name, {modifier=null}) { + this._dataTypes.set(name, {modifier}); } async render(template, data, type) { @@ -47,32 +47,38 @@ class TemplateRenderer { cache.set(template, instance); } - let modifier = null; - let modifierPost = null; - if (typeof type === 'string') { - const typeInfo = this._dataTypes.get(type); - if (typeof typeInfo !== 'undefined') { - ({modifier, modifierPost} = typeInfo); - } - } - try { - if (typeof modifier === 'function') { - data = modifier(data); - } - + data = this._getModifiedData(data, type); this._stateStack = [new Map()]; return instance(data).trim(); } finally { this._stateStack = null; + } + } - if (typeof modifierPost === 'function') { - modifierPost(data); + async getModifiedData(data, type) { + return this._getModifiedData(data, type); + } + + // Private + + _getModifier(type) { + if (typeof type === 'string') { + const typeInfo = this._dataTypes.get(type); + if (typeof typeInfo !== 'undefined') { + return typeInfo.modifier; } } + return null; } - // Private + _getModifiedData(data, type) { + const modifier = this._getModifier(type); + if (typeof modifier === 'function') { + data = modifier(data); + } + return data; + } _updateCacheSize(maxSize) { const cache = this._cache; |