alien-signals
Advanced tools
Comparing version 0.2.2-alpha.0 to 0.2.2
@@ -24,10 +24,8 @@ "use strict"; | ||
get() { | ||
const dirtyLevel = this.dirtyLevel; | ||
let dirtyLevel = this.dirtyLevel; | ||
if (dirtyLevel === 2 /* DirtyLevels.MaybeDirty */) { | ||
system_js_1.Subscriber.resolveMaybeDirty(this); | ||
if (this.dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
this.update(); | ||
} | ||
dirtyLevel = this.dirtyLevel; | ||
} | ||
else if (dirtyLevel === 3 /* DirtyLevels.Dirty */ || dirtyLevel === 4 /* DirtyLevels.Released */) { | ||
if (dirtyLevel >= 3 /* DirtyLevels.Dirty */) { | ||
this.update(); | ||
@@ -34,0 +32,0 @@ } |
@@ -38,16 +38,21 @@ "use strict"; | ||
notify() { | ||
const dirtyLevel = this.dirtyLevel; | ||
if (dirtyLevel === 1 /* DirtyLevels.SideEffectsOnly */) { | ||
this.dirtyLevel = 0 /* DirtyLevels.None */; | ||
system_js_1.Subscriber.runInnerEffects(this.deps); | ||
} | ||
else { | ||
let dirtyLevel = this.dirtyLevel; | ||
if (dirtyLevel > 0 /* DirtyLevels.None */) { | ||
if (dirtyLevel === 2 /* DirtyLevels.MaybeDirty */) { | ||
system_js_1.Subscriber.resolveMaybeDirty(this); | ||
dirtyLevel = this.dirtyLevel; | ||
} | ||
if (this.dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
if (dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
this.run(); | ||
} | ||
else { | ||
system_js_1.Subscriber.runInnerEffects(this.deps); | ||
this.dirtyLevel = 0 /* DirtyLevels.None */; | ||
let link = this.deps; | ||
while (link !== undefined) { | ||
const dep = link.dep; | ||
if ('notify' in dep) { | ||
dep.notify(); | ||
} | ||
link = link.nextDep; | ||
} | ||
} | ||
@@ -54,0 +59,0 @@ } |
@@ -22,3 +22,10 @@ "use strict"; | ||
this.dirtyLevel = 0 /* DirtyLevels.None */; | ||
system_js_1.Subscriber.runInnerEffects(this.deps); | ||
let link = this.deps; | ||
while (link !== undefined) { | ||
const dep = link.dep; | ||
if ('notify' in dep) { | ||
dep.notify(); | ||
} | ||
link = link.nextDep; | ||
} | ||
} | ||
@@ -25,0 +32,0 @@ } |
@@ -31,4 +31,3 @@ export interface IEffect extends Dependency, Subscriber { | ||
MaybeDirty = 2, | ||
Dirty = 3, | ||
Released = 4 | ||
Dirty = 3 | ||
} | ||
@@ -58,3 +57,2 @@ export declare namespace System { | ||
export declare namespace Subscriber { | ||
function runInnerEffects(link: Link | undefined): void; | ||
function resolveMaybeDirty(sub: IComputed | IEffect, depth?: number): void; | ||
@@ -61,0 +59,0 @@ function resolveMaybeDirtyNonRecursive(sub: IComputed | IEffect): void; |
@@ -77,5 +77,5 @@ "use strict"; | ||
} | ||
// @ts-ignore | ||
// @ts-expect-error | ||
link.dep = undefined; | ||
// @ts-ignore | ||
// @ts-expect-error | ||
link.sub = undefined; | ||
@@ -137,4 +137,5 @@ link.prevSub = undefined; | ||
const sub = link.sub; | ||
if (sub.trackId > 0) { | ||
if (sub.trackId === link.trackId) { | ||
const subTrackId = sub.trackId; | ||
if (subTrackId > 0) { | ||
if (subTrackId === link.trackId) { | ||
const subDirtyLevel = sub.dirtyLevel; | ||
@@ -162,3 +163,3 @@ if (subDirtyLevel < dirtyLevel) { | ||
} | ||
else if (sub.trackId === -link.trackId) { | ||
else if (subTrackId === -link.trackId) { | ||
const subDirtyLevel = sub.dirtyLevel; | ||
@@ -238,12 +239,2 @@ const notDirty = subDirtyLevel === 0 /* DirtyLevels.None */; | ||
const system = System; | ||
function runInnerEffects(link) { | ||
while (link !== undefined) { | ||
const dep = link.dep; | ||
if ('notify' in dep) { | ||
dep.notify(); | ||
} | ||
link = link.nextDep; | ||
} | ||
} | ||
Subscriber.runInnerEffects = runInnerEffects; | ||
function resolveMaybeDirty(sub, depth = 0) { | ||
@@ -254,3 +245,3 @@ let link = sub.deps; | ||
if ('update' in dep) { | ||
const dirtyLevel = dep.dirtyLevel; | ||
let dirtyLevel = dep.dirtyLevel; | ||
if (dirtyLevel === 2 /* DirtyLevels.MaybeDirty */) { | ||
@@ -263,10 +254,5 @@ if (depth >= 4) { | ||
} | ||
if (dep.dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
dep.update(); | ||
if (sub.dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
break; | ||
} | ||
} | ||
dirtyLevel = dep.dirtyLevel; | ||
} | ||
else if (dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
if (dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
dep.update(); | ||
@@ -404,3 +390,8 @@ if (sub.dirtyLevel === 3 /* DirtyLevels.Dirty */) { | ||
if (dep.subs === undefined && 'deps' in dep) { | ||
dep.dirtyLevel = 4 /* DirtyLevels.Released */; | ||
if ('notify' in dep) { | ||
dep.dirtyLevel = 0 /* DirtyLevels.None */; | ||
} | ||
else { | ||
dep.dirtyLevel = 3 /* DirtyLevels.Dirty */; | ||
} | ||
if (dep.deps !== undefined) { | ||
@@ -407,0 +398,0 @@ link = dep.deps; |
{ | ||
"name": "alien-signals", | ||
"version": "0.2.2-alpha.0", | ||
"version": "0.2.2", | ||
"license": "MIT", | ||
@@ -16,2 +16,3 @@ "packageManager": "pnpm@9.12.0", | ||
"types": "./cjs/index.d.ts", | ||
"import": "./cjs/index.js", | ||
"require": "./cjs/index.js" | ||
@@ -21,3 +22,4 @@ }, | ||
"types": "./cjs/index.d.ts", | ||
"import": "./esm/index.mjs" | ||
"import": "./esm/index.mjs", | ||
"require": "./esm/index.mjs" | ||
} | ||
@@ -41,6 +43,6 @@ }, | ||
"esbuild": "latest", | ||
"pkg-pr-new": "latest", | ||
"typescript": "latest", | ||
"vitest": "latest" | ||
"vite": "latest", | ||
"vitest": "latest", | ||
"typescript": "latest" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1655
56930