@kosatyi/ejs 0.0.5 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,10 +2,9 @@
2
2
 
3
3
  Embedded JavaScript templates
4
4
 
5
- ![npm](https://img.shields.io/npm/v/@kosatyi/ejs.svg)
6
- ![downloads](https://img.shields.io/npm/dt/@kosatyi/ejs.svg)
7
- ![license](https://img.shields.io/npm/l/@kosatyi/ejs.svg)
8
- ![github-issues](https://img.shields.io/github/issues/kosatyi/ejs.svg)
5
+ [![npm](https://img.shields.io/npm/v/@kosatyi/ejs.svg)](https://www.npmjs.com/package/@kosatyi/ejs)
6
+ [![github-issues](https://img.shields.io/github/issues/kosatyi/ejs.svg)](https://github.com/kosatyi/ejs/issues)
7
+ [![license](https://img.shields.io/npm/l/@kosatyi/ejs.svg)](https://github.com/kosatyi/ejs/blob/master/LICENCE)
9
8
 
10
9
  ## Install
11
10
 
@@ -20,7 +19,7 @@ $ npm install @kosatyi/ejs --save
20
19
  ```js
21
20
  const ejs = require('@kosatyi/ejs');
22
21
 
23
- // path where templates is located (views by default so you can skip this step)
22
+ // path where templates is located
24
23
  ejs.configure({
25
24
  path: 'views'
26
25
  })
package/dist/ejs.cjs CHANGED
@@ -12,6 +12,7 @@ var chokidar__default = /*#__PURE__*/_interopDefaultLegacy(chokidar);
12
12
 
13
13
  var defaults = {};
14
14
  defaults["export"] = 'ejs.precompiled';
15
+ defaults.cache = true;
15
16
  defaults.path = 'views';
16
17
  defaults.resolver = null;
17
18
  defaults.extension = {
@@ -47,6 +48,9 @@ var isFunction = function isFunction(v) {
47
48
  var isString = function isString(v) {
48
49
  return typeof v === 'string';
49
50
  };
51
+ var isBoolean = function isBoolean(v) {
52
+ return typeof v === 'boolean';
53
+ };
50
54
 
51
55
  var isNode = new Function('try {return this===global;}catch(e){return false;}');
52
56
  var symbolEntities = {
@@ -913,11 +917,13 @@ function init(options) {
913
917
  }
914
918
 
915
919
  options = options || {};
916
- var settings = options.settings || {};
917
- var viewPath = settings['views'];
918
- var viewOptions = settings['view options'] || {};
920
+ var settings = extend({}, options.settings);
921
+ var viewPath = typeProp(isString, settings['views'], defaults.path);
922
+ var viewCache = typeProp(isBoolean, settings['view cache'], defaults.cache);
923
+ var viewOptions = extend({}, settings['view options']);
919
924
  var filename = path__default["default"].relative(viewPath, name);
920
925
  viewOptions.path = viewPath;
926
+ viewOptions.cache = viewCache;
921
927
  view.configure(viewOptions);
922
928
  return view.render(filename, options).then(function (content) {
923
929
  callback(null, content);
package/dist/ejs.js CHANGED
@@ -8,6 +8,7 @@
8
8
 
9
9
  var defaults = {};
10
10
  defaults["export"] = 'ejs.precompiled';
11
+ defaults.cache = true;
11
12
  defaults.path = 'views';
12
13
  defaults.resolver = null;
13
14
  defaults.extension = {
@@ -43,6 +44,9 @@
43
44
  var isString = function isString(v) {
44
45
  return typeof v === 'string';
45
46
  };
47
+ var isBoolean = function isBoolean(v) {
48
+ return typeof v === 'boolean';
49
+ };
46
50
 
47
51
  var isNode = new Function('try {return this===global;}catch(e){return false;}');
48
52
  var symbolEntities = {
@@ -909,11 +913,13 @@
909
913
  }
910
914
 
911
915
  options = options || {};
912
- var settings = options.settings || {};
913
- var viewPath = settings['views'];
914
- var viewOptions = settings['view options'] || {};
916
+ var settings = extend({}, options.settings);
917
+ var viewPath = typeProp(isString, settings['views'], defaults.path);
918
+ var viewCache = typeProp(isBoolean, settings['view cache'], defaults.cache);
919
+ var viewOptions = extend({}, settings['view options']);
915
920
  var filename = path.relative(viewPath, name);
916
921
  viewOptions.path = viewPath;
922
+ viewOptions.cache = viewCache;
917
923
  view.configure(viewOptions);
918
924
  return view.render(filename, options).then(function (content) {
919
925
  callback(null, content);
package/dist/ejs.min.js CHANGED
@@ -1 +1 @@
1
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).ejs=t()}(this,(function(){"use strict";var n={},t={export:"ejs.precompiled",path:"views",resolver:null,extension:{template:"ejs",module:"mjs"},vars:{EXTEND:"$$$",BUFFER:"$$a",OUTPUT:"$$i",LAYOUT:"$$l",MACROS:"$$m",PRINT:"$$j",BLOCKS:"$$b",ERROR:"$$e",SCOPE:"$$s",SAFE:"$$v"},token:{start:"<%",end:"%>",regex:"([\\s\\S]+?)"}},e=function(){var n=[].slice.call(arguments),t=n.shift();return n.filter(t).pop()},r=function(n){return"function"==typeof n},o=function(n){return"string"==typeof n},i=new Function("try {return this===global;}catch(e){return false;}"),u={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},c={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},a=function(n){return new RegExp(["[",Object.keys(n).join(""),"]"].join(""),"g")},f=a(c),s=a(u),l=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(""+n).replace(f,(function(n){return c[n]}))},h=function(n,t,e){return null==(e=n)?"":t?l(e):e},p=function(n,t){var e=n,r=t.split("."),o=r.pop();return r.forEach((function(n){e=e[n]=e[n]||{}})),[e,o]},v=function(){for(var n=arguments.length,t=new Array(n),e=0;e<n;e++)t[e]=arguments[e];var r=t.shift();return t.filter((function(n){return n})).reduce((function(n,t){return Object.assign(n,t)}),r)},d=function(){},g=function(n,t){var e;for(e in n)b(n,e)&&t(n[e],e,n)},m=function(n,t){return function(n,t,e){var r=n instanceof Array,o=r?[]:{};return g(n,(function(n,e,i){var u=t(n,e,i);void 0!==u&&(r?o.push(u):o[e]=u)})),o}(n,(function(n,e){if(-1===t.indexOf(e))return n}))},b=function(n,t){return n&&n.hasOwnProperty(t)},w=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],x=" ",E='"',y="/",j="<",$=">";function O(n,t,e){var r=[],o=-1===w.indexOf(n),i=function(n,t,e){var r=[];return g(n,(function(n,e,o){var i=t(n,e,o);void 0!==i&&r.push(i)})),r}(t,(function(n,t){if(null!=n)return[l(t),[E,l(n),E].join("")].join("=")})).join(x);return r.push([j,n,x,i,$].join("")),e&&r.push(e instanceof Array?e.join(""):e),o&&r.push([j,y,n,$].join("")),r.join("")}var k=[{symbol:"-",format:function(n){return"'+\n".concat(this.SAFE,"(").concat(n,",1)+\n'")}},{symbol:"=",format:function(n){return"'+\n".concat(this.SAFE,"(").concat(n,")+\n'")}},{symbol:"#",format:function(n){return"'+\n/**".concat(n,"**/+\n'")}},{symbol:"",format:function(n){return"')\n".concat(n,"\n").concat(this.BUFFER,"('")}}],F=function(n){var t=n.token,e=n.vars,r=n.extension.module,o=[],i=[],c={match:"[ \\t]*",start:[t.start,"_"],end:["_",t.end]};k.forEach((function(n){o.push(t.start.concat(n.symbol).concat(t.regex).concat(t.end)),i.push(n.format.bind(e))}));var a=new RegExp(o.join("|").concat("|$"),"g"),f=new RegExp([c.match,c.start].join(""),"gm"),l=new RegExp([c.end,c.match].join(""),"gm");return function(n,o){var h=e.SCOPE,p=e.SAFE,v=e.BUFFER,d=o.split(".").pop();n=(n=n.replace(/[\r\n]+/g,"\n").replace(/^\s+|\s+$/gm,"")).replace(f,c.start).replace(l,c.end),d===r&&(n=[t.start,n,t.end].join("\n"));var g="".concat(v,"('");!function(n,t,e){var r=0;t.replace(n,(function(){var n=[].slice.call(arguments,0,-1),t=n.pop(),o=n.shift();return e(n,r,t),r=t+o.length,o}))}(a,n,(function(t,e,r){g+=(""+n.slice(e,r)).replace(s,(function(n){return"\\"+u[n]})),t.forEach((function(n,t){n&&(g+=i[t](n))}))})),g+="');",g="with(".concat(h,"){").concat(g,"}"),g="".concat(v,".start();").concat(g,"return ").concat(v,".end();"),g+="\n//# sourceURL=".concat(o);var m=null;try{(m=new Function(h,v,p,g)).source="(function(".concat(h,",").concat(v,",").concat(p,"){\n").concat(g,"\n})")}catch(n){throw n.filename=o,n.source=g,n}return m}},R=function(n){return window.fetch(n).then((function(n){return n.text()}))},B=function(t){return new Promise((function(e,r){n.readFile(t,(function(n,t){n?r(n):e(t.toString())}))}))},S=function(t,e){return n.watch(".",{cwd:t}).on("change",(function(n){e.remove(n)})).on("error",(function(n){console.log("watcher error: "+n)}))},A=function(n,t,e){var o=n.path;n.token;var u=r(n.resolver)?n.resolver:i()?B:R,c=function(n){return u(function(n){return(n=[o,n].join("/")).replace(/\/\//g,"/")}(n))},a=function(n,e){return t.set(e,n),n};return n.watch&&i()&&S(o,t),function(n){if(t.exist(n))return t.resolve(n);var r=c(n).then((function(t){return a(e(t,n),n)}));return a(r,n)}};function P(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var L=function(n){return Promise.all(n).then((function(n){return n.join("")}))},T=function(){var n=[],t=[];function e(n){t.push(n)}return e.start=function(){t=[]},e.backup=function(){n.push(t.concat()),t=[]},e.restore=function(){var e=t.concat();return t=n.pop(),L(e)},e.end=function(){return L(t)},e},U=function(n,t){var e,i=n.vars,u=i.EXTEND,c=i.MACROS,a=i.LAYOUT,f=i.BLOCKS,s=i.BUFFER;function l(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this,n)}return Object.defineProperties(l.prototype,(P(e={},s,{value:T(),writable:!1,configurable:!1,enumerable:!1}),P(e,f,{value:{},writable:!1,configurable:!1,enumerable:!1}),P(e,u,{value:!1,writable:!0,configurable:!1,enumerable:!1}),P(e,a,{value:!1,writable:!0,configurable:!1,enumerable:!1}),P(e,"setBuffer",{value:function(n){this[s]=n},writable:!1,configurable:!1}),P(e,"getBuffer",{value:function(){return this[s]},writable:!1,configurable:!1}),P(e,"setBlocks",{value:function(n){this[f]=n},writable:!1,configurable:!1}),P(e,"getBlocks",{value:function(){return this[f]},writable:!1,configurable:!1}),P(e,"setExtend",{value:function(n){this[u]=n},writable:!1,configurable:!1}),P(e,"getExtend",{value:function(){return this[u]},writable:!1,configurable:!1}),P(e,"setLayout",{value:function(n){this[a]=n},writable:!1,configurable:!1}),P(e,"getLayout",{value:function(){return this[a]},writable:!1,configurable:!1}),e)),l.helpers=function(n){v(l.prototype,n)},l.helpers(t),l.helpers({clone:function(n){var t=[a,u,c,s];return!0===n&&t.push(f),m(this,t)},echo:function(){var n=this.getBuffer(),t=[].slice.call(arguments);t.forEach((function(t){n(t)}))},macro:function(n,t){var e=this.getBuffer(),o=function(){e.backup(),r(n)&&n.apply(this,arguments);var o=e.restore();return!0===t?this.echo(o):o}.bind(this);return o.ctx=this,o},resolve:function(n,t){return Promise.resolve(n).then(t.bind(this))},async:function(n,t){var e=this;this.echo(this.resolve(n,(function(n){return e.macro(t)(n)})))},node:O,element:function(n,t,e){r(e)&&(e=this.macro(e)()),this.echo(this.resolve(e,(function(e){return O(n,t,e)})))},component:function(n,t){t=function(n){var t=v({},n.props);return{element:O,create:n.create,render:function(n){return this.create(v({},t,n))}}}(t),this.set(n,function(n){this.echo(t.render(n))}.bind(this))},get:function(n,t){var e=p(this,n),r=e.shift(),o=e.pop();return b(r,o)?r[o]:t},set:function(n,t){var e=p(this,n),r=e.shift(),o=e.pop();if(this.getExtend()&&b(r,o))return r[o];r[o]=t},call:function(n){var t=[].slice.call(arguments,1),e=p(this,n),o=e.shift(),i=e.pop();if(r(o[i]))return o[i].apply(o,t)},each:function(n,t){o(n)&&(n=this.get(n,[])),g(n,t)},extend:function(n){this.setExtend(!0),this.setLayout(n)},block:function(n,t){var e=this.getBlocks(),r=this.macro(t);if(this.getExtend())e[n]=r;else{var o=e[n];if(o){var i=function(){this.echo(r())}.bind(o.ctx);this.echo(o(i))}else this.echo(r(d))}},include:function(n,t,e){var r=!1===e?{}:this.clone(!0),o=v(r,t||{}),i=this.render(n,o);this.echo(i)},use:function(n){var t=this,e=this.require(n);return this.echo(e),{as:function(n){return e.then((function(e){t.set(n,e)})),this}}},from:function(n){var t=this,e=this.require(n);return this.echo(e),{use:function(){var n=[].slice.call(arguments);return e.then((function(e){n.forEach((function(n){t.set(n,e[n])}))})),this}}}}),l};var q,C,N,_,D,K=(C={},N={},_=function(n,t){var e=n.split(".").pop();return e!==t&&(n=[n,t].join(".")),n},D={element:O,output:function(n,t){return D.template(n).then((function(n){return n.call(t,t,t.getBuffer(),h)}))},render:function(n,t){var e=_(n,C.extension.template),r=new D.scope(t);return D.output(e,r).then((function(n){if(r.getExtend()){r.setExtend(!1);var t=r.getLayout(),e=r.clone();return D.render(t,e)}return n}))},require:function(n){var t=_(n,C.extension.module),e=new D.scope({});return D.output(t,e).then((function(){return e.clone(!0)}))},helpers:function(n){v(N,n=n||{}),D.scope.helpers(n)},configure:function(n){return C.export=e(o,t.export,n.export),C.path=e(o,t.path,n.path),C.resolver=e(r,t.resolver,n.resolver),C.extension=v({},t.extension,n.extension),C.token=v({},t.token,n.token),C.vars=v({},t.vars,n.vars),D.scope=U(C,N),D.compile=F(C),D.wrapper=function(n){var t=n.export;return function(n){var e="(function(o){\n";return n.forEach((function(n){e+="o["+JSON.stringify(n.name)+"]="+String(n.content)+"\n"})),e+='})(window["'+t+'"] = window["'+t+'"] || {});\n'}}(C),D.cache=function(n){var t=n.export,e={};return{preload:function(){return!1===i()&&this.load(window[t]),this},exist:function(n){return b(e,n)},get:function(n){return e[n]},remove:function(n){delete e[n]},resolve:function(n){return Promise.resolve(this.get(n))},set:function(n,t){return e[n]=t,this},load:function(n){return v(e,n),this}}.preload()}(C),D.template=A(C,D.cache,D.compile),D},__express:function(t,e,o){r(e)&&(o=e,e={});var i=(e=e||{}).settings||{},u=i.views,c=i["view options"]||{},a=n.relative(u,t);return c.path=u,D.configure(c),D.render(a,e).then((function(n){o(null,n)})).catch((function(n){o(n)}))}},D.configure(q||{}),D.helpers({require:function(n){return D.require(n,this)},render:function(n,t){return D.render(n,t)}}),D);return K}));
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).ejs=t()}(this,(function(){"use strict";var n={},t={export:"ejs.precompiled",cache:!0,path:"views",resolver:null,extension:{template:"ejs",module:"mjs"},vars:{EXTEND:"$$$",BUFFER:"$$a",OUTPUT:"$$i",LAYOUT:"$$l",MACROS:"$$m",PRINT:"$$j",BLOCKS:"$$b",ERROR:"$$e",SCOPE:"$$s",SAFE:"$$v"},token:{start:"<%",end:"%>",regex:"([\\s\\S]+?)"}},e=function(){var n=[].slice.call(arguments),t=n.shift();return n.filter(t).pop()},r=function(n){return"function"==typeof n},o=function(n){return"string"==typeof n},i=function(n){return"boolean"==typeof n},u=new Function("try {return this===global;}catch(e){return false;}"),c={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},a={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},f=function(n){return new RegExp(["[",Object.keys(n).join(""),"]"].join(""),"g")},s=f(a),l=f(c),h=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(""+n).replace(s,(function(n){return a[n]}))},p=function(n,t,e){return null==(e=n)?"":t?h(e):e},v=function(n,t){var e=n,r=t.split("."),o=r.pop();return r.forEach((function(n){e=e[n]=e[n]||{}})),[e,o]},d=function(){for(var n=arguments.length,t=new Array(n),e=0;e<n;e++)t[e]=arguments[e];var r=t.shift();return t.filter((function(n){return n})).reduce((function(n,t){return Object.assign(n,t)}),r)},g=function(){},b=function(n,t){var e;for(e in n)w(n,e)&&t(n[e],e,n)},m=function(n,t){return function(n,t,e){var r=n instanceof Array,o=r?[]:{};return b(n,(function(n,e,i){var u=t(n,e,i);void 0!==u&&(r?o.push(u):o[e]=u)})),o}(n,(function(n,e){if(-1===t.indexOf(e))return n}))},w=function(n,t){return n&&n.hasOwnProperty(t)},x=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],E=" ",y='"',j="/",$="<",O=">";function k(n,t,e){var r=[],o=-1===x.indexOf(n),i=function(n,t,e){var r=[];return b(n,(function(n,e,o){var i=t(n,e,o);void 0!==i&&r.push(i)})),r}(t,(function(n,t){if(null!=n)return[h(t),[y,h(n),y].join("")].join("=")})).join(E);return r.push([$,n,E,i,O].join("")),e&&r.push(e instanceof Array?e.join(""):e),o&&r.push([$,j,n,O].join("")),r.join("")}var F=[{symbol:"-",format:function(n){return"'+\n".concat(this.SAFE,"(").concat(n,",1)+\n'")}},{symbol:"=",format:function(n){return"'+\n".concat(this.SAFE,"(").concat(n,")+\n'")}},{symbol:"#",format:function(n){return"'+\n/**".concat(n,"**/+\n'")}},{symbol:"",format:function(n){return"')\n".concat(n,"\n").concat(this.BUFFER,"('")}}],R=function(n){var t=n.token,e=n.vars,r=n.extension.module,o=[],i=[],u={match:"[ \\t]*",start:[t.start,"_"],end:["_",t.end]};F.forEach((function(n){o.push(t.start.concat(n.symbol).concat(t.regex).concat(t.end)),i.push(n.format.bind(e))}));var a=new RegExp(o.join("|").concat("|$"),"g"),f=new RegExp([u.match,u.start].join(""),"gm"),s=new RegExp([u.end,u.match].join(""),"gm");return function(n,o){var h=e.SCOPE,p=e.SAFE,v=e.BUFFER,d=o.split(".").pop();n=(n=n.replace(/[\r\n]+/g,"\n").replace(/^\s+|\s+$/gm,"")).replace(f,u.start).replace(s,u.end),d===r&&(n=[t.start,n,t.end].join("\n"));var g="".concat(v,"('");!function(n,t,e){var r=0;t.replace(n,(function(){var n=[].slice.call(arguments,0,-1),t=n.pop(),o=n.shift();return e(n,r,t),r=t+o.length,o}))}(a,n,(function(t,e,r){g+=(""+n.slice(e,r)).replace(l,(function(n){return"\\"+c[n]})),t.forEach((function(n,t){n&&(g+=i[t](n))}))})),g+="');",g="with(".concat(h,"){").concat(g,"}"),g="".concat(v,".start();").concat(g,"return ").concat(v,".end();"),g+="\n//# sourceURL=".concat(o);var b=null;try{(b=new Function(h,v,p,g)).source="(function(".concat(h,",").concat(v,",").concat(p,"){\n").concat(g,"\n})")}catch(n){throw n.filename=o,n.source=g,n}return b}},B=function(n){return window.fetch(n).then((function(n){return n.text()}))},S=function(t){return new Promise((function(e,r){n.readFile(t,(function(n,t){n?r(n):e(t.toString())}))}))},A=function(t,e){return n.watch(".",{cwd:t}).on("change",(function(n){e.remove(n)})).on("error",(function(n){console.log("watcher error: "+n)}))},P=function(n,t,e){var o=n.path;n.token;var i=r(n.resolver)?n.resolver:u()?S:B,c=function(n){return i(function(n){return(n=[o,n].join("/")).replace(/\/\//g,"/")}(n))},a=function(n,e){return t.set(e,n),n};return n.watch&&u()&&A(o,t),function(n){if(t.exist(n))return t.resolve(n);var r=c(n).then((function(t){return a(e(t,n),n)}));return a(r,n)}};function L(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var T=function(n){return Promise.all(n).then((function(n){return n.join("")}))},U=function(){var n=[],t=[];function e(n){t.push(n)}return e.start=function(){t=[]},e.backup=function(){n.push(t.concat()),t=[]},e.restore=function(){var e=t.concat();return t=n.pop(),T(e)},e.end=function(){return T(t)},e},q=function(n,t){var e,i=n.vars,u=i.EXTEND,c=i.MACROS,a=i.LAYOUT,f=i.BLOCKS,s=i.BUFFER;function l(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};d(this,n)}return Object.defineProperties(l.prototype,(L(e={},s,{value:U(),writable:!1,configurable:!1,enumerable:!1}),L(e,f,{value:{},writable:!1,configurable:!1,enumerable:!1}),L(e,u,{value:!1,writable:!0,configurable:!1,enumerable:!1}),L(e,a,{value:!1,writable:!0,configurable:!1,enumerable:!1}),L(e,"setBuffer",{value:function(n){this[s]=n},writable:!1,configurable:!1}),L(e,"getBuffer",{value:function(){return this[s]},writable:!1,configurable:!1}),L(e,"setBlocks",{value:function(n){this[f]=n},writable:!1,configurable:!1}),L(e,"getBlocks",{value:function(){return this[f]},writable:!1,configurable:!1}),L(e,"setExtend",{value:function(n){this[u]=n},writable:!1,configurable:!1}),L(e,"getExtend",{value:function(){return this[u]},writable:!1,configurable:!1}),L(e,"setLayout",{value:function(n){this[a]=n},writable:!1,configurable:!1}),L(e,"getLayout",{value:function(){return this[a]},writable:!1,configurable:!1}),e)),l.helpers=function(n){d(l.prototype,n)},l.helpers(t),l.helpers({clone:function(n){var t=[a,u,c,s];return!0===n&&t.push(f),m(this,t)},echo:function(){var n=this.getBuffer(),t=[].slice.call(arguments);t.forEach((function(t){n(t)}))},macro:function(n,t){var e=this.getBuffer(),o=function(){e.backup(),r(n)&&n.apply(this,arguments);var o=e.restore();return!0===t?this.echo(o):o}.bind(this);return o.ctx=this,o},resolve:function(n,t){return Promise.resolve(n).then(t.bind(this))},async:function(n,t){var e=this;this.echo(this.resolve(n,(function(n){return e.macro(t)(n)})))},node:k,element:function(n,t,e){r(e)&&(e=this.macro(e)()),this.echo(this.resolve(e,(function(e){return k(n,t,e)})))},component:function(n,t){t=function(n){var t=d({},n.props);return{element:k,create:n.create,render:function(n){return this.create(d({},t,n))}}}(t),this.set(n,function(n){this.echo(t.render(n))}.bind(this))},get:function(n,t){var e=v(this,n),r=e.shift(),o=e.pop();return w(r,o)?r[o]:t},set:function(n,t){var e=v(this,n),r=e.shift(),o=e.pop();if(this.getExtend()&&w(r,o))return r[o];r[o]=t},call:function(n){var t=[].slice.call(arguments,1),e=v(this,n),o=e.shift(),i=e.pop();if(r(o[i]))return o[i].apply(o,t)},each:function(n,t){o(n)&&(n=this.get(n,[])),b(n,t)},extend:function(n){this.setExtend(!0),this.setLayout(n)},block:function(n,t){var e=this.getBlocks(),r=this.macro(t);if(this.getExtend())e[n]=r;else{var o=e[n];if(o){var i=function(){this.echo(r())}.bind(o.ctx);this.echo(o(i))}else this.echo(r(g))}},include:function(n,t,e){var r=!1===e?{}:this.clone(!0),o=d(r,t||{}),i=this.render(n,o);this.echo(i)},use:function(n){var t=this,e=this.require(n);return this.echo(e),{as:function(n){return e.then((function(e){t.set(n,e)})),this}}},from:function(n){var t=this,e=this.require(n);return this.echo(e),{use:function(){var n=[].slice.call(arguments);return e.then((function(e){n.forEach((function(n){t.set(n,e[n])}))})),this}}}}),l};var C,N,_,D,K,M=(N={},_={},D=function(n,t){var e=n.split(".").pop();return e!==t&&(n=[n,t].join(".")),n},K={element:k,output:function(n,t){return K.template(n).then((function(n){return n.call(t,t,t.getBuffer(),p)}))},render:function(n,t){var e=D(n,N.extension.template),r=new K.scope(t);return K.output(e,r).then((function(n){if(r.getExtend()){r.setExtend(!1);var t=r.getLayout(),e=r.clone();return K.render(t,e)}return n}))},require:function(n){var t=D(n,N.extension.module),e=new K.scope({});return K.output(t,e).then((function(){return e.clone(!0)}))},helpers:function(n){d(_,n=n||{}),K.scope.helpers(n)},configure:function(n){return N.export=e(o,t.export,n.export),N.path=e(o,t.path,n.path),N.resolver=e(r,t.resolver,n.resolver),N.extension=d({},t.extension,n.extension),N.token=d({},t.token,n.token),N.vars=d({},t.vars,n.vars),K.scope=q(N,_),K.compile=R(N),K.wrapper=function(n){var t=n.export;return function(n){var e="(function(o){\n";return n.forEach((function(n){e+="o["+JSON.stringify(n.name)+"]="+String(n.content)+"\n"})),e+='})(window["'+t+'"] = window["'+t+'"] || {});\n'}}(N),K.cache=function(n){var t=n.export,e={};return{preload:function(){return!1===u()&&this.load(window[t]),this},exist:function(n){return w(e,n)},get:function(n){return e[n]},remove:function(n){delete e[n]},resolve:function(n){return Promise.resolve(this.get(n))},set:function(n,t){return e[n]=t,this},load:function(n){return d(e,n),this}}.preload()}(N),K.template=P(N,K.cache,K.compile),K},__express:function(u,c,a){r(c)&&(a=c,c={});var f=d({},(c=c||{}).settings),s=e(o,f.views,t.path),l=e(i,f["view cache"],t.cache),h=d({},f["view options"]),p=n.relative(s,u);return h.path=s,h.cache=l,K.configure(h),K.render(p,c).then((function(n){a(null,n)})).catch((function(n){a(n)}))}},K.configure(C||{}),K.helpers({require:function(n){return K.require(n,this)},render:function(n,t){return K.render(n,t)}}),K);return M}));
package/dist/ejs.mjs CHANGED
@@ -6,6 +6,8 @@ const defaults = {};
6
6
 
7
7
  defaults.export = 'ejs.precompiled';
8
8
 
9
+ defaults.cache = true;
10
+
9
11
  defaults.path = 'views';
10
12
 
11
13
  defaults.resolver = null;
@@ -42,6 +44,7 @@ const typeProp = function () {
42
44
 
43
45
  const isFunction = (v) => typeof v === 'function';
44
46
  const isString = (v) => typeof v === 'string';
47
+ const isBoolean = (v) => typeof v === 'boolean';
45
48
 
46
49
  const isNode = new Function(
47
50
  'try {return this===global;}catch(e){return false;}'
@@ -877,11 +880,21 @@ function init(options) {
877
880
  options = {};
878
881
  }
879
882
  options = options || {};
880
- const settings = options.settings || {};
881
- const viewPath = settings['views'];
882
- const viewOptions = settings['view options'] || {};
883
+ const settings = extend({}, options.settings);
884
+ const viewPath = typeProp(
885
+ isString,
886
+ settings['views'],
887
+ defaults.path
888
+ );
889
+ const viewCache = typeProp(
890
+ isBoolean,
891
+ settings['view cache'],
892
+ defaults.cache
893
+ );
894
+ const viewOptions = extend({}, settings['view options']);
883
895
  const filename = path.relative(viewPath, name);
884
896
  viewOptions.path = viewPath;
897
+ viewOptions.cache = viewCache;
885
898
  view.configure(viewOptions);
886
899
  return view
887
900
  .render(filename, options)
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@kosatyi/ejs",
3
3
  "description": "EJS Templates",
4
4
  "homepage": "https://github.com/kosatyi/ejs",
5
- "version": "0.0.5",
5
+ "version": "0.0.9",
6
6
  "main": "dist/ejs.cjs",
7
7
  "module": "dist/ejs.mjs",
8
8
  "browser": "dist/ejs.js",