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.4 to 0.1.9

lib/jeff/plugins.js

84

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

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

});
Jeff.registerPlugin("jif", function(condition, elem) {
return condition ? elem : '';
});
Jeff.registerPlugin("jtrunc", function (str, len) {
if (!str || str.length < len) {
return str;
}
else {
return str.substring(0, len) + '...';
}
});
;

@@ -118,3 +105,3 @@ // lib/jeff/utils.js

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

@@ -145,6 +132,2 @@

Jeff.getTags = function () {
return Array.concat(allTags, selfClosing);
};
Jeff.setOutputMode = function(mode) {

@@ -167,6 +150,4 @@ 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, render: 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 ) {

@@ -183,3 +164,3 @@ for ( var i = 1, len = arguments.length; i < len; ++i ) {

}
return Jeff.output(e);
return output(e);
};

@@ -195,6 +176,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;
}

@@ -205,8 +208,4 @@

if ( !elem ) {
return;
}
if ( Jeff.Utils.isString(elem) ) {
return elem;
}
if ( !elem ) return;
if ( Jeff.Utils.isString(elem) ) return elem;

@@ -271,25 +270,2 @@ var indent = "", indentation = 0, i, len;

// 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.template = function(path) {

@@ -296,0 +272,0 @@ var fs = require("fs");

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

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

*/
(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.registerPlugin("jif",function(a,b){return a?b:""}),a.registerPlugin("jtrunc",function(a,b){return!a||a.length<b?a:a.substring(0,b)+"..."}),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){return a}function d(b,c){if(b){if(a.Utils.isString(b))return b;var e,f,k="",l=0;if(i&&i.length>0){var m=[];for(c&&(l=c),e=l;e--;)m.push(i);k=m.join("")}var n=[];if(b.tag&&"html"===b.tag&&n.push(k,h,j),b.tag&&n.push(k,"<",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(j),e=0,f=b.children.length;f>e;++e)n.push(d(b.children[e],b.tag?l+1:l));b.tag&&n.push(k)}b.text&&n.push(b.text),b.tag&&n.push("</",b.tag,">",j)}else a.Utils.inArray(g,b.tag)?n.push("/>",j):n.push("></",b.tag,">",j);return n.join("")}}var e={};a.getTemplateByName=function(a){return e[a]};var f=["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"],g=["area","base","basefont","br","col","frame","hr","img","input","link","meta","param"],h="<!DOCTYPE html>",i="",j="",k=1,l=[];a.getTags=function(){return Array.concat(f,g)},a.setOutputMode=function(a){!isNaN(a)&&a>=0&&3>a&&(k=a)},a.setTemplateDirs=function(b){b&&a.Utils.isArray(b)&&(l=b)},a.addTemplateDir=function(a){l.push(a)},a.elem=function(b){if(!a.Utils.isString(b))return null;var c={tag:b,render:function(){return a.output(c)}};if(arguments.length>1)for(var d=1,e=arguments.length;e>d;++d)a.Utils.isArray(arguments[d])?c.children=arguments[d]:a.Utils.isObject(arguments[d])?c.attributes=arguments[d]:a.Utils.isString(arguments[d])&&(c.text=arguments[d]);return a.output(c)},a.elems={};for(var m=f.length;m--;)a.elems[f[m]]=b(f[m]);return a.output=function(a,b){var e=b||k;return 0===e?c(a):2===e?(i=" ",j="\n",d(a)):(i="",j="",d(a))},a.template=function(a){var b=require("fs");if(b&&l.length>0)for(var c=l.length;c--;){var d=l[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(e,d),a.template(b)(c)},a.extension=function(a){return e[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);
(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);

@@ -5,2 +5,3 @@ /*global Jeff: true */

utils = require("./jeff/utils"),
plugins = require("./jeff/plugins"),
runtime = require("./jeff/runtime");

@@ -12,2 +13,3 @@

utils.attach(j);
plugins.attach(j);
runtime.attach(j);

@@ -14,0 +16,0 @@

@@ -11,32 +11,3 @@ module.exports.create = function() {

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;
});
Jeff.registerPlugin("jif", function(condition, elem) {
return condition ? elem : '';
});
Jeff.registerPlugin("jtrunc", function (str, len) {
if (!str || str.length < len) {
return str;
}
else {
return str.substring(0, len) + '...';
}
});
// END(BROWSER)
return Jeff;
};

@@ -5,2 +5,3 @@ exports.attach = function(Jeff) {

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

@@ -19,3 +20,3 @@

var jtPrintNewline = "";
var outputMode = 1; // 0 = toDom, 1 = toString, 2 = toStringPretty
var outputMode = 1; // 0 = leaveAlone, 1 = toString, 2 = toStringPretty, 3 = toDom
var templateDirs = [];

@@ -47,15 +48,18 @@

}
var e = { tag: tagName, render: function() { return Jeff.output(e); } };
var e = { tag: tagName, toString: function() { return Jeff.output(e); } };
if ( arguments.length > 1 ) {
for ( var i = 1, len = arguments.length; i < len; ++i ) {
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];
var arg = arguments[i];
if ( Jeff.Utils.isArray(arg) ) {
e.children = arg;
} else if ( Jeff.Utils.isObject(arg) && arg.tag && arg.toString ) {
e.children = [arg];
} else if ( Jeff.Utils.isObject(arg) ) {
e.attributes = arg;
} else if ( Jeff.Utils.isString(arg) ) {
e.text = arg;
}
}
}
return Jeff.output(e);
return e;
};

@@ -79,2 +83,3 @@

function markupToString(elem, ind) {
//console.log('printing: ' + JSON.stringify(elem));

@@ -109,9 +114,15 @@ if ( !elem ) {

//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 ) {
p.push(" ", prop, "=\"", elem.attributes[prop], "\"");
if ( elem.attributes[prop] === null ) {
p.push(" ", prop);
} else {
p.push(" ", prop, "=\"", elem.attributes[prop], "\"");
}
}
}
if ( elem.tag && !elem.children && !elem.text ) {
if ( Jeff.Utils.inArray(selfClosing, elem.tag) ) {
if ( selfClosing.indexOf(elem.tag) > -1 ) {
p.push("/>", jtPrintNewline);

@@ -170,17 +181,33 @@ } else {

Jeff.template = function(path) {
var fs = require("fs");
if ( fs && templateDirs.length > 0 ) {
Jeff.getTemplate = function(path) {
if ( namedTemplates[path] ) {
return namedTemplates[path];
} else {
var i = templateDirs.length;
while( i-- ) {
var fullpath = templateDirs[i] + "/" + path;
//console.log("trying " + fullpath);
if ( fs.existsSync(fullpath) ) {
return require(fullpath);
path = fullpath;
break;
}
}
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) {

@@ -190,3 +217,3 @@ if ( subTemplates && Jeff.Utils.isObject(subTemplates) ) {

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

@@ -214,4 +241,8 @@

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

@@ -8,19 +8,65 @@ exports.attach = function(Jeff) {

Jeff.Utils = {
extend: function(obj, value) {
for(var key in value) {
if(value.hasOwnProperty(key)) {
obj[key] = value[key];
}
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++;
}
return obj;
},
inArray: function(arr, obj) {
var i = arr.length;
while (i--) {
if (arr[i] === obj) {
return true;
// 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;
}
}
}
}
return false;
// Return the modified object
return target;
},

@@ -36,2 +82,6 @@

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

@@ -38,0 +88,0 @@

@@ -0,5 +1,6 @@

{
"name": "jeff-core",
"description": "JSON-based HTML templating engine",
"version": "0.1.4",
"version": "0.1.9",
"homepage": "http://jeffjs.com",

@@ -26,3 +27,3 @@ "author": "Christian Allen <christian@gethuman.com>",

"type": "git",
"url": "git://github.com/gethuman/jeff.js.git"
"url": "git://github.com/gethuman/jeff-core.git"
},

@@ -29,0 +30,0 @@ "engines": {

@@ -6,4 +6,5 @@ global.should = require('should');

var testDir = path.dirname(__dirname);
var template = Jeff.template(testDir + "/" + filepath);
var result = template(model);
//var template = Jeff.template(testDir + "/" + filepath);
//var result = template(model).toString();
var result = Jeff.render(testDir + '/' + filepath, model);
result.should.equal(expected, "'" + expected + "' should === '" + result + "': " + message);

@@ -10,0 +11,0 @@ };

@@ -43,3 +43,3 @@ describe("easy stuff", function() {

}
return Jeff.elem("nav", {class: "navbar"}, [Jeff.elems.ol(navItems)])
return Jeff.elem("nav", {class: "navbar"}, [Jeff.elems.ol(navItems)]);
}

@@ -46,0 +46,0 @@ });

@@ -10,3 +10,3 @@ module.exports = function(model){

p("I am a section called " + model.foo),
p(require("./partial.js")(model))
p(Jeff.render("./partial.js", model))
])

@@ -13,0 +13,0 @@ ])

@@ -6,3 +6,3 @@ module.exports = function(model) {

p("I am a section called " + model.foo),
p(Jeff.template("partial.js")(model))
p(Jeff.render("partial.js", model))
]),

@@ -9,0 +9,0 @@ "rightNavigation": ol([

module.exports = function(model) {
return ol(each(model.tweets, function(model) {
return ol(jeach(model.tweets, function(model) {
return li([

@@ -4,0 +4,0 @@ h1(model.title),

@@ -6,8 +6,2 @@ module.exports = function(model) {

]);
/*
"a[href=/]": "Home",
"div": bootstrap.nav(["Home","About","Contact"])
}
}
*/
};
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