Skip to content

Instantly share code, notes, and snippets.

View alexzuza's full-sized avatar
🎯
Focusing

Alexey Zuev alexzuza

🎯
Focusing
View GitHub Profile
@alexzuza
alexzuza / idom.text.js
Created April 1, 2018 14:49
IDOM text
function text(value) {
nextNode();
const node = renderDOM('#text');
// update
// checks for text updates
const data = getData(node);
if (data.text !== value) {
data.text = (value);
node.data = value;
@alexzuza
alexzuza / idom.match.js
Last active April 1, 2018 14:46
IDOM match
const matches = function(matchNode, name/*, key */) {
const data = getData(matchNode);
return name === data.name // && key === data.key;
};
function renderDOM(name) {
if (currentNode && matches(currentNode, name/*, key */)) {
return currentNode;
}
@alexzuza
alexzuza / idom.data.js
Last active April 4, 2018 20:26
IDOM data
const NODE_DATA_KEY = '__ID_Data__';
class NodeData {
// key
// attrs
constructor(name) {
this.name = name;
this.text = null;
}
function renderDOM(name) {
const node = name === '#text' ?
document.createTextNode('') :
document.createElement(name);
currentParent.insertBefore(node, currentNode);
currentNode = node;
return node;
// The current nodes being processed
let currentNode = null;
let currentParent = null;
function enterNode() {
currentParent = currentNode;
currentNode = null;
}
function nextNode() {
currentNode = currentNode ?
@alexzuza
alexzuza / ve.2-6.ts
Last active April 1, 2018 07:30
ViewEngine2-6
(function anonymous(jit_StaticNodeDebugInfo0,jit_createRenderComponentType1,
jit_22,jit_DebugAppView3,jit_14,jit_CD_INIT_VALUE5,
jit_createRenderElement6,jit__object_Object_7,jit_inlineInterpolate8,jit_checkBinding9
) {
var styles_App = [];
var nodeDebugInfos_App0 = [
new jit_StaticNodeDebugInfo0([],null,{}),
new jit_StaticNodeDebugInfo0([],null,{}),
new jit_StaticNodeDebugInfo0([],null,{}),
new jit_StaticNodeDebugInfo0([],null,{}),
@alexzuza
alexzuza / di_merge_injector_console.ts
Created March 20, 2018 20:39
DI merge injector console
ng.probe($0).injector
ng.probe($0).injector.elDef.element
@alexzuza
alexzuza / di_injection_token_new_api_example.ts
Created March 20, 2018 19:07
DI injection token new api example
export const apiUrl = new InjectionToken('tree-shakeable apiUrl token', {
providedIn: 'root',
factory: () => 'someUrl'
});
@alexzuza
alexzuza / di_injection_token_new_api.ts
Created March 20, 2018 19:06
DI injection token new api
export class InjectionToken<T> {
constructor(protected _desc: string, options?: {
providedIn?: Type<any>| 'root' | null,
factory: () => T
}) {}
}