New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jeff-core

Package Overview
Dependencies
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jeff-core - npm Package Compare versions

Comparing version 0.1.11 to 0.1.12

236

dist/jeff.js
/*!
jeff-core v0.1.10
jeff v0.1.0

@@ -31,8 +31,3 @@ Copyright (C) 2013 by GetHuman LLC

// lib/jeff/base.js
module.exports.create = function() {
var Jeff = {};
// BEGIN(BROWSER)
Jeff.VERSION = "0.2.0";

@@ -42,70 +37,36 @@

return Jeff;
};;
Jeff.registerPlugin = function(name, obj) {
if ( name && obj && name.length > 0 ) {
Jeff.plugins[name] = obj;
}
};
Jeff.registerPlugin("each", function(items, tmpl) {
var ret = [];
for( var i = 0, len = items.length; i < len; ++i ) {
ret.push(tmpl(items[i]));
}
return ret;
});
;
// lib/jeff/utils.js
Jeff.Utils = {
extend: function() {
var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
// Handle a deep copy situation
if ( typeof target === "boolean" ) {
deep = target;
// skip the boolean and the target
target = arguments[ i ] || {};
i++;
extend: function(obj, value) {
for(var key in value) {
if(value.hasOwnProperty(key)) {
obj[key] = value[key];
}
}
return obj;
},
// Handle case when target is a string or something (possible in deep copy)
if ( typeof target !== "object" && !Jeff.Utils.isFunction(target) ) {
target = {};
}
// return clone of object if only one argument is passed
if ( i === length ) {
target = {};
i--;
}
for ( ; i < length; i++ ) {
// Only deal with non-null/undefined values
if ( (options = arguments[ i ]) !== null ) {
// Extend the base object
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
// Prevent never-ending loop
if ( target === copy ) {
continue;
}
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( Jeff.Utils.isObject(copy) || (copyIsArray = Jeff.Utils.isArray(copy)) ) ) {
if ( copyIsArray ) {
copyIsArray = false;
clone = src && Jeff.Utils.isArray(src) ? src : [];
} else {
clone = src && Jeff.Utils.isObject(src) ? src : {};
}
// Never move original objects, clone them
target[ name ] = Jeff.Utils.extend( deep, clone, copy );
// Don't bring in undefined values
} else if ( copy !== undefined ) {
target[ name ] = copy;
}
}
inArray: function(arr, obj) {
var i = arr.length;
while (i--) {
if (arr[i] === obj) {
return true;
}
}
// Return the modified object
return target;
return false;
},

@@ -121,6 +82,2 @@

isFunction: function(obj) {
return !!(obj && obj.constructor && obj.call && obj.apply);
},
isEmptyObject: function(obj) {

@@ -150,3 +107,3 @@

isString: function(str) {
return (typeof str === 'string' || str instanceof String);
return (typeof str == 'string' || str instanceof String);
}

@@ -161,3 +118,2 @@

var fs = require("fs");
var namedTemplates = {}; // store partials in memory by name

@@ -176,9 +132,5 @@

var jtPrintNewline = "";
var outputMode = 1; // 0 = leaveAlone, 1 = toString, 2 = toStringPretty, 3 = toDom
var outputMode = 1; // 0 = toDom, 1 = toString, 2 = toStringPretty
var templateDirs = [];
Jeff.getTags = function () {
return Array.concat(allTags, selfClosing);
};
Jeff.setOutputMode = function(mode) {

@@ -201,26 +153,16 @@ if ( !isNaN(mode) && mode >= 0 && mode < 3 ) {

Jeff.elem = function(tagName) { // like this: elem("div", attributes, children, text);
if ( !Jeff.Utils.isString(tagName) ) {
return null;
}
var e = { tag: tagName, toString: function() { return Jeff.output(e); } };
if ( !Jeff.Utils.isString(tagName) ) return null;
var e = { tag: tagName, render: function() { return output(e); } };
if ( arguments.length > 1 ) {
for ( var i = 1, len = arguments.length; i < len; ++i ) {
var arg = arguments[i];
if ( Jeff.Utils.isArray(arg) ) {
e.children = arg;
} else if ( Jeff.Utils.isObject(arg) && arg.hasOwnProperty('tag') ) {
console.log('has tag property');
e.children = e.children || [];
e.children.push(arg);
} else if ( Jeff.Utils.isObject(arg) && arg.tag && arg.toString ) {
console.log('is object but does not have tag');
e.children = [arg];
} else if ( Jeff.Utils.isObject(arg) ) {
e.attributes = arg;
} else if ( Jeff.Utils.isString(arg) ) {
e.text = arg;
if ( Jeff.Utils.isArray(arguments[i]) ) {
e.children = arguments[i];
} else if ( Jeff.Utils.isObject(arguments[i]) ) {
e.attributes = arguments[i];
} else if ( Jeff.Utils.isString(arguments[i]) ) {
e.text = arguments[i];
}
}
}
return e;
return output(e);
};

@@ -236,6 +178,28 @@

// actually make tag methods for each of the tags in var allTags
Jeff.elems = {};
var i = allTags.length;
while( i-- ) {
Jeff.elems[allTags[i]] = makeElem(allTags[i]);
}
// PRINTING MARKUP AS HTML
function output(elem, mode) {
var currentMode = mode || outputMode;
if ( currentMode === 0 ) {
return markupToDom(elem);
} else if ( currentMode === 2 ) {
jtPrintIndent = " ";
jtPrintNewline = "\n";
return markupToString(elem);
} else {
jtPrintIndent = "";
jtPrintNewline = "";
return markupToString(elem);
}
}
// once we have converted our json to "markup", we can now "print" to DOM using document.createElement, etc
function markupToDom(elem) {
// todo
return elem;
}

@@ -245,10 +209,5 @@

function markupToString(elem, ind) {
//console.log('printing: ' + JSON.stringify(elem));
if ( !elem ) {
return;
}
if ( Jeff.Utils.isString(elem) ) {
return elem;
}
if ( !elem ) return;
if ( Jeff.Utils.isString(elem) ) return elem;

@@ -276,15 +235,9 @@ var indent = "", indentation = 0, i, len;

//console.log('\n\nelem is ' + JSON.stringify(elem));
if ( elem.attributes ) {
//console.log('attributes are ' + JSON.stringify(elem.attributes));
for( var prop in elem.attributes ) {
if ( elem.attributes[prop] === null ) {
p.push(" ", prop);
} else {
p.push(" ", prop, "=\"", elem.attributes[prop], "\"");
}
p.push(" ", prop, "=\"", elem.attributes[prop], "\"");
}
}
if ( elem.tag && !elem.children && !elem.text ) {
if ( selfClosing.indexOf(elem.tag) > -1 ) {
if ( Jeff.Utils.inArray(selfClosing, elem.tag) ) {
p.push("/>", jtPrintNewline);

@@ -320,56 +273,17 @@ } else {

// actually make tag methods for each of the tags in var allTags
Jeff.elems = {};
var i = allTags.length;
while( i-- ) {
Jeff.elems[allTags[i]] = makeElem(allTags[i]);
}
// PRINTING MARKUP AS HTML
Jeff.output = function(elem, mode) {
var currentMode = mode || outputMode;
if ( currentMode === 0 ) {
return markupToDom(elem);
} else if ( currentMode === 2 ) {
jtPrintIndent = " ";
jtPrintNewline = "\n";
return markupToString(elem);
} else {
jtPrintIndent = "";
jtPrintNewline = "";
return markupToString(elem);
}
};
Jeff.getTemplate = function(path) {
if ( namedTemplates[path] ) {
return namedTemplates[path];
} else {
Jeff.template = function(path) {
var fs = require("fs");
if ( fs && templateDirs.length > 0 ) {
var i = templateDirs.length;
while( i-- ) {
var fullpath = templateDirs[i] + "/" + path;
//console.log("trying " + fullpath);
if ( fs.existsSync(fullpath) ) {
path = fullpath;
break;
return require(fullpath);
}
}
return require(path);
}
return require(path);
};
Jeff.templateToString = function(result) {
return (Jeff.Utils.isString(result) ? result : (Jeff.Utils.isArray(result) ? Jeff.naked(result).toString() : result.toString()));
};
Jeff.template = function(path) {
return function(model) {
var result = Jeff.getTemplate(path)(model);
return Jeff.templateToString(result, model);
};
};
Jeff.render = function(path, model) {
return Jeff.template(path)(model);
};
Jeff.extends = function(path, model, subTemplates) {

@@ -379,3 +293,3 @@ if ( subTemplates && Jeff.Utils.isObject(subTemplates) ) {

}
return Jeff.render(path, model);
return Jeff.template(path)(model);
};

@@ -403,6 +317,2 @@

Jeff.init = function(overrides) {
Jeff.Utils.extend(Jeff, overrides);
};
return Jeff;

@@ -409,0 +319,0 @@

/*!
jeff-core v0.1.10
jeff v0.1.0

@@ -26,2 +26,2 @@ Copyright (C) 2013 by GetHuman LLC

*/
(function(a){var b={};module.exports.create=function(){var a={};return a.VERSION="0.2.0",a.plugins={},a},b.Utils={extend:function(){var c,d,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;for("boolean"==typeof i&&(l=i,i=arguments[j]||{},j++),"object"==typeof i||b.Utils.isFunction(i)||(i={}),j===k&&(i={},j--);k>j;j++)if(null!==(c=arguments[j]))for(d in c)e=i[d],f=c[d],i!==f&&(l&&f&&(b.Utils.isObject(f)||(g=b.Utils.isArray(f)))?(g?(g=!1,h=e&&b.Utils.isArray(e)?e:[]):h=e&&b.Utils.isObject(e)?e:{},i[d]=b.Utils.extend(l,h,f)):f!==a&&(i[d]=f));return i},isArray:function(a){return a&&"object"==typeof a?"[object Array]"===toString.call(a):!1},isObject:function(a){return a&&"object"==typeof a?"[object Object]"===toString.call(a):!1},isFunction:function(a){return!!(a&&a.constructor&&a.call&&a.apply)},isEmptyObject:function(a){if(null===a)return!0;if(a.length&&a.length>0)return!1;if(0===a.length)return!0;for(var b in a)if(hasOwnProperty.call(a,b))return!1;return!0},isString:function(a){return"string"==typeof a||a instanceof String}},exports.attach=function(a){function b(b){return function(){return[].unshift.call(arguments,b),a.elem.apply(this,arguments)}}function c(a){return a}function d(b,c){if(b){if(a.Utils.isString(b))return b;var e,f,g="",l=0;if(j&&j.length>0){var m=[];for(c&&(l=c),e=l;e--;)m.push(j);g=m.join("")}var n=[];if(b.tag&&"html"===b.tag&&n.push(g,i,k),b.tag&&n.push(g,"<",b.tag),b.attributes)for(var o in b.attributes)null===b.attributes[o]?n.push(" ",o):n.push(" ",o,'="',b.attributes[o],'"');if(!b.tag||b.children||b.text){if(b.tag&&n.push(">"),b.children){for(b.tag&&n.push(k),e=0,f=b.children.length;f>e;++e)n.push(d(b.children[e],b.tag?l+1:l));b.tag&&n.push(g)}b.text&&n.push(b.text),b.tag&&n.push("</",b.tag,">",k)}else h.indexOf(b.tag)>-1?n.push("/>",k):n.push("></",b.tag,">",k);return n.join("")}}var e=require("fs"),f={};a.getTemplateByName=function(a){return f[a]};var g=["a","iframe","abbr","acronym","address","area","b","base","bdo","big","blockquote","body","br","button","caption","cite","code","col","colgroup","dd","del","dfn","div","dl","dt","em","fieldset","form","h1","h2","h3","h4","h5","h6","head","html","hr","i","img","input","ins","kbd","label","legend","li","link","map","meta","noscript","object","ol","optgroup","option","p","param","pre","q","samp","script","select","small","span","strong","style","sub","sup","table","tbody","td","textarea","tfoot","th","thead","title","tr","tt","ul"],h=["area","base","basefont","br","col","frame","hr","img","input","link","meta","param"],i="<!DOCTYPE html>",j="",k="",l=1,m=[];a.getTags=function(){return Array.concat(g,h)},a.setOutputMode=function(a){!isNaN(a)&&a>=0&&3>a&&(l=a)},a.setTemplateDirs=function(b){b&&a.Utils.isArray(b)&&(m=b)},a.addTemplateDir=function(a){m.push(a)},a.elem=function(b){if(!a.Utils.isString(b))return null;var c={tag:b,toString:function(){return a.output(c)}};if(arguments.length>1)for(var d=1,e=arguments.length;e>d;++d){var f=arguments[d];a.Utils.isArray(f)?c.children=f:a.Utils.isObject(f)&&f.hasOwnProperty("tag")?(console.log("has tag property"),c.children=c.children||[],c.children.push(f)):a.Utils.isObject(f)&&f.tag&&f.toString?(console.log("is object but does not have tag"),c.children=[f]):a.Utils.isObject(f)?c.attributes=f:a.Utils.isString(f)&&(c.text=f)}return c},a.elems={};for(var n=g.length;n--;)a.elems[g[n]]=b(g[n]);return a.output=function(a,b){var e=b||l;return 0===e?c(a):2===e?(j=" ",k="\n",d(a)):(j="",k="",d(a))},a.getTemplate=function(a){if(f[a])return f[a];for(var b=m.length;b--;){var c=m[b]+"/"+a;if(e.existsSync(c)){a=c;break}}return require(a)},a.templateToString=function(b){return a.Utils.isString(b)?b:a.Utils.isArray(b)?a.naked(b).toString():b.toString()},a.template=function(b){return function(c){var d=a.getTemplate(b)(c);return a.templateToString(d,c)}},a.render=function(b,c){return a.template(b)(c)},a.extends=function(b,c,d){return d&&a.Utils.isObject(d)&&a.Utils.extend(f,d),a.render(b,c)},a.extension=function(a){return f[a]},a.addShortcutsToScope=function(b){var c;for(c in a.elems)b[c]=a.elems[c];for(c in a.plugins)b[c]=a.plugins[c]},a.naked=function(b,c){return a.elem("",b,c)},a.init=function(b){a.Utils.extend(a,b)},a},"object"==typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):this.Jeff=b}).call(this);
(function(){var a={};a.VERSION="0.2.0",a.plugins={},a.registerPlugin=function(b,c){b&&c&&b.length>0&&(a.plugins[b]=c)},a.registerPlugin("each",function(a,b){for(var c=[],d=0,e=a.length;e>d;++d)c.push(b(a[d]));return c}),a.Utils={extend:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a},inArray:function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},isArray:function(a){return a&&"object"==typeof a?"[object Array]"===toString.call(a):!1},isObject:function(a){return a&&"object"==typeof a?"[object Object]"===toString.call(a):!1},isEmptyObject:function(a){if(null===a)return!0;if(a.length&&a.length>0)return!1;if(0===a.length)return!0;for(var b in a)if(hasOwnProperty.call(a,b))return!1;return!0},isString:function(a){return"string"==typeof a||a instanceof String}},exports.attach=function(a){function b(b){return function(){return[].unshift.call(arguments,b),a.elem.apply(this,arguments)}}function c(a,b){var c=b||l;return 0===c?d(a):2===c?(j=" ",k="\n",e(a)):(j="",k="",e(a))}function d(){}function e(b,c){if(b){if(a.Utils.isString(b))return b;var d,f,g="",l=0;if(j&&j.length>0){var m=[];for(c&&(l=c),d=l;d--;)m.push(j);g=m.join("")}var n=[];if(b.tag&&"html"===b.tag&&n.push(g,i,k),b.tag&&n.push(g,"<",b.tag),b.attributes)for(var o in b.attributes)n.push(" ",o,'="',b.attributes[o],'"');if(!b.tag||b.children||b.text){if(b.tag&&n.push(">"),b.children){for(b.tag&&n.push(k),d=0,f=b.children.length;f>d;++d)n.push(e(b.children[d],b.tag?l+1:l));b.tag&&n.push(g)}b.text&&n.push(b.text),b.tag&&n.push("</",b.tag,">",k)}else a.Utils.inArray(h,b.tag)?n.push("/>",k):n.push("></",b.tag,">",k);return n.join("")}}var f={};a.getTemplateByName=function(a){return f[a]};var g=["a","iframe","abbr","acronym","address","area","b","base","bdo","big","blockquote","body","br","button","caption","cite","code","col","colgroup","dd","del","dfn","div","dl","dt","em","fieldset","form","h1","h2","h3","h4","h5","h6","head","html","hr","i","img","input","ins","kbd","label","legend","li","link","map","meta","noscript","object","ol","optgroup","option","p","param","pre","q","samp","script","select","small","span","strong","style","sub","sup","table","tbody","td","textarea","tfoot","th","thead","title","tr","tt","ul"],h=["area","base","basefont","br","col","frame","hr","img","input","link","meta","param"],i="<!DOCTYPE html>",j="",k="",l=1,m=[];a.setOutputMode=function(a){!isNaN(a)&&a>=0&&3>a&&(l=a)},a.setTemplateDirs=function(b){b&&a.Utils.isArray(b)&&(m=b)},a.addTemplateDir=function(a){m.push(a)},a.elem=function(b){if(!a.Utils.isString(b))return null;var d={tag:b,render:function(){return c(d)}};if(arguments.length>1)for(var e=1,f=arguments.length;f>e;++e)a.Utils.isArray(arguments[e])?d.children=arguments[e]:a.Utils.isObject(arguments[e])?d.attributes=arguments[e]:a.Utils.isString(arguments[e])&&(d.text=arguments[e]);return c(d)},a.elems={};for(var n=g.length;n--;)a.elems[g[n]]=b(g[n]);return a.template=function(a){var b=require("fs");if(b&&m.length>0)for(var c=m.length;c--;){var d=m[c]+"/"+a;if(b.existsSync(d))return require(d)}return require(a)},a.extends=function(b,c,d){return d&&a.Utils.isObject(d)&&a.Utils.extend(f,d),a.template(b)(c)},a.extension=function(a){return f[a]},a.addShortcutsToScope=function(b){var c;for(c in a.elems)b[c]=a.elems[c];for(c in a.plugins)b[c]=a.plugins[c]},a.naked=function(b,c){return a.elem("",b,c)},a},"object"==typeof module&&module.exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):this.Jeff=a}).call(this);

@@ -231,2 +231,4 @@ exports.attach = function(Jeff) {

}
scope['elem'] = Jeff.elem;
};

@@ -233,0 +235,0 @@

@@ -5,3 +5,3 @@

"description": "JSON-based HTML templating engine",
"version": "0.1.11",
"version": "0.1.12",
"homepage": "http://jeffjs.com",

@@ -8,0 +8,0 @@ "author": "Christian Allen <christian@gethuman.com>",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc