albio
Advanced tools
Comparing version 1.0.48 to 1.0.49
27
index.js
@@ -14,15 +14,10 @@ 'use strict'; | ||
function $$checkDirtyDeps(dirt, deps) { | ||
if (!dirt.size) return false; | ||
return [...dirt].some((key) => deps.indexOf(key) > -1); | ||
} | ||
let update_scheduled = false; | ||
const resolved_promise = Promise.resolve(); | ||
const workQueue = []; | ||
const resolved_promise = Promise.resolve(); | ||
function scheduleUpdate(update) { | ||
workQueue.push(update); | ||
if (!update_scheduled) { | ||
update_scheduled = true; | ||
workQueue.push(update); | ||
resolved_promise.then(flush); | ||
@@ -33,3 +28,3 @@ } | ||
function flush() { | ||
while (workQueue.length > 0) { | ||
while (workQueue.length) { | ||
const work = workQueue.shift(); | ||
@@ -43,17 +38,21 @@ if (work) work(); | ||
dirty, | ||
names, | ||
toDirty, | ||
ret, | ||
update, | ||
) { | ||
const toDirty = names.split(','); | ||
toDirty.forEach((name) => dirty.add(name)); | ||
scheduleUpdate(() => { | ||
return update(dirty); | ||
toDirty.forEach((i) => { | ||
if (dirty[(i / 31) | 0] === -1) { | ||
scheduleUpdate(() => { | ||
return update(dirty); | ||
}); | ||
dirty.fill(0); | ||
} | ||
dirty[(i / 31) | 0] |= 1 << i % 31; | ||
}); | ||
return ret; | ||
} | ||
exports.$$checkDirtyDeps = $$checkDirtyDeps; | ||
exports.$$invalidate = $$invalidate; | ||
exports.$$setData = $$setData; | ||
exports.$$text = $$text; |
@@ -18,15 +18,10 @@ 'use strict'; | ||
function $$checkDirtyDeps(dirt, deps) { | ||
if (!dirt.size) return false; | ||
return [...dirt].some((key) => deps.indexOf(key) > -1); | ||
} | ||
let update_scheduled = false; | ||
const resolved_promise = Promise.resolve(); | ||
const workQueue = []; | ||
const resolved_promise = Promise.resolve(); | ||
function scheduleUpdate(update) { | ||
workQueue.push(update); | ||
if (!update_scheduled) { | ||
update_scheduled = true; | ||
workQueue.push(update); | ||
resolved_promise.then(flush); | ||
@@ -37,3 +32,3 @@ } | ||
function flush() { | ||
while (workQueue.length > 0) { | ||
while (workQueue.length) { | ||
const work = workQueue.shift(); | ||
@@ -47,15 +42,19 @@ if (work) work(); | ||
dirty, | ||
names, | ||
toDirty, | ||
ret, | ||
update, | ||
) { | ||
const toDirty = names.split(','); | ||
toDirty.forEach((name) => dirty.add(name)); | ||
scheduleUpdate(() => { | ||
return update(dirty); | ||
toDirty.forEach((i) => { | ||
if (dirty[(i / 31) | 0] === -1) { | ||
scheduleUpdate(() => { | ||
return update(dirty); | ||
}); | ||
dirty.fill(0); | ||
} | ||
dirty[(i / 31) | 0] |= 1 << i % 31; | ||
}); | ||
return ret; | ||
} | ||
exports.$$checkDirtyDeps = $$checkDirtyDeps; | ||
exports.$$element = $$element; | ||
@@ -62,0 +61,0 @@ exports.$$invalidate = $$invalidate; |
{ | ||
"name": "albio", | ||
"version": "1.0.48", | ||
"version": "1.0.49", | ||
"description": "๐ Tiny compiler-powered reactivity library for sensible web apps", | ||
@@ -5,0 +5,0 @@ "main": "index", |
@@ -10,3 +10,3 @@ import { Node } from 'estree'; | ||
constructor(block: Block); | ||
abstract render(): Node; | ||
abstract render(...args: any): Node; | ||
} |
@@ -0,1 +1,2 @@ | ||
import { Expression } from 'estree'; | ||
import { ASTNode, Binding, Listener } from '../interfaces'; | ||
@@ -12,2 +13,3 @@ import { CompilerParams } from '../interfaces'; | ||
abstract populateDeps(...args: any): void; | ||
dirty(names: string[], props: string[]): Expression; | ||
} |
@@ -11,5 +11,7 @@ import { ASTNode, Binding, EachBlock, IterableKey } from '../interfaces'; | ||
create_func_name: string; | ||
block_arr_length: string; | ||
unique_deps: string[]; | ||
}; | ||
constructor(block: EachBlock); | ||
render_each_for(node: Node | Node[]): Node[]; | ||
render_each_for(reset: boolean, node: Node | Node[]): Node[]; | ||
render_each_populate(): Node; | ||
@@ -19,5 +21,87 @@ render_each_create(): Node; | ||
render_each_update(nodes: ASTNode[], identifiers: string[]): Node[]; | ||
render_each_detach(): (import("estree").Identifier & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").SimpleLiteral & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").RegExpLiteral & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").BigIntLiteral & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").FunctionExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ArrowFunctionExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ThisExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ArrayExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ObjectExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").YieldExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").UnaryExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").UpdateExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").BinaryExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").AssignmentExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").LogicalExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").MemberExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ConditionalExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").SimpleCallExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").NewExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").SequenceExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").TemplateLiteral & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").TaggedTemplateExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ClassExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").MetaProperty & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").AwaitExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ImportExpression & { | ||
start: number; | ||
end: number; | ||
}) | (import("estree").ChainExpression & { | ||
start: number; | ||
end: number; | ||
}); | ||
render_each_current(): Node; | ||
render(): Node; | ||
render(props: string[]): Node; | ||
populateDeps(bindings: Binding[], keys: IterableKey[], iterable: string): void; | ||
} |
@@ -5,1 +5,3 @@ export * from './parse/index'; | ||
export { type ChildNode, type ParentNode, Element, Text, Comment } from 'domhandler'; | ||
export * from "./interfaces" |
@@ -1,1 +0,1 @@ | ||
export { $$invalidate, $$text, $$setData, $$checkDirtyDeps } from './internal/index'; | ||
export { $$invalidate, $$text, $$setData } from './internal/index'; |
export declare function $$element(node: any): any; | ||
export declare function $$setData(text: Text, data: any): void; | ||
export declare function $$text(data: any): Text; | ||
export declare function $$checkDirtyDeps(dirt: Set<string>, deps: string[]): boolean; |
@@ -1,1 +0,1 @@ | ||
export declare function $$invalidate(dirty: Set<string>, names: string, ret: any, update: (...args: any) => void): any; | ||
export declare function $$invalidate(dirty: number[], toDirty: number[], ret: any, update: (...args: any) => void): any; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
3863288
33123
32