adlib
Advanced tools
Comparing version 2.2.1 to 2.2.2
@@ -5,6 +5,14 @@ # Change Log | ||
# 2.2.0 | ||
# 2.2.2 | ||
### Fixed | ||
- we had a regression where `{{{obj.val}}}` was not coming out as `{TheValue}` which means info window templating was broken. Also Regex-- | ||
# 2.2.1 | ||
### Added | ||
- support for `default` values like `Hello my name is {{obj.name||Slim Shady}}`. If `obj.name` is undefined, the default value is used. | ||
# 2.2.0 | ||
Yanked | ||
# 2.1.1 | ||
@@ -11,0 +19,0 @@ ### Fixed |
/** | ||
* adlib - v2.2.0 - Wed Feb 14 2018 13:59:36 GMT-0700 (MST) | ||
* adlib - v2.2.2 - Wed Feb 14 2018 15:48:24 GMT-0700 (MST) | ||
* Copyright (c) 2018 Dave Bouwman / Esri | ||
@@ -339,3 +339,3 @@ * Apache-2.0 | ||
var handlebars = /{{[\S\s]*?}}/g; | ||
var handlebars = /{{[\w\.\:||&\/?=]*?}}/g; | ||
var hbsEntries = templateValue.match(handlebars); | ||
@@ -342,0 +342,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.adlib=e()}(this,function(){"use strict";function n(n,e,t){return void 0===t&&(t=void 0),e.split(".").reduce(function(n,e){return n?n[e]:t},n)}function e(n,e){return Object.keys(n).reduce(function(t,r){return t[r]=e(n[r],r,n),t},{})}function t(n){return n instanceof Date}function r(n){return"function"==typeof n}function u(n){return"object"==typeof n}function i(n){return n instanceof RegExp}function o(n,f,a,l){function c(n,e){return o(n,f,a?a+"."+e:e)}if(a=a||"",Array.isArray(n))return n.map(c);if(!n||!u(n)||t(n)||i(n)||r(n)){return f(n,a)}return Object.assign({},n,e(n,c))}function f(n){return"object"==typeof n}function a(n,t){function r(n,e){return a(n,t?t+"."+e:e)}if(t=t||"",Array.isArray(n)){return l(n.map(r).filter(function(n){return null!==n&&void 0!==n}))}return n&&f(n)?c(e(n,r)):v(n)}function l(n){var e=n,t=n.reduce(function(n,e){if(y(e)&&d(e)){var t=p(e);t>n&&(n=t)}return n},-1);return t>-1&&(e=0===t?[]:"{{delete:"+(t-1)+"}}"),e}function c(n){var e={obj:{},maxLevel:-1},t=Object.keys(n).reduce(function(e,t){var r=n[t];if(y(r)&&d(r)){var u=p(r);u>e.maxLevel&&(e.maxLevel=u)}else e.obj[t]=r;return e},e);return t.maxLevel>0?1===t.maxLevel?void 0:"{{delete:"+(t.maxLevel-1)+"}}":t.obj}function v(n){var e=n;return"string"==typeof n&&d(n)&&(e=s(n)),e}function s(n){var e=p(n);return 0===e?void 0:"{{delete:"+e+"}}"}function p(n){return parseInt(n.replace(/{|}/g,"").split(":")[1])}function d(n){return!(!n||"string"!=typeof n)&&n.indexOf("{{delete")>-1}function y(n){return"string"==typeof n}function m(n,e,t,r){void 0===r&&(r=0);var u=e;return e||(u="{{delete:"+r+"}}"),u}function g(n){return"string"==typeof n}function x(e,t,r){var u,i=e.split(":");if(i.length>1){var o=i[0],f=i[1],a=null;if(i[2]&&(a=i[2]),!r||!r[f]||"function"!=typeof r[f])throw new Error("Attempted to apply non-existant transform "+f+" on "+o+" with params "+e);u=n(t,o),u=r[f](o,u,t,a)}else u=n(t,e);return u}function b(e,t){var r=e.split(":")[0],u=n(t,r,null);return null!==u&&void 0!==u}function h(n,e,t){if(void 0===t&&(t=null),t=t||{},t.optional)throw new Error("Please do not pass in an `optional` transform, adlib provides that interally.");return t.optional=m,a(o(n,function(n,r){if(!g(n))return n;var u,i=/{{[\S\s]*?}}/g,o=n.match(i);if(o&&o.length){var f=!1;return o.map(function(n){var r=n.replace(/{|}/g,"");if(r.indexOf("||")>-1){var u=r.split("||"),i=u.length;r=u.find(function(n,t){return b(n,e)?n:t+1===i&&(f=!0,isNaN(n)||(n=parseInt(n)),n)})}var o={key:n,value:r};return f||(o.value=x(r,e,t)||n),o}).forEach(function(e){n===e.key?("string"==typeof e.value&&(isNaN(e.value)||(e.value.indexOf(".")>-1?e.value=parseFloat(e.value):e.value=parseInt(e.value))),u=e.value):n=n.replace(e.key,e.value)}),u||n}return n}))}return h}); | ||
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.adlib=e()}(this,function(){"use strict";function n(n,e,t){return void 0===t&&(t=void 0),e.split(".").reduce(function(n,e){return n?n[e]:t},n)}function e(n,e){return Object.keys(n).reduce(function(t,r){return t[r]=e(n[r],r,n),t},{})}function t(n){return n instanceof Date}function r(n){return"function"==typeof n}function u(n){return"object"==typeof n}function i(n){return n instanceof RegExp}function o(n,f,a,l){function c(n,e){return o(n,f,a?a+"."+e:e)}if(a=a||"",Array.isArray(n))return n.map(c);if(!n||!u(n)||t(n)||i(n)||r(n)){return f(n,a)}return Object.assign({},n,e(n,c))}function f(n){return"object"==typeof n}function a(n,t){function r(n,e){return a(n,t?t+"."+e:e)}if(t=t||"",Array.isArray(n)){return l(n.map(r).filter(function(n){return null!==n&&void 0!==n}))}return n&&f(n)?c(e(n,r)):v(n)}function l(n){var e=n,t=n.reduce(function(n,e){if(y(e)&&d(e)){var t=s(e);t>n&&(n=t)}return n},-1);return t>-1&&(e=0===t?[]:"{{delete:"+(t-1)+"}}"),e}function c(n){var e={obj:{},maxLevel:-1},t=Object.keys(n).reduce(function(e,t){var r=n[t];if(y(r)&&d(r)){var u=s(r);u>e.maxLevel&&(e.maxLevel=u)}else e.obj[t]=r;return e},e);return t.maxLevel>0?1===t.maxLevel?void 0:"{{delete:"+(t.maxLevel-1)+"}}":t.obj}function v(n){var e=n;return"string"==typeof n&&d(n)&&(e=p(n)),e}function p(n){var e=s(n);return 0===e?void 0:"{{delete:"+e+"}}"}function s(n){return parseInt(n.replace(/{|}/g,"").split(":")[1])}function d(n){return!(!n||"string"!=typeof n)&&n.indexOf("{{delete")>-1}function y(n){return"string"==typeof n}function m(n,e,t,r){void 0===r&&(r=0);var u=e;return e||(u="{{delete:"+r+"}}"),u}function g(n){return"string"==typeof n}function x(e,t,r){var u,i=e.split(":");if(i.length>1){var o=i[0],f=i[1],a=null;if(i[2]&&(a=i[2]),!r||!r[f]||"function"!=typeof r[f])throw new Error("Attempted to apply non-existant transform "+f+" on "+o+" with params "+e);u=n(t,o),u=r[f](o,u,t,a)}else u=n(t,e);return u}function b(e,t){var r=e.split(":")[0],u=n(t,r,null);return null!==u&&void 0!==u}function h(n,e,t){if(void 0===t&&(t=null),t=t||{},t.optional)throw new Error("Please do not pass in an `optional` transform, adlib provides that interally.");return t.optional=m,a(o(n,function(n,r){if(!g(n))return n;var u,i=/{{[\w\.\:||&\/?=]*?}}/g,o=n.match(i);if(o&&o.length){var f=!1;return o.map(function(n){var r=n.replace(/{|}/g,"");if(r.indexOf("||")>-1){var u=r.split("||"),i=u.length;r=u.find(function(n,t){return b(n,e)?n:t+1===i&&(f=!0,isNaN(n)||(n=parseInt(n)),n)})}var o={key:n,value:r};return f||(o.value=x(r,e,t)||n),o}).forEach(function(e){n===e.key?("string"==typeof e.value&&(isNaN(e.value)||(e.value.indexOf(".")>-1?e.value=parseFloat(e.value):e.value=parseInt(e.value))),u=e.value):n=n.replace(e.key,e.value)}),u||n}return n}))}return h}); | ||
//# sourceMappingURL=adlib.min.js.map |
/** | ||
* adlib - v2.2.0 - Wed Feb 14 2018 13:59:34 GMT-0700 (MST) | ||
* adlib - v2.2.2 - Wed Feb 14 2018 15:48:22 GMT-0700 (MST) | ||
* Copyright (c) 2018 Dave Bouwman / Esri | ||
@@ -339,3 +339,3 @@ * Apache-2.0 | ||
var handlebars = /{{[\S\s]*?}}/g; | ||
var handlebars = /{{[\w\.\:||&\/?=]*?}}/g; | ||
var hbsEntries = templateValue.match(handlebars); | ||
@@ -342,0 +342,0 @@ |
@@ -77,3 +77,3 @@ /** | ||
var handlebars = /{{[\S\s]*?}}/g; | ||
var handlebars = /{{[\w\.\:||&\/?=]*?}}/g; | ||
let hbsEntries = templateValue.match(handlebars); | ||
@@ -80,0 +80,0 @@ |
{ | ||
"name": "adlib", | ||
"version": "2.2.1", | ||
"version": "2.2.2", | ||
"description": "Templating for deep JSON object graphs", | ||
@@ -5,0 +5,0 @@ "main": "dist/adlib.umd.js", |
@@ -19,3 +19,3 @@ | ||
test('AdLib:: Does not throws if transform passed in', (t)=>{ | ||
test('AdLib:: Does not throw if other transform passed in', (t)=>{ | ||
let template = { | ||
@@ -65,2 +65,20 @@ foo: 'bar', | ||
test('Adlib::Strings:: allow info-window template to pass through', (t) => { | ||
let template = { | ||
value: '{{thing.value}}', | ||
description: 'Injuries: {CRASHID}<br />Fatalities: {ISREPORTONSCENE}' | ||
}; | ||
let settings = { | ||
thing: { | ||
value: 'red' | ||
} | ||
}; | ||
let result = adlib(template, settings); | ||
t.plan(2); | ||
t.equal(result.value, 'red'); | ||
t.equal(result.description, template.description); | ||
t.end(); | ||
}) | ||
test('Adlib::Strings:: should replace a path within a larger string', (t) => { | ||
@@ -82,3 +100,20 @@ t.plan(1); | ||
test('Adlib::Strings:: should allow triple curlies and leave the outer set', (t) => { | ||
let template = { | ||
description: 'Injuries: {{{thing.injuriesField}}}<br />Fatalities: {{{thing.fatalField}}}' | ||
}; | ||
let settings = { | ||
thing: { | ||
fatalField: 'FATALCOUNT', | ||
injuriesField: 'INJCOUNT' | ||
} | ||
}; | ||
let result = adlib(template, settings); | ||
t.plan(1); | ||
t.equal(result.description, 'Injuries: {INJCOUNT}<br />Fatalities: {FATALCOUNT}'); | ||
t.end(); | ||
}) | ||
test('Adlib::Strings:: should replace multiple instances within a larger string', (t) => { | ||
@@ -85,0 +120,0 @@ t.plan(1); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
381533
9677