valtio-history 0.3.3 → 1.0.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/package.json +4 -4
- package/src/index.d.ts +5 -38
- package/src/index.js +3 -19
- package/src/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valtio-history",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-0",
|
|
4
4
|
"author": "Daishi Kato",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"valtio-utility"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"tslib": "^2.3
|
|
19
|
+
"tslib": "^2.6.3"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"valtio": ">=
|
|
22
|
+
"valtio": ">=2.0.0-rc.2"
|
|
23
23
|
},
|
|
24
24
|
"type": "module",
|
|
25
25
|
"main": "./src/index.js",
|
|
26
26
|
"typings": "./src/index.d.ts",
|
|
27
27
|
"module": "./src/index.js"
|
|
28
|
-
}
|
|
28
|
+
}
|
package/src/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Snapshot } from 'valtio/vanilla';
|
|
2
2
|
export type HistoryNode<T> = {
|
|
3
3
|
/**
|
|
4
4
|
* The snapshot being tracked
|
|
@@ -70,7 +70,7 @@ export declare function proxyWithHistory<V>(initialValue: V, options?: HistoryOp
|
|
|
70
70
|
* - history.wip: field for holding sandbox changes; used to avoid infinite loops<br>
|
|
71
71
|
*/
|
|
72
72
|
history: History<V> & {
|
|
73
|
-
$$
|
|
73
|
+
$$valtioSnapshot: History<V>;
|
|
74
74
|
};
|
|
75
75
|
/**
|
|
76
76
|
* get the date when a node was entered into history.
|
|
@@ -104,44 +104,11 @@ export declare function proxyWithHistory<V>(initialValue: V, options?: HistoryOp
|
|
|
104
104
|
* @param index
|
|
105
105
|
* @returns historyNode
|
|
106
106
|
*/
|
|
107
|
-
getNode: (index: number) =>
|
|
108
|
-
snapshot: V extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
109
|
-
$$valtioRef: true;
|
|
110
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? V : V extends Promise<unknown> ? Awaited<V> : V extends object ? { readonly [K in keyof V]: V[K] extends infer T ? T extends V[K] ? T extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
111
|
-
$$valtioRef: true;
|
|
112
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T : T extends Promise<unknown> ? Awaited<T> : T extends object ? { readonly [K_1 in keyof T]: T[K_1] extends infer T_1 ? T_1 extends T[K_1] ? T_1 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
113
|
-
$$valtioRef: true;
|
|
114
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_1 : T_1 extends Promise<unknown> ? Awaited<T_1> : T_1 extends object ? { readonly [K_2 in keyof T_1]: T_1[K_2] extends infer T_2 ? T_2 extends T_1[K_2] ? T_2 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
115
|
-
$$valtioRef: true;
|
|
116
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_2 : T_2 extends Promise<unknown> ? Awaited<T_2> : T_2 extends object ? { readonly [K_3 in keyof T_2]: T_2[K_3] extends infer T_3 ? T_3 extends T_2[K_3] ? T_3 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
117
|
-
$$valtioRef: true;
|
|
118
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_3 : T_3 extends Promise<unknown> ? Awaited<T_3> : T_3 extends object ? { readonly [K_4 in keyof T_3]: T_3[K_4] extends infer T_4 ? T_4 extends T_3[K_4] ? T_4 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
119
|
-
$$valtioRef: true;
|
|
120
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_4 : T_4 extends Promise<unknown> ? Awaited<T_4> : T_4 extends object ? { readonly [K_5 in keyof T_4]: T_4[K_5] extends infer T_5 ? T_5 extends T_4[K_5] ? T_5 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
121
|
-
$$valtioRef: true;
|
|
122
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_5 : T_5 extends Promise<unknown> ? Awaited<T_5> : T_5 extends object ? { readonly [K_6 in keyof T_5]: T_5[K_6] extends infer T_6 ? T_6 extends T_5[K_6] ? T_6 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
123
|
-
$$valtioRef: true;
|
|
124
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_6 : T_6 extends Promise<unknown> ? Awaited<T_6> : T_6 extends object ? { readonly [K_7 in keyof T_6]: T_6[K_7] extends infer T_7 ? T_7 extends T_6[K_7] ? T_7 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
125
|
-
$$valtioRef: true;
|
|
126
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_7 : T_7 extends Promise<unknown> ? Awaited<T_7> : T_7 extends object ? { readonly [K_8 in keyof T_7]: T_7[K_8] extends infer T_8 ? T_8 extends T_7[K_8] ? T_8 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
127
|
-
$$valtioRef: true;
|
|
128
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_8 : T_8 extends Promise<unknown> ? Awaited<T_8> : T_8 extends object ? { readonly [K_9 in keyof T_8]: T_8[K_9] extends infer T_9 ? T_9 extends T_8[K_9] ? T_9 extends RegExp | Date | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | {
|
|
129
|
-
$$valtioRef: true;
|
|
130
|
-
} | Error | ((...args: any[]) => any) | (string | number | bigint | boolean | symbol | null | undefined) ? T_9 : T_9 extends Promise<unknown> ? Awaited<T_9> : T_9 extends object ? { readonly [K_10 in keyof T_9]: any; } : T_9 : never : never; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : V;
|
|
131
|
-
/**
|
|
132
|
-
* The date when the node was created
|
|
133
|
-
*/
|
|
134
|
-
createdAt: Date;
|
|
135
|
-
/**
|
|
136
|
-
* The date when the node was updated. Will be undefined if
|
|
137
|
-
* the node was never updated.
|
|
138
|
-
*/
|
|
139
|
-
updatedAt?: Date | undefined;
|
|
140
|
-
} | undefined;
|
|
107
|
+
getNode: (index: number) => HistoryNode<V> | undefined;
|
|
141
108
|
/**
|
|
142
109
|
* utility to clone a snapshot
|
|
143
110
|
*/
|
|
144
|
-
clone: <
|
|
111
|
+
clone: <T>(obj: T, getRefSet?: (() => WeakSet<object>) | undefined) => T;
|
|
145
112
|
/**
|
|
146
113
|
* a function to go to a specific index in history
|
|
147
114
|
*/
|
|
@@ -188,7 +155,7 @@ export declare function proxyWithHistory<V>(initialValue: V, options?: HistoryOp
|
|
|
188
155
|
* @param ops - subscribeOps from subscribe callback
|
|
189
156
|
* @returns boolean
|
|
190
157
|
*/
|
|
191
|
-
shouldSaveHistory: (ops: ([op: "set", path: (string | symbol)[], value: unknown, prevValue: unknown] | [op: "delete", path: (string | symbol)[], prevValue: unknown]
|
|
158
|
+
shouldSaveHistory: (ops: ([op: "set", path: (string | symbol)[], value: unknown, prevValue: unknown] | [op: "delete", path: (string | symbol)[], prevValue: unknown])[]) => boolean;
|
|
192
159
|
/**
|
|
193
160
|
* a function to subscribe to changes made to `value`
|
|
194
161
|
*/
|
package/src/index.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { proxy, ref, snapshot, subscribe } from 'valtio/vanilla';
|
|
2
|
+
import { deepClone } from 'valtio/vanilla/utils';
|
|
2
3
|
const EMPTY_WIP = Symbol('valtio-history-wip-empty');
|
|
3
|
-
const isObject = (value) => !!value && typeof value === 'object';
|
|
4
|
-
let refSet;
|
|
5
|
-
const deepClone = (value) => {
|
|
6
|
-
if (!refSet) {
|
|
7
|
-
refSet = buildProxyFunction()[2];
|
|
8
|
-
}
|
|
9
|
-
if (!isObject(value) || refSet.has(value)) {
|
|
10
|
-
return value;
|
|
11
|
-
}
|
|
12
|
-
const baseObject = Array.isArray(value)
|
|
13
|
-
? []
|
|
14
|
-
: Object.create(Object.getPrototypeOf(value));
|
|
15
|
-
Reflect.ownKeys(value).forEach((key) => {
|
|
16
|
-
baseObject[key] = deepClone(value[key]);
|
|
17
|
-
});
|
|
18
|
-
return baseObject;
|
|
19
|
-
};
|
|
20
4
|
const normalizeOptions = (options) => {
|
|
21
5
|
if (typeof options === 'boolean') {
|
|
22
6
|
if (import.meta.env?.MODE !== 'production') {
|
|
@@ -75,7 +59,7 @@ export function proxyWithHistory(initialValue, options) {
|
|
|
75
59
|
* - history.wip: field for holding sandbox changes; used to avoid infinite loops<br>
|
|
76
60
|
*/
|
|
77
61
|
history: ref({
|
|
78
|
-
wip: EMPTY_WIP,
|
|
62
|
+
wip: EMPTY_WIP, // to avoid infinite loop
|
|
79
63
|
nodes: [],
|
|
80
64
|
index: -1,
|
|
81
65
|
}),
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/history-utility/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/history-utility/src/index.ts"],"names":[],"mappings":"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"}
|