made with requirebin
Created
September 28, 2017 20:14
-
-
Save jongacnik/3ce977e66352a89bd241a399dda54203 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or 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
var pelo = require('pelo') | |
var el = pelo`<div ${{ className: 'boop', style: 'color:red' }}>beep</div>` | |
document.write(el) |
This file contains hidden or 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
setTimeout(function(){ | |
;require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | |
},{}],"pelo":[function(require,module,exports){ | |
'use strict' | |
const Module = require('module') | |
function handleValue (value) { | |
if (Array.isArray(value)) { | |
// Suppose that each item is a result of html``. | |
return value.join('') | |
} | |
// Ignore event handlers. | |
// onclick=${(e) => doSomething(e)} | |
// will become | |
// onclick="" | |
if (typeof value === 'function') { | |
return '""' | |
} | |
if (value === null || value === undefined) { | |
return '' | |
} | |
if (value.__encoded) { | |
return value | |
} | |
const str = value.toString() | |
return str | |
.replace(/&/g, '&') | |
.replace(/</g, '<') | |
.replace(/>/g, '>') | |
.replace(/"/g, '"') | |
.replace(/'/g, ''') | |
} | |
function stringify () { | |
const pieces = arguments[0] | |
let output = '' | |
for (let i = 0; i < pieces.length; i++) { | |
output += pieces[i] | |
if (i < pieces.length - 1) { | |
output += handleValue(arguments[i + 1]) | |
} | |
} | |
// HACK: Avoid double encoding by marking encoded string | |
// You cannot add properties to string literals | |
// eslint-disable-next-line no-new-wrappers | |
const wrapper = new String(output) | |
wrapper.__encoded = true | |
return wrapper | |
} | |
function replace(moduleId) { | |
const originalRequire = Module.prototype.require | |
Module.prototype.require = function (id) { | |
if (id === moduleId) { | |
return stringify | |
} else { | |
return originalRequire.apply(this, arguments) | |
} | |
} | |
} | |
stringify.replace = replace | |
module.exports = stringify | |
},{"module":1}]},{},[]) | |
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2hvbWUvYWRtaW4vYnJvd3NlcmlmeS1jZG4vbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcGFjay9fcHJlbHVkZS5qcyIsIi4uLy4uLy4uLy4uL2hvbWUvYWRtaW4vYnJvd3NlcmlmeS1jZG4vbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbGliL19lbXB0eS5qcyIsInBlbG8iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIiIsIid1c2Ugc3RyaWN0J1xuXG5jb25zdCBNb2R1bGUgPSByZXF1aXJlKCdtb2R1bGUnKVxuXG5mdW5jdGlvbiBoYW5kbGVWYWx1ZSAodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gU3VwcG9zZSB0aGF0IGVhY2ggaXRlbSBpcyBhIHJlc3VsdCBvZiBodG1sYGAuXG4gICAgcmV0dXJuIHZhbHVlLmpvaW4oJycpXG4gIH1cbiAgLy8gSWdub3JlIGV2ZW50IGhhbmRsZXJzLlxuICAvLyAgICAgb25jbGljaz0keyhlKSA9PiBkb1NvbWV0aGluZyhlKX1cbiAgLy8gd2lsbCBiZWNvbWVcbiAgLy8gICAgIG9uY2xpY2s9XCJcIlxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuICdcIlwiJ1xuICB9XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbiAgaWYgKHZhbHVlLl9fZW5jb2RlZCkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIGNvbnN0IHN0ciA9IHZhbHVlLnRvU3RyaW5nKClcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgLnJlcGxhY2UoLycvZywgJyYjMDM5OycpXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeSAoKSB7XG4gIGNvbnN0IHBpZWNlcyA9IGFyZ3VtZW50c1swXVxuICBsZXQgb3V0cHV0ID0gJydcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRwdXQgKz0gcGllY2VzW2ldXG4gICAgaWYgKGkgPCBwaWVjZXMubGVuZ3RoIC0gMSkge1xuICAgICAgb3V0cHV0ICs9IGhhbmRsZVZhbHVlKGFyZ3VtZW50c1tpICsgMV0pXG4gICAgfVxuICB9XG4gIC8vIEhBQ0s6IEF2b2lkIGRvdWJsZSBlbmNvZGluZyBieSBtYXJraW5nIGVuY29kZWQgc3RyaW5nXG4gIC8vIFlvdSBjYW5ub3QgYWRkIHByb3BlcnRpZXMgdG8gc3RyaW5nIGxpdGVyYWxzXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctd3JhcHBlcnNcbiAgY29uc3Qgd3JhcHBlciA9IG5ldyBTdHJpbmcob3V0cHV0KVxuICB3cmFwcGVyLl9fZW5jb2RlZCA9IHRydWVcbiAgcmV0dXJuIHdyYXBwZXJcbn1cblxuZnVuY3Rpb24gcmVwbGFjZShtb2R1bGVJZCkge1xuICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSBNb2R1bGUucHJvdG90eXBlLnJlcXVpcmVcbiAgTW9kdWxlLnByb3RvdHlwZS5yZXF1aXJlID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgaWYgKGlkID09PSBtb2R1bGVJZCkge1xuICAgICAgcmV0dXJuIHN0cmluZ2lmeVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWxSZXF1aXJlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbiAgICB9XG4gIH1cbn1cbnN0cmluZ2lmeS5yZXBsYWNlID0gcmVwbGFjZVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ2lmeVxuIl19 | |
var pelo = require('pelo') | |
var el = pelo`<div ${{ className: 'boop', style: 'color:red' }}>beep</div>` | |
document.write(el) | |
;}, 0) |
This file contains hidden or 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
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"pelo": "0.0.2" | |
} | |
} |
This file contains hidden or 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
<!-- contents of this file will be placed inside the <body> --> |
This file contains hidden or 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
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment