Actualizar sigpro_work.js

This commit is contained in:
2026-04-07 20:11:09 +02:00
parent d71dc7e2c1
commit e9be18a74a

View File

@@ -34,57 +34,62 @@ const untrack = (fn) => {
finally { activeEffect = prev; } finally { activeEffect = prev; }
}; };
const $ = (init, key = null) => { const $ = (val, key = null) => {
const subs = new Set(); const subs = new Set();
let sig; if (key) {
try {
if (typeof init === "function") { const saved = localStorage.getItem(key);
let cached, dirty = true; if (saved != null) val = JSON.parse(saved);
Watch(() => { } catch {}
if (!dirty) { }
dirty = true; const sig = (...args) => {
if (args.length) {
const next = typeof args[0] === "function" ? untrack(() => args[0](val)) : args[0];
if (!Object.is(val, next)) {
val = next;
if (key) localStorage.setItem(key, JSON.stringify(val));
subs.forEach(e => effectQueue.add(e)); subs.forEach(e => effectQueue.add(e));
if (!isFlushing) queueMicrotask(flushEffects); if (!isFlushing) queueMicrotask(flushEffects);
} }
}); } else if (activeEffect && !activeEffect._deleted) {
sig = () => { subs.add(activeEffect);
if (dirty) { cached = init(); dirty = false; } activeEffect._deps.add(subs);
if (activeEffect && !activeEffect._deleted) {
subs.add(activeEffect);
activeEffect._deps.add(subs);
}
return cached;
};
} else {
let val = init;
if (key) {
try {
const saved = localStorage.getItem(key);
if (saved != null) val = JSON.parse(saved);
} catch { }
} }
sig = (...args) => { return val;
if (args.length) { };
const next = typeof args[0] === "function" ? untrack(() => args[0](val)) : args[0]; sig._isSig = true;
if (!Object.is(val, next)) { return sig;
val = next; };
if (key) localStorage.setItem(key, JSON.stringify(val));
subs.forEach(e => effectQueue.add(e)); const $$ = (fn) => {
if (!isFlushing) queueMicrotask(flushEffects); const subs = new Set();
} let cached, dirty = true;
} else if (activeEffect && !activeEffect._deleted) {
subs.add(activeEffect); const runner = Watch(() => {
activeEffect._deps.add(subs); if (!dirty) {
} dirty = true;
return val; subs.forEach(e => effectQueue.add(e));
}; if (!isFlushing) queueMicrotask(flushEffects);
} }
});
const sig = () => {
if (dirty) {
cached = fn();
dirty = false;
}
if (activeEffect && !activeEffect._deleted) {
subs.add(activeEffect);
activeEffect._deps.add(subs);
}
return cached;
};
sig._isSig = true; sig._isSig = true;
return sig; return sig;
}; };
const $$ = (obj) => { const $_ = (obj) => {
if (obj === null || typeof obj !== "object" || obj._isSig) return obj; if (obj === null || typeof obj !== "object" || obj._isSig) return obj;
if (reactiveCache.has(obj)) return reactiveCache.get(obj); if (reactiveCache.has(obj)) return reactiveCache.get(obj);
@@ -100,7 +105,7 @@ const $$ = (obj) => {
} }
const value = Reflect.get(target, key); const value = Reflect.get(target, key);
return (typeof value === "object" && value !== null) ? $$(value) : value; return (typeof value === "object" && value !== null) ? $_(value) : value;
}, },
set(target, key, value) { set(target, key, value) {
const prev = Reflect.get(target, key); const prev = Reflect.get(target, key);
@@ -399,7 +404,7 @@ const Mount = (component, target) => {
return instance; return instance;
}; };
const SigPro = { $, $$, untrack, Render, Watch, Tag, If, For, Router, Mount, Share, Use }; const SigPro = { $, $$, $_, untrack, Render, Watch, Tag, If, For, Router, Mount, Share, Use };
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
Object.assign(window, SigPro); Object.assign(window, SigPro);
@@ -413,5 +418,5 @@ if (typeof window !== "undefined") {
window.SigPro = Object.freeze(SigPro); window.SigPro = Object.freeze(SigPro);
} }
export { $, $$, untrack, Render, Watch, Tag, If, For, Router, Mount, Share, Use }; export { $, $$, $_, untrack, Render, Watch, Tag, If, For, Router, Mount, Share, Use };
export default SigPro; export default SigPro;