opshot 0.5.1 → 0.5.3
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/dist/index.js +26 -23
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -98,6 +98,28 @@ function classifyValue(value) {
|
|
|
98
98
|
return classifyChain(value.constructor);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
// src/readProxyRegistry.ts
|
|
102
|
+
var readProxyTargets = /* @__PURE__ */ new WeakMap();
|
|
103
|
+
var registerReadProxyTarget = (readProxy, target) => {
|
|
104
|
+
readProxyTargets.set(readProxy, target);
|
|
105
|
+
};
|
|
106
|
+
var getRegisteredReadProxyTarget = (readProxy) => readProxyTargets.get(readProxy);
|
|
107
|
+
|
|
108
|
+
// src/utils/predicates.ts
|
|
109
|
+
var isObjectLike = (value) => value !== null && (typeof value === "object" || typeof value === "function");
|
|
110
|
+
|
|
111
|
+
// src/peelReadProxy.ts
|
|
112
|
+
function peelReadProxy(value) {
|
|
113
|
+
if (!isObjectLike(value)) return value;
|
|
114
|
+
let current = value;
|
|
115
|
+
while (isObjectLike(current)) {
|
|
116
|
+
const registeredTarget = getRegisteredReadProxyTarget(current);
|
|
117
|
+
if (registeredTarget === void 0) break;
|
|
118
|
+
current = registeredTarget;
|
|
119
|
+
}
|
|
120
|
+
return current;
|
|
121
|
+
}
|
|
122
|
+
|
|
101
123
|
// src/node.ts
|
|
102
124
|
var byRaw = /* @__PURE__ */ new WeakMap();
|
|
103
125
|
var byProxy = /* @__PURE__ */ new WeakMap();
|
|
@@ -106,10 +128,11 @@ function installProxyHandler(handler2) {
|
|
|
106
128
|
proxyHandler = handler2;
|
|
107
129
|
}
|
|
108
130
|
function recordOf(value) {
|
|
109
|
-
|
|
131
|
+
const peeled = peelReadProxy(value);
|
|
132
|
+
return byRaw.get(peeled) ?? byProxy.get(peeled);
|
|
110
133
|
}
|
|
111
134
|
function rawOf(value) {
|
|
112
|
-
return recordOf(value)?.raw ?? value;
|
|
135
|
+
return recordOf(value)?.raw ?? peelReadProxy(value);
|
|
113
136
|
}
|
|
114
137
|
function proxyOf(raw) {
|
|
115
138
|
const existing = recordOf(raw);
|
|
@@ -395,9 +418,6 @@ function flushWindow(handle) {
|
|
|
395
418
|
drainDeliveries();
|
|
396
419
|
}
|
|
397
420
|
|
|
398
|
-
// src/utils/predicates.ts
|
|
399
|
-
var isObjectLike = (value) => value !== null && (typeof value === "object" || typeof value === "function");
|
|
400
|
-
|
|
401
421
|
// src/proxy.ts
|
|
402
422
|
var prototypeFunctionOf = (target, key) => {
|
|
403
423
|
for (let holder = Reflect.getPrototypeOf(target); holder !== null; holder = Reflect.getPrototypeOf(holder)) {
|
|
@@ -591,7 +611,7 @@ var handler = {
|
|
|
591
611
|
// src/createMutableState.ts
|
|
592
612
|
installProxyHandler(handler);
|
|
593
613
|
function createMutableState(properties, options) {
|
|
594
|
-
const incoming = properties;
|
|
614
|
+
const incoming = peelReadProxy(properties);
|
|
595
615
|
if (typeof incoming !== "object" || incoming === null) return properties;
|
|
596
616
|
if (isIgnored(incoming)) return properties;
|
|
597
617
|
if (Object.isFrozen(incoming)) return properties;
|
|
@@ -613,13 +633,8 @@ function createMutableState(properties, options) {
|
|
|
613
633
|
}
|
|
614
634
|
|
|
615
635
|
// src/identity.ts
|
|
616
|
-
var readProxyTargets = /* @__PURE__ */ new WeakMap();
|
|
617
636
|
var identityRecords = /* @__PURE__ */ new WeakMap();
|
|
618
637
|
var nextInternId = 0;
|
|
619
|
-
var registerReadProxyTarget = (readProxy, target) => {
|
|
620
|
-
readProxyTargets.set(readProxy, target);
|
|
621
|
-
};
|
|
622
|
-
var getRegisteredReadProxyTarget = (readProxy) => readProxyTargets.get(readProxy);
|
|
623
638
|
function resolveIdentity(value) {
|
|
624
639
|
let current = value;
|
|
625
640
|
while (isObjectLike(current)) {
|
|
@@ -669,18 +684,6 @@ function isSameIdentity(first, second) {
|
|
|
669
684
|
return resolvedFirst === resolvedSecond;
|
|
670
685
|
}
|
|
671
686
|
|
|
672
|
-
// src/peelReadProxy.ts
|
|
673
|
-
function peelReadProxy(value) {
|
|
674
|
-
if (!isObjectLike(value)) return value;
|
|
675
|
-
let current = value;
|
|
676
|
-
while (isObjectLike(current)) {
|
|
677
|
-
const registeredTarget = getRegisteredReadProxyTarget(current);
|
|
678
|
-
if (registeredTarget === void 0) break;
|
|
679
|
-
current = registeredTarget;
|
|
680
|
-
}
|
|
681
|
-
return current;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
687
|
// src/isState.ts
|
|
685
688
|
function isState(value) {
|
|
686
689
|
const resolved = peelReadProxy(value);
|
package/package.json
CHANGED