-
Notifications
You must be signed in to change notification settings - Fork 0
memoized computed
awekrx edited this page May 29, 2026
·
1 revision
import { memoizedComputed } from '@dev-suite/decorators/memoized-computed'
property
Compute property once and cache result.
- Manual cached getter flags
- Repeated lazy-computation boilerplate
class PricingView {
private _summary?: Summary;
get summary() {
if (!this._summary) this._summary = computeSummary(this.rows);
return this._summary;
}
}import { memoizedComputed } from '@dev-suite/decorators/memoized-computed';
class PricingView {
@memoizedComputed(({ originalThis }) => computeSummary(originalThis.rows))
summary!: Summary;
}- Centralizes cross-cutting behavior.
- Method/class/property code stays focused on domain logic.
class UserView {
private _permissions?: string[];
get permissions() {
if (!this._permissions) this._permissions = resolvePermissions(this.roles);
return this._permissions;
}
}import { memoizedComputed } from '@dev-suite/decorators/memoized-computed';
class UserView {
@memoizedComputed(({ originalThis }) => resolvePermissions(originalThis.roles))
permissions!: string[];
}- Second scenario reuses same policy without duplication.
- Behavior is more consistent and easier to audit.