another_javascript_framework
Version:
html&javascript in one place
77 lines (71 loc) • 2.57 kB
JavaScript
;
//https://cdn.jsdelivr.net/npm/another_javascript_framework/dist/a_js_f.es5.min.js
var a_js_f = {
$: function $(context) {
var app = document.getElementById(context.element);
app.innerHTML = context.template;
if (context.mounted) context.mounted();
},
_: function _(element, context) {
var errors = ['\\(-_-)/ wow such error: ', 'MUST BE a function (that returns numbers or strings), numbers or strings', 'Don\'t use both render and $render'];
var finishedElement;
if (!context) {
finishedElement = '<' + element + ' />';
} else {
if (context === Object(context)) {
var finalAttrs = '';
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = Object.keys(context)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var key = _step.value;
if (key === 'render' || key === '$render') {
if (context.render && context.$render) {
console.error(errors[0] + errors[2]);
} else {
if (typeof key === 'string' || typeof key === 'number') {
finishedElement = '<' + element + ' ' + finalAttrs + '>' + context[key] + '</' + element + '>';
} else if (typeof key === 'function') {
finishedElement = '<' + element + ' ' + finalAttrs + '>' + context[key]() + '</' + element + '>';
} else {
console.error(errors[0] + 'Render ' + errors[1]);
}
}
} else {
if (typeof context[key] === 'number' || typeof context[key] === 'string') {
finalAttrs = finalAttrs + key + '="' + context[key] + '" ';
} else if (typeof context[key] === 'function') {
finalAttrs = finalAttrs + key + '="' + context[key]() + '" ';
} else {
console.error(errors[0] + 'Atributtes ' + errors[1]);
}
if (!context.render && !context.$render) {
finishedElement = '<' + element + ' ' + finalAttrs + '></' + element + '>';
}
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
} else {
finishedElement = '<' + element + '>' + context + '</' + element + '>';
}
}
return finishedElement;
}
};
//shorthands
var createElement = a_js_f._,
render = a_js_f.$;