@signaltree/core 2.0.3 → 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 +175 -134
- package/fesm2022/signaltree-core.mjs +1 -1
- package/fesm2022/signaltree-core.mjs.map +1 -1
- package/index.d.ts +15 -8
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { WritableSignal, Signal } from '@angular/core';
|
|
2
2
|
|
|
3
|
+
type NotFn<T> = T extends (...args: unknown[]) => unknown ? never : T;
|
|
4
|
+
declare module '@angular/core' {
|
|
5
|
+
interface WritableSignal<T> {
|
|
6
|
+
(value: NotFn<T>): void;
|
|
7
|
+
(updater: (current: T) => T): void;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
3
10
|
type Primitive = string | number | boolean | null | undefined | bigint | symbol;
|
|
4
11
|
type BuiltInObject = Date | RegExp | ((...args: unknown[]) => unknown) | Map<unknown, unknown> | Set<unknown> | WeakMap<object, unknown> | WeakSet<object> | ArrayBuffer | DataView | Error | Promise<unknown> | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | URL | URLSearchParams | FormData | Blob | File | Headers | Request | Response | AbortController | AbortSignal;
|
|
5
12
|
interface NodeAccessor<T> {
|
|
@@ -7,9 +14,13 @@ interface NodeAccessor<T> {
|
|
|
7
14
|
(value: T): void;
|
|
8
15
|
(updater: (current: T) => T): void;
|
|
9
16
|
}
|
|
10
|
-
type
|
|
17
|
+
type AccessibleNode<T> = NodeAccessor<T> & TreeNode<T>;
|
|
18
|
+
type CallableWritableSignal<T> = WritableSignal<T> & {
|
|
19
|
+
(value: NotFn<T>): void;
|
|
20
|
+
(updater: (current: T) => T): void;
|
|
21
|
+
};
|
|
11
22
|
type TreeNode<T> = {
|
|
12
|
-
[K in keyof T]: T[K] extends readonly unknown[] ?
|
|
23
|
+
[K in keyof T]: T[K] extends readonly unknown[] ? CallableWritableSignal<T[K]> : T[K] extends object ? T[K] extends Signal<unknown> ? T[K] : T[K] extends BuiltInObject ? CallableWritableSignal<T[K]> : T[K] extends (...args: unknown[]) => unknown ? CallableWritableSignal<T[K]> : AccessibleNode<T[K]> : CallableWritableSignal<T[K]>;
|
|
13
24
|
};
|
|
14
25
|
type RemoveSignalMethods<T> = T extends infer U ? U : never;
|
|
15
26
|
interface EnhancerMeta {
|
|
@@ -142,10 +153,6 @@ declare function isAnySignal(value: unknown): boolean;
|
|
|
142
153
|
declare function parsePath(path: string): string[];
|
|
143
154
|
declare function composeEnhancers<T>(...enhancers: Array<(tree: T) => T>): (tree: T) => T;
|
|
144
155
|
declare function createLazySignalTree<T extends object>(obj: T, equalityFn: (a: unknown, b: unknown) => boolean, basePath?: string): TreeNode<T>;
|
|
145
|
-
declare function unwrap<T>(node: TreeNode<T>): T;
|
|
146
|
-
declare function unwrap<T>(node: NodeAccessor<T> & TreeNode<T>): T;
|
|
147
|
-
declare function unwrap<T>(node: NodeAccessor<T>): T;
|
|
148
|
-
declare function unwrap<T>(node: unknown): T;
|
|
149
156
|
|
|
150
157
|
declare function createEnhancer<I = unknown, O = unknown>(meta: EnhancerMeta, enhancerFn: (input: I) => O): EnhancerWithMeta<I, O>;
|
|
151
158
|
declare function resolveEnhancerOrder(enhancers: EnhancerWithMeta<unknown, unknown>[], availableCapabilities?: Set<string>, debugMode?: boolean): EnhancerWithMeta<unknown, unknown>[];
|
|
@@ -192,5 +199,5 @@ declare const SIGNAL_TREE_MESSAGES: Readonly<{
|
|
|
192
199
|
readonly SUBSCRIBE_NO_CONTEXT: "no angular context";
|
|
193
200
|
}>;
|
|
194
201
|
|
|
195
|
-
export { ENHANCER_META, SIGNAL_TREE_CONSTANTS, SIGNAL_TREE_MESSAGES, composeEnhancers, createEnhancer, createLazySignalTree, deepEqual, equal, isAnySignal, isBuiltInObject, isNodeAccessor, parsePath, resolveEnhancerOrder, signalTree
|
|
196
|
-
export type { AsyncAction, AsyncActionConfig, BuiltInObject, ChainResult, Enhancer, EnhancerMeta, EnhancerWithMeta, EntityHelpers, Middleware, PerformanceMetrics, Primitive, RemoveSignalMethods, SignalTree, TimeTravelEntry, TreeConfig, TreeNode, TreePreset, WithMethod };
|
|
202
|
+
export { ENHANCER_META, SIGNAL_TREE_CONSTANTS, SIGNAL_TREE_MESSAGES, composeEnhancers, createEnhancer, createLazySignalTree, deepEqual, equal, isAnySignal, isBuiltInObject, isNodeAccessor, parsePath, resolveEnhancerOrder, signalTree };
|
|
203
|
+
export type { AsyncAction, AsyncActionConfig, BuiltInObject, ChainResult, Enhancer, EnhancerMeta, EnhancerWithMeta, EntityHelpers, Middleware, NotFn, PerformanceMetrics, Primitive, RemoveSignalMethods, SignalTree, TimeTravelEntry, TreeConfig, TreeNode, TreePreset, WithMethod };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signaltree/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Lightweight, type-safe signal-based state management for Angular. Core package providing hierarchical signal trees, basic entity management, and async actions.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/core": "^20.1.0"
|