docs(rfc): narrow scoped-layer disposers

This commit is contained in:
Tianyi Cui
2026-07-13 12:08:41 +08:00
parent ecc6d9df08
commit 0289e69ee9
3 changed files with 6 additions and 6 deletions
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
2026-07-12-scoped-layers-store.md: c3a9ab8724191b5b1bc87f02a90d6995c247d944
2026-07-12-scoped-layers-store.zh.md: e2ec72145766a95ea1c330e3a658f7c86490e263
2026-07-12-scoped-layers-store.md: 510f462344b25b72bb8604d88f125cc92c6510b1
2026-07-12-scoped-layers-store.zh.md: abc2aad140cc10325392ed8800e33e38684511a8
@@ -48,7 +48,7 @@ export class ScopedLayers<L extends ScopeLayer> {
values<T>(scope: ScopeKey | undefined, pick: (layer: L) => EntryValues<T>): T[]
keys<T>(scope: ScopeKey | undefined, pick: (layer: L) => NamedEntries<T>): string[]
some(fn: (layer: L, scope: ScopeKey | undefined) => boolean): boolean
effect(ctx: Context, action: (layer: L) => () => void, options: { label: string; silent?: boolean }): () => Promise<void> | void
effect(ctx: Context, action: (layer: L) => () => void, options: { label: string; silent?: boolean }): () => void
}
export interface EntryValues<V> {
@@ -98,7 +98,7 @@ class ToolRegistry extends Service {
{ onChange: () => this.ctx.emit('tools/change') },
)
register(definition: ToolDefinition): () => Promise<void> | void {
register(definition: ToolDefinition): () => void {
return this.layers.effect(this.ctx,
layer => layer.tools.insert(definition.name, definition),
{ label: 'tools.register()' })
@@ -48,7 +48,7 @@ export class ScopedLayers<L extends ScopeLayer> {
values<T>(scope: ScopeKey | undefined, pick: (layer: L) => EntryValues<T>): T[]
keys<T>(scope: ScopeKey | undefined, pick: (layer: L) => NamedEntries<T>): string[]
some(fn: (layer: L, scope: ScopeKey | undefined) => boolean): boolean
effect(ctx: Context, action: (layer: L) => () => void, options: { label: string; silent?: boolean }): () => Promise<void> | void
effect(ctx: Context, action: (layer: L) => () => void, options: { label: string; silent?: boolean }): () => void
}
export interface EntryValues<V> {
@@ -98,7 +98,7 @@ class ToolRegistry extends Service {
{ onChange: () => this.ctx.emit('tools/change') },
)
register(definition: ToolDefinition): () => Promise<void> | void {
register(definition: ToolDefinition): () => void {
return this.layers.effect(this.ctx,
layer => layer.tools.insert(definition.name, definition),
{ label: 'tools.register()' })