aoye 0.0.52 → 0.0.53
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/aoye.cjs.js +204 -7
- package/dist/aoye.cjs.js.map +1 -1
- package/dist/aoye.esm.js +204 -8
- package/dist/aoye.esm.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.umd.js +204 -7
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/aoye.esm.js
CHANGED
|
@@ -482,7 +482,11 @@ function link(up = null, down = null) {
|
|
|
482
482
|
}
|
|
483
483
|
up.emitTail = line;
|
|
484
484
|
if (recHead) {
|
|
485
|
-
recTail
|
|
485
|
+
if (recTail) {
|
|
486
|
+
recTail.nextRecLine = line;
|
|
487
|
+
} else {
|
|
488
|
+
down.recHead = line;
|
|
489
|
+
}
|
|
486
490
|
} else {
|
|
487
491
|
down.recHead = line;
|
|
488
492
|
}
|
|
@@ -545,7 +549,11 @@ function outLink(up = null, down = null) {
|
|
|
545
549
|
}
|
|
546
550
|
up.emitTail = line;
|
|
547
551
|
if (recHead) {
|
|
548
|
-
recTail
|
|
552
|
+
if (recTail) {
|
|
553
|
+
recTail.nextRecLine = line;
|
|
554
|
+
} else {
|
|
555
|
+
down.recHead = line;
|
|
556
|
+
}
|
|
549
557
|
} else {
|
|
550
558
|
down.recHead = line;
|
|
551
559
|
}
|
|
@@ -748,11 +756,195 @@ State.Unknown | State.Dirty;
|
|
|
748
756
|
State.ScopeReady | State.ScopeAbort;
|
|
749
757
|
State.ScopeAbort;
|
|
750
758
|
|
|
759
|
+
const trackIterator = (cells, scope) => {
|
|
760
|
+
let iter = cells.get(Keys.Iterator);
|
|
761
|
+
if (!iter) {
|
|
762
|
+
iter = new Signal(0);
|
|
763
|
+
iter.scope = scope;
|
|
764
|
+
cells.set(Keys.Iterator, iter);
|
|
765
|
+
}
|
|
766
|
+
iter.get();
|
|
767
|
+
};
|
|
768
|
+
const triggerIterator = (cells, raw) => {
|
|
769
|
+
const iter = cells.get(Keys.Iterator);
|
|
770
|
+
if (iter) {
|
|
771
|
+
iter.set((raw[Keys.Iterator] || 0) + 1);
|
|
772
|
+
}
|
|
773
|
+
};
|
|
774
|
+
const trackKey = (cells, scope, key) => {
|
|
775
|
+
let cell = cells.get(key);
|
|
776
|
+
if (!cell) {
|
|
777
|
+
cell = new Signal(undefined);
|
|
778
|
+
cell.scope = scope;
|
|
779
|
+
cells.set(key, cell);
|
|
780
|
+
}
|
|
781
|
+
cell.get();
|
|
782
|
+
};
|
|
783
|
+
const triggerKey = (cells, key) => {
|
|
784
|
+
const cell = cells.get(key);
|
|
785
|
+
if (cell) {
|
|
786
|
+
cell.set((cell.value === undefined ? 0 : cell.value) + 1);
|
|
787
|
+
}
|
|
788
|
+
};
|
|
789
|
+
const createSharedHandler = (cells, scope, deep, targetIsMap) => {
|
|
790
|
+
const iterate = (rawTarget, iteratorFn) => {
|
|
791
|
+
trackIterator(cells, scope);
|
|
792
|
+
const rawIter = rawTarget[iteratorFn]();
|
|
793
|
+
if (!deep) return rawIter;
|
|
794
|
+
const rawNext = rawIter.next.bind(rawIter);
|
|
795
|
+
rawIter.next = () => {
|
|
796
|
+
const result = rawNext();
|
|
797
|
+
if (!result.done) {
|
|
798
|
+
if (iteratorFn === 'entries') {
|
|
799
|
+
result.value[0] = deepSignal(result.value[0], scope);
|
|
800
|
+
result.value[1] = deepSignal(result.value[1], scope);
|
|
801
|
+
} else {
|
|
802
|
+
result.value = deepSignal(result.value, scope);
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
return result;
|
|
806
|
+
};
|
|
807
|
+
return rawIter;
|
|
808
|
+
};
|
|
809
|
+
return {
|
|
810
|
+
has(key) {
|
|
811
|
+
const target = this[Keys.Raw];
|
|
812
|
+
trackKey(cells, scope, key);
|
|
813
|
+
return target.has(key);
|
|
814
|
+
},
|
|
815
|
+
delete(key) {
|
|
816
|
+
const target = this[Keys.Raw];
|
|
817
|
+
batchStart();
|
|
818
|
+
const had = target.has(key);
|
|
819
|
+
const result = target.delete(key);
|
|
820
|
+
if (had) {
|
|
821
|
+
triggerKey(cells, key);
|
|
822
|
+
cells.delete(key);
|
|
823
|
+
triggerIterator(cells, target);
|
|
824
|
+
}
|
|
825
|
+
batchEnd();
|
|
826
|
+
return result;
|
|
827
|
+
},
|
|
828
|
+
clear() {
|
|
829
|
+
const target = this[Keys.Raw];
|
|
830
|
+
batchStart();
|
|
831
|
+
const hadItems = target.size > 0;
|
|
832
|
+
target.clear();
|
|
833
|
+
const iterCell = cells.get(Keys.Iterator);
|
|
834
|
+
cells.clear();
|
|
835
|
+
if (iterCell) cells.set(Keys.Iterator, iterCell);
|
|
836
|
+
if (hadItems) {
|
|
837
|
+
triggerIterator(cells, target);
|
|
838
|
+
}
|
|
839
|
+
batchEnd();
|
|
840
|
+
},
|
|
841
|
+
forEach(callback, thisArg) {
|
|
842
|
+
const target = this[Keys.Raw];
|
|
843
|
+
trackIterator(cells, scope);
|
|
844
|
+
const wrap = val => deep ? deepSignal(val, scope) : val;
|
|
845
|
+
target.forEach((v, k) => {
|
|
846
|
+
callback.call(thisArg, wrap(v), wrap(k), this);
|
|
847
|
+
});
|
|
848
|
+
},
|
|
849
|
+
keys() {
|
|
850
|
+
return iterate(this[Keys.Raw], 'keys');
|
|
851
|
+
},
|
|
852
|
+
values() {
|
|
853
|
+
return iterate(this[Keys.Raw], 'values');
|
|
854
|
+
},
|
|
855
|
+
entries() {
|
|
856
|
+
return iterate(this[Keys.Raw], 'entries');
|
|
857
|
+
},
|
|
858
|
+
[Symbol.iterator]() {
|
|
859
|
+
return iterate(this[Keys.Raw], targetIsMap ? 'entries' : 'values');
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
};
|
|
863
|
+
const createMapHandler = (cells, scope, deep) => ({
|
|
864
|
+
get(key) {
|
|
865
|
+
const target = this[Keys.Raw];
|
|
866
|
+
trackKey(cells, scope, key);
|
|
867
|
+
const value = target.get(key);
|
|
868
|
+
return deep ? deepSignal(value, scope) : value;
|
|
869
|
+
},
|
|
870
|
+
set(key, value) {
|
|
871
|
+
const target = this[Keys.Raw];
|
|
872
|
+
batchStart();
|
|
873
|
+
target.set(key, value);
|
|
874
|
+
let cell = cells.get(key);
|
|
875
|
+
if (!cell) {
|
|
876
|
+
cell = new Signal(value);
|
|
877
|
+
cell.scope = scope;
|
|
878
|
+
cells.set(key, cell);
|
|
879
|
+
} else {
|
|
880
|
+
cell.set(value);
|
|
881
|
+
}
|
|
882
|
+
triggerIterator(cells, target);
|
|
883
|
+
batchEnd();
|
|
884
|
+
return this;
|
|
885
|
+
}
|
|
886
|
+
});
|
|
887
|
+
const createSetHandler = (cells, scope, _deep) => ({
|
|
888
|
+
add(value) {
|
|
889
|
+
const target = this[Keys.Raw];
|
|
890
|
+
batchStart();
|
|
891
|
+
const had = target.has(value);
|
|
892
|
+
target.add(value);
|
|
893
|
+
let cell = cells.get(value);
|
|
894
|
+
if (!cell) {
|
|
895
|
+
cell = new Signal(value);
|
|
896
|
+
cell.scope = scope;
|
|
897
|
+
cells.set(value, cell);
|
|
898
|
+
} else {
|
|
899
|
+
cell.set(value);
|
|
900
|
+
}
|
|
901
|
+
if (!had) {
|
|
902
|
+
triggerIterator(cells, target);
|
|
903
|
+
}
|
|
904
|
+
batchEnd();
|
|
905
|
+
return this;
|
|
906
|
+
}
|
|
907
|
+
});
|
|
908
|
+
const mergeHandlers = (...handlers) => Object.assign({}, ...handlers);
|
|
909
|
+
|
|
751
910
|
const deepSignal = (target, scope, deep = true) => {
|
|
752
911
|
const isObj = typeof target === 'object' && target !== null;
|
|
753
912
|
if (!isObj || target[Keys.Raw] || target[Keys.ProxyFreeObject]) return target;
|
|
754
913
|
const p = rawToProxy.get(target);
|
|
755
914
|
if (p) return p;
|
|
915
|
+
const targetIsMap = target instanceof Map;
|
|
916
|
+
const targetIsSet = target instanceof Set;
|
|
917
|
+
if (targetIsMap || targetIsSet) {
|
|
918
|
+
const cells = new Map();
|
|
919
|
+
const meta = {
|
|
920
|
+
deep,
|
|
921
|
+
scope,
|
|
922
|
+
cells
|
|
923
|
+
};
|
|
924
|
+
const shared = createSharedHandler(cells, scope, deep, targetIsMap);
|
|
925
|
+
const specific = targetIsMap ? createMapHandler(cells, scope, deep) : createSetHandler(cells, scope);
|
|
926
|
+
const instrumentations = mergeHandlers(shared, specific);
|
|
927
|
+
const proxy = new Proxy(target, {
|
|
928
|
+
get(_obj, prop, receiver) {
|
|
929
|
+
if (prop === Keys.Raw) return target;
|
|
930
|
+
if (prop === Keys.Meta) return meta;
|
|
931
|
+
if (prop === Symbol.toStringTag) return targetIsMap ? 'Map' : 'Set';
|
|
932
|
+
if (prop === 'size') {
|
|
933
|
+
trackIterator(cells, scope);
|
|
934
|
+
return Reflect.get(target, 'size', target);
|
|
935
|
+
}
|
|
936
|
+
if (prop in instrumentations) {
|
|
937
|
+
const fn = instrumentations[prop];
|
|
938
|
+
return typeof fn === 'function' ? fn.bind(receiver) : fn;
|
|
939
|
+
}
|
|
940
|
+
const value = Reflect.get(target, prop, receiver);
|
|
941
|
+
if (typeof value === 'function') return value;
|
|
942
|
+
return deep ? deepSignal(value, scope) : value;
|
|
943
|
+
}
|
|
944
|
+
});
|
|
945
|
+
rawToProxy.set(target, proxy);
|
|
946
|
+
return proxy;
|
|
947
|
+
}
|
|
756
948
|
const cells = new Map();
|
|
757
949
|
const targetIsArray = Array.isArray(target);
|
|
758
950
|
const targetIsStore = Boolean(target.constructor?.[IsStore]);
|
|
@@ -801,6 +993,7 @@ const deepSignal = (target, scope, deep = true) => {
|
|
|
801
993
|
if (targetIsStore && isIgnoreKey(obj.constructor[StoreIgnoreKeys], prop) || typeof value === 'function') {
|
|
802
994
|
return Reflect.set(obj, prop, value, receiver);
|
|
803
995
|
}
|
|
996
|
+
const isNewKey = !Reflect.has(obj, prop);
|
|
804
997
|
batchStart();
|
|
805
998
|
const success = Reflect.set(obj, prop, value, receiver);
|
|
806
999
|
const cell = cells.get(prop);
|
|
@@ -809,8 +1002,8 @@ const deepSignal = (target, scope, deep = true) => {
|
|
|
809
1002
|
}
|
|
810
1003
|
if (targetIsArray) {
|
|
811
1004
|
handleArraySet(obj, prop, value, receiver);
|
|
812
|
-
} else {
|
|
813
|
-
|
|
1005
|
+
} else if (isNewKey) {
|
|
1006
|
+
receiver[Keys.Iterator] = (receiver[Keys.Raw][Keys.Iterator] || 0) + 1;
|
|
814
1007
|
}
|
|
815
1008
|
batchEnd();
|
|
816
1009
|
return success;
|
|
@@ -820,8 +1013,11 @@ const deepSignal = (target, scope, deep = true) => {
|
|
|
820
1013
|
return Reflect.deleteProperty(obj, prop);
|
|
821
1014
|
}
|
|
822
1015
|
cells.delete(prop);
|
|
823
|
-
|
|
824
|
-
|
|
1016
|
+
const result = Reflect.deleteProperty(obj, prop);
|
|
1017
|
+
if (!targetIsArray) {
|
|
1018
|
+
proxy[Keys.Iterator] = (obj[Keys.Iterator] || 0) + 1;
|
|
1019
|
+
}
|
|
1020
|
+
return result;
|
|
825
1021
|
},
|
|
826
1022
|
ownKeys(obj) {
|
|
827
1023
|
if (targetIsArray) {
|
|
@@ -829,7 +1025,7 @@ const deepSignal = (target, scope, deep = true) => {
|
|
|
829
1025
|
} else {
|
|
830
1026
|
proxy[Keys.Iterator];
|
|
831
1027
|
}
|
|
832
|
-
return Reflect.ownKeys(obj);
|
|
1028
|
+
return Reflect.ownKeys(obj).filter(key => key !== Keys.Iterator);
|
|
833
1029
|
}
|
|
834
1030
|
});
|
|
835
1031
|
rawToProxy.set(target, proxy);
|
|
@@ -1361,5 +1557,5 @@ function scope(...args) {
|
|
|
1361
1557
|
return run;
|
|
1362
1558
|
}
|
|
1363
1559
|
|
|
1364
|
-
export { $, Computed, Effect, EffectStrType2Enum, IsStore, Keys, NoopEffect, ScheduleStatus, ScheduleType, Scope, Signal, Store, StoreIgnoreKeys, batchEnd, batchStart, clean, deepSignal, effect, effectUt, execId, execIdInc, getPulling, ide, macro, micro, noopEffect, now, runWithPulling, scope, setExecId, setPulling, shareSignal, toRaw };
|
|
1560
|
+
export { $, Computed, Effect, EffectStrType2Enum, IsStore, Keys, NoopEffect, ScheduleStatus, ScheduleType, Scope, Signal, Store, StoreIgnoreKeys, batchDeep, batchEnd, batchStart, clean, deepSignal, effect, effectUt, execId, execIdInc, getPulling, ide, macro, micro, noopEffect, now, runWithPulling, scope, setExecId, setPulling, shareSignal, toRaw };
|
|
1365
1561
|
//# sourceMappingURL=aoye.esm.js.map
|