Skip to content

@bight-ts/settings

import {
createGuildSettingsService,
createGlobalSettingService,
SettingsValidationError,
} from "@bight-ts/settings";

Creates a typed, validated per-guild settings service backed by the storage facade.

CreateGuildSettingsServiceOptions<TSettings>

Section titled “CreateGuildSettingsServiceOptions<TSettings>”
PropertyTypeRequiredDescription
storageStorageContextYesThe storage facade from createStorage()
keystringYesNamespace key in storage (allows multiple independent settings blocks)
defaultsTSettingsYesDefault values for all fields
schemaz.ZodType<TSettings>NoZod schema for validation on read and write
migrate(value: unknown) => TSettingsNoMigration function for stored values from older formats
MethodSignatureDescription
get(guildId: string) => Promise<TSettings>Read settings, overlaying stored values on defaults
update(guildId: string, patch: Partial<TSettings>) => Promise<TSettings>Merge partial updates into existing settings
set(guildId: string, value: TSettings) => Promise<TSettings>Replace all settings for a guild
reset(guildId: string) => Promise<TSettings>Reset to defaults

Creates a typed global (non-guild-scoped) setting.

PropertyTypeRequiredDescription
storageStorageContextYesThe storage facade
keystringYesStorage key
defaultValueTValueYesDefault value
schemaz.ZodType<TValue>NoZod schema
migrate(value: unknown) => TValueNoMigration function
MethodSignatureDescription
get() => Promise<TValue>Read the value (returns default if unset)
set(value: TValue) => Promise<TValue>Write the value
reset() => Promise<TValue>Reset to default

Thrown when a Zod schema rejects a settings value during get, update, or set. Extends Error with name: "SettingsValidationError".