API reference@evolu/commonResource › Lease

Defined in: packages/common/src/Resource.ts:87

An owned lease on a shared Resource.

A lease keeps the underlying resource alive. Release it with Lease.release or using; releasing the last lease starts the resource disposal path. Release is idempotent, so double release is a safe no-op.

Release is synchronous accounting and never waits for resource disposal. Disposal completion belongs to the owning SharedResource: it may be delayed by idleDisposeAfter and is awaited by the owner's async disposal.

Release does not revoke resource; a released lease keeps a plain reference, and using it after the resource is disposed is a programmer error that nothing catches statically. Create resources with the disposable helper so use-after-dispose throws eagerly instead of operating on disposed state.

Extends

Methods

[dispose]()

dispose: void;

Defined in: node_modules/@typescript/old/lib/lib.esnext.disposable.d.ts:34

Inherited from

Disposable.[dispose]

Properties

created

readonly created: boolean;

Defined in: packages/common/src/Resource.ts:92

Whether this acquisition created the leased resource generation.


release

readonly release: () => boolean;

Defined in: packages/common/src/Resource.ts:102

Releases this lease.

Returns whether this call released a still-held lease. Returns false if the lease was already released, drained by disposal of its owning SharedResource, or drained by disposal of the Run tree that owns it.

resource

readonly resource: DistributiveOmit<T>;

Defined in: packages/common/src/Resource.ts:89

The leased resource.