@vielzeug/ripple 2.2.4 → 3.0.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/README.md +10 -32
- package/dist/_async.cjs +1 -1
- package/dist/_async.cjs.map +1 -1
- package/dist/_async.d.ts.map +1 -1
- package/dist/_async.js +33 -34
- package/dist/_async.js.map +1 -1
- package/dist/_default.cjs +1 -1
- package/dist/_default.cjs.map +1 -1
- package/dist/_default.d.ts +19 -8
- package/dist/_default.d.ts.map +1 -1
- package/dist/_default.js +22 -15
- package/dist/_default.js.map +1 -1
- package/dist/_subscribable.cjs +2 -0
- package/dist/_subscribable.cjs.map +1 -0
- package/dist/_subscribable.d.ts +17 -0
- package/dist/_subscribable.d.ts.map +1 -0
- package/dist/_subscribable.js +46 -0
- package/dist/_subscribable.js.map +1 -0
- package/dist/_watch.cjs +1 -1
- package/dist/_watch.cjs.map +1 -1
- package/dist/_watch.d.ts +1 -0
- package/dist/_watch.d.ts.map +1 -1
- package/dist/_watch.js +14 -5
- package/dist/_watch.js.map +1 -1
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +8 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +14 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/ripple.cjs +1 -1
- package/dist/ripple.cjs.map +1 -1
- package/dist/ripple.iife.js +1 -1
- package/dist/ripple.iife.js.map +1 -1
- package/dist/ripple.js +1 -1
- package/dist/ripple.js.map +1 -1
- package/dist/runtime.cjs +1 -1
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.d.ts +19 -7
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +79 -45
- package/dist/runtime.js.map +1 -1
- package/dist/types.d.ts +34 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -8
package/dist/types.d.ts
CHANGED
|
@@ -33,29 +33,50 @@ export type EffectHandle = Disposable;
|
|
|
33
33
|
export interface Scope extends Disposable {
|
|
34
34
|
run<T>(fn: () => T): T;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Structural contract for external state sources that expose a snapshot and a
|
|
38
|
+
* subscription pair — the same shape React's `useSyncExternalStore` consumes.
|
|
39
|
+
* Packages can implement this without importing Ripple; `fromSubscribable()`
|
|
40
|
+
* bridges them into a reactive graph.
|
|
41
|
+
*/
|
|
42
|
+
export interface Subscribable<T> {
|
|
43
|
+
getSnapshot(): T;
|
|
44
|
+
subscribe(listener: () => void): Unsubscribe;
|
|
45
|
+
}
|
|
46
|
+
export type RippleErrorContext = {
|
|
47
|
+
readonly kind: 'cleanup' | 'computed' | 'effect' | 'listener';
|
|
48
|
+
readonly name?: string;
|
|
49
|
+
};
|
|
50
|
+
export type RippleEvent = {
|
|
51
|
+
readonly type: 'compute';
|
|
38
52
|
readonly name?: string;
|
|
39
53
|
} | {
|
|
40
|
-
readonly
|
|
54
|
+
readonly type: 'effect';
|
|
41
55
|
readonly name?: string;
|
|
42
56
|
} | {
|
|
43
|
-
readonly
|
|
57
|
+
readonly type: 'write';
|
|
44
58
|
readonly name?: string;
|
|
45
59
|
readonly next: unknown;
|
|
46
60
|
readonly previous: unknown;
|
|
47
61
|
} | {
|
|
48
|
-
readonly
|
|
49
|
-
readonly name?: string;
|
|
50
|
-
readonly node: 'effect' | 'scope';
|
|
51
|
-
};
|
|
52
|
-
export type ReactiveObserver = (event: ReactiveEvent) => void;
|
|
53
|
-
export type ReactiveErrorContext = {
|
|
54
|
-
readonly kind: 'cleanup' | 'effect' | 'listener' | 'observer';
|
|
62
|
+
readonly type: 'dispose';
|
|
55
63
|
readonly name?: string;
|
|
64
|
+
readonly node: 'effect' | 'graph' | 'scope';
|
|
65
|
+
} | {
|
|
66
|
+
readonly type: 'error';
|
|
67
|
+
readonly error: unknown;
|
|
68
|
+
readonly context: RippleErrorContext;
|
|
56
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Deterministic error policy for runtime callback, cleanup, and listener
|
|
72
|
+
* failures. Error events are always emitted through `tap()` regardless of
|
|
73
|
+
* policy — this controls only whether failures also rethrow.
|
|
74
|
+
*
|
|
75
|
+
* - `'throw'` (default): rethrows the error asynchronously via `queueMicrotask`.
|
|
76
|
+
* - `'swallow'`: silences rethrow; observe failures only through `tap()`.
|
|
77
|
+
*/
|
|
78
|
+
export type RippleErrorPolicy = 'throw' | 'swallow';
|
|
57
79
|
export type RippleOptions = {
|
|
58
|
-
|
|
59
|
-
onError?: (error: unknown, context: ReactiveErrorContext) => void;
|
|
80
|
+
errorPolicy?: RippleErrorPolicy;
|
|
60
81
|
};
|
|
61
82
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;AACjC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,IAAI,CAAC,CAAC;IACV,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AAEtC,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vielzeug/ripple",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Fine-grained reactive
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Fine-grained reactive graphs with signals, effects, resources, scopes, and structural bridges",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/helmuthdu/vielzeug",
|
|
@@ -30,19 +30,20 @@
|
|
|
30
30
|
"registry": "https://registry.npmjs.org/"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "vite build && pnpm run build:bundle && pnpm run build:types",
|
|
33
|
+
"build": "vite build && pnpm --silent run build:bundle && pnpm --silent run build:types && pnpm --silent run verify:exports",
|
|
34
34
|
"build:bundle": "vite build --config vite.bundle.config.ts",
|
|
35
35
|
"build:types": "tsc -p tsconfig.declarations.json",
|
|
36
36
|
"fix": "biome check --write src",
|
|
37
37
|
"lint": "biome ci src",
|
|
38
|
-
"prepublishOnly": "pnpm run build",
|
|
38
|
+
"prepublishOnly": "pnpm --silent run build",
|
|
39
39
|
"preview": "vite preview",
|
|
40
|
-
"test": "vitest"
|
|
40
|
+
"test": "vitest",
|
|
41
|
+
"verify:exports": "node verify-exports.mjs"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@types/node": "^26.
|
|
44
|
+
"@types/node": "^26.4.1",
|
|
44
45
|
"typescript": "^6.0.3",
|
|
45
|
-
"vite": "^8.2.
|
|
46
|
-
"vitest": "^
|
|
46
|
+
"vite": "^8.2.2",
|
|
47
|
+
"vitest": "^5.0.0"
|
|
47
48
|
}
|
|
48
49
|
}
|