@blu3ph4ntom/inval 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +431 -0
- package/dist/batch.d.ts +5 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/debug.d.ts +10 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/graph.d.ts +11 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/index.cjs +380 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +342 -0
- package/dist/inval.iife.js +367 -0
- package/dist/node.d.ts +4 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +64 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface InputNode<T = unknown> {
|
|
2
|
+
readonly kind: 'input';
|
|
3
|
+
readonly id: string;
|
|
4
|
+
get(): T;
|
|
5
|
+
set(value: T): void;
|
|
6
|
+
invalidate(): void;
|
|
7
|
+
isDirty(): boolean;
|
|
8
|
+
inspect(): InspectInfo<T>;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
_children: Set<ComputedNode>;
|
|
11
|
+
_value: T;
|
|
12
|
+
_dirty: boolean;
|
|
13
|
+
_disposed: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ComputedNode<T = unknown> {
|
|
16
|
+
readonly kind: 'computed';
|
|
17
|
+
readonly id: string;
|
|
18
|
+
get(): T;
|
|
19
|
+
invalidate(): void;
|
|
20
|
+
isDirty(): boolean;
|
|
21
|
+
inspect(): InspectInfo<T>;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
_parents: Node[];
|
|
24
|
+
_children: Set<ComputedNode>;
|
|
25
|
+
_compute: (deps: Record<string, unknown>) => T;
|
|
26
|
+
_depKeys: string[];
|
|
27
|
+
_depNodes: Node[];
|
|
28
|
+
_value: T | undefined;
|
|
29
|
+
_dirty: boolean;
|
|
30
|
+
_computeCount: number;
|
|
31
|
+
_disposed: boolean;
|
|
32
|
+
}
|
|
33
|
+
export type Node<T = unknown> = InputNode<T> | ComputedNode<T>;
|
|
34
|
+
export interface InspectInfo<T = unknown> {
|
|
35
|
+
id: string;
|
|
36
|
+
kind: 'input' | 'computed';
|
|
37
|
+
dirty: boolean;
|
|
38
|
+
lastValue: T | undefined;
|
|
39
|
+
computeCount: number;
|
|
40
|
+
depCount: number;
|
|
41
|
+
childCount: number;
|
|
42
|
+
}
|
|
43
|
+
export interface NodeOptions<T = unknown> {
|
|
44
|
+
dependsOn: Record<string, Node>;
|
|
45
|
+
compute: (deps: Record<string, unknown>) => T;
|
|
46
|
+
}
|
|
47
|
+
export type BatchFn = () => void;
|
|
48
|
+
export declare function generateId(): string;
|
|
49
|
+
export declare function resetIdCounter(): void;
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,GAAG,IAAI,CAAC,CAAA;IACR,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IACnB,UAAU,IAAI,IAAI,CAAA;IAClB,OAAO,IAAI,OAAO,CAAA;IAClB,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;IAC5B,MAAM,EAAE,CAAC,CAAA;IACT,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,GAAG,IAAI,CAAC,CAAA;IACR,UAAU,IAAI,IAAI,CAAA;IAClB,OAAO,IAAI,OAAO,CAAA;IAClB,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,IAAI,IAAI,CAAA;IACf,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChB,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,IAAI,EAAE,CAAA;IACjB,MAAM,EAAE,CAAC,GAAG,SAAS,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAE9D,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,CAAC,GAAG,SAAS,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CAC9C;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAA;AAIhC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blu3ph4ntom/inval",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Deterministic, incremental layout invalidation engine",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"unpkg": "./dist/inval.iife.js",
|
|
10
|
+
"jsdelivr": "./dist/inval.iife.js",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
16
|
+
},
|
|
17
|
+
"./iife": "./dist/inval.iife.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE",
|
|
23
|
+
"CHANGELOG.md"
|
|
24
|
+
],
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "bun run scripts/build.ts",
|
|
28
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
29
|
+
"test": "bun test",
|
|
30
|
+
"bench": "bun run bench/index.ts",
|
|
31
|
+
"bench:compare": "bun run bench/compare.ts",
|
|
32
|
+
"typecheck": "tsc --noEmit",
|
|
33
|
+
"prepublishOnly": "bun run typecheck && bun test && bun run build"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"layout",
|
|
37
|
+
"invalidation",
|
|
38
|
+
"dependency-graph",
|
|
39
|
+
"reactive",
|
|
40
|
+
"virtualization",
|
|
41
|
+
"deterministic",
|
|
42
|
+
"incremental",
|
|
43
|
+
"dag",
|
|
44
|
+
"computed",
|
|
45
|
+
"memoization"
|
|
46
|
+
],
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"esbuild": "^0.25.11",
|
|
50
|
+
"playwright": "^1.59.1",
|
|
51
|
+
"typescript": "^5.7.0"
|
|
52
|
+
},
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "https://github.com/blu3ph4ntom/inval.git"
|
|
56
|
+
},
|
|
57
|
+
"homepage": "https://github.com/blu3ph4ntom/inval#readme",
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/blu3ph4ntom/inval/issues"
|
|
60
|
+
},
|
|
61
|
+
"engines": {
|
|
62
|
+
"node": ">=18"
|
|
63
|
+
}
|
|
64
|
+
}
|