Created
June 24, 2017 21:56
-
-
Save guzmonne/8ed45fdf76cfd418b3da9f3b58532d0b to your computer and use it in GitHub Desktop.
cognito-auth.utils.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(win){ | |
// Simple JavaScript Templating | |
// John Resig - https://johnresig.com/ - MIT Licensed | |
// https://johnresig.com/blog/javascript-micro-templating/ | |
// | |
// There are some minor modification done by me. | |
var cache = {}; | |
function tmpl(str, data){ | |
var fn; | |
// Figure out if we're getting a template, or if we need to | |
// load the template - and be sure to cache the result. | |
if (!/\W/.test(str)) { | |
fn = cache[str] = cache[str] || tmpl( | |
document.getElementById(str).innerHTML | |
) | |
} else { | |
// Generate a reusable function that will serve as a template | |
// generator (and which will be cached). | |
fn = new Function("obj", | |
"var p=[],print=function(){p.push.apply(p,arguments);};" + | |
// Introduce the data as local variables using with(){} | |
"with(obj){p.push('" + | |
// Convert the template into pure JavaScript | |
str | |
.replace(/[\r\t\n]/g, " ") | |
.split("<%").join("\t") | |
.replace(/((^|%>)[^\t]*)'/g, "$1\r") | |
.replace(/\t=(.*?)%>/g, "',$1,'") | |
.split("\t").join("');") | |
.split("%>").join("p.push('") | |
.split("\r").join("\\'") | |
+ "');}return p.join('');"); | |
} | |
// Provide some basic currying to the user | |
return data ? fn(data) : fn; | |
}; | |
function ready(fn) { | |
if (document.attachEvent | |
? document.readyState === "complete" | |
: document.readyState !== "loading" | |
){ | |
fn(); | |
} else { | |
document.addEventListener('DOMContentLoaded', fn); | |
} | |
} | |
// Save as global function | |
window.tmpl = tmpl | |
window.ready = ready | |
})(window); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment