q9
This commit is contained in:
118
node_modules/alien-signals/cjs/unstable/vue.js
generated
vendored
Normal file
118
node_modules/alien-signals/cjs/unstable/vue.js
generated
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ReactiveEffect = exports.ShallowRef = exports.EffectScope = void 0;
|
||||
exports.effect = effect;
|
||||
exports.effectScope = effectScope;
|
||||
exports.triggerRef = triggerRef;
|
||||
exports.pauseTracking = pauseTracking;
|
||||
exports.resetTracking = resetTracking;
|
||||
exports.shallowRef = shallowRef;
|
||||
exports.computed = computed;
|
||||
exports.getCurrentScope = getCurrentScope;
|
||||
exports.onScopeDispose = onScopeDispose;
|
||||
const index_js_1 = require("../index.js");
|
||||
Object.defineProperty(exports, "EffectScope", { enumerable: true, get: function () { return index_js_1.EffectScope; } });
|
||||
function effect(fn) {
|
||||
const e = new ReactiveEffect(fn);
|
||||
e.run();
|
||||
return e;
|
||||
}
|
||||
let currentEffectScope = undefined;
|
||||
class VueEffectScope extends index_js_1.EffectScope {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.onDispose = [];
|
||||
}
|
||||
run(fn) {
|
||||
const prevScope = currentEffectScope;
|
||||
currentEffectScope = this;
|
||||
const res = super.run(fn);
|
||||
currentEffectScope = prevScope;
|
||||
return res;
|
||||
}
|
||||
stop() {
|
||||
super.stop();
|
||||
this.onDispose.forEach(cb => cb());
|
||||
}
|
||||
}
|
||||
function effectScope() {
|
||||
return new VueEffectScope();
|
||||
}
|
||||
function triggerRef(ref) {
|
||||
if (ref.subs !== undefined) {
|
||||
(0, index_js_1.startBatch)();
|
||||
index_js_1.Dependency.propagate(ref.subs);
|
||||
(0, index_js_1.endBatch)();
|
||||
}
|
||||
}
|
||||
const pausedSubs = [];
|
||||
function pauseTracking() {
|
||||
pausedSubs.push(index_js_1.System.activeSub);
|
||||
index_js_1.System.activeSub = undefined;
|
||||
index_js_1.System.activeTrackId = -1;
|
||||
}
|
||||
function resetTracking() {
|
||||
const prevSub = pausedSubs.pop();
|
||||
index_js_1.System.activeSub = prevSub;
|
||||
index_js_1.System.activeTrackId = prevSub.trackId;
|
||||
}
|
||||
function shallowRef(value) {
|
||||
return new ShallowRef(value);
|
||||
}
|
||||
function computed(fn) {
|
||||
if (typeof fn === 'function') {
|
||||
return new VueComputed(fn);
|
||||
}
|
||||
else {
|
||||
const { get, set } = fn;
|
||||
const c = new VueComputed(get);
|
||||
return {
|
||||
get value() {
|
||||
return c.get();
|
||||
},
|
||||
set value(value) {
|
||||
set(value);
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
function getCurrentScope() {
|
||||
return currentEffectScope;
|
||||
}
|
||||
class ShallowRef extends index_js_1.Signal {
|
||||
get value() {
|
||||
return this.get();
|
||||
}
|
||||
set value(value) {
|
||||
this.set(value);
|
||||
}
|
||||
}
|
||||
exports.ShallowRef = ShallowRef;
|
||||
class VueComputed extends index_js_1.Computed {
|
||||
get value() {
|
||||
return this.get();
|
||||
}
|
||||
}
|
||||
class ReactiveEffect extends index_js_1.Effect {
|
||||
get dirty() {
|
||||
if (this.dirtyLevel === 2 /* DirtyLevels.MaybeDirty */) {
|
||||
index_js_1.Subscriber.resolveMaybeDirty(this);
|
||||
}
|
||||
return this.dirtyLevel === 3 /* DirtyLevels.Dirty */;
|
||||
}
|
||||
set scheduler(fn) {
|
||||
this.notify = fn;
|
||||
}
|
||||
stop() {
|
||||
if (this.deps !== undefined) {
|
||||
index_js_1.Subscriber.clearTrack(this.deps);
|
||||
this.deps = undefined;
|
||||
this.depsTail = undefined;
|
||||
}
|
||||
this.dirtyLevel = 0 /* DirtyLevels.None */;
|
||||
}
|
||||
}
|
||||
exports.ReactiveEffect = ReactiveEffect;
|
||||
function onScopeDispose(cb) {
|
||||
currentEffectScope?.onDispose.push(cb);
|
||||
}
|
||||
Reference in New Issue
Block a user