メインコンテンツまでスキップ
バージョン: v2 Next 🚧

抽象 クラス: Service

定義: src/service/Service.ts:45

アプリケーション横断のロジック・状態を担うコンポーネント(データベース、 設定、外部API クライアントなど)。

services/ ディレクトリに置くだけで自動ロードされ、あらゆるコンポーネント から import なしで this.services.<名前> として参照できます。 名前はクラス名から導出されます(ConfigServiceconfigGuildSettingsServiceguildSettings)。

@Service.define()
export class ConfigService extends Service {
readonly ownerIds = (Bun.env.OWNER_IDS ?? "").split(",");
}

// 別のコンポーネントから — import 不要:
this.services.config.ownerIds;

初期化・後始末はライフサイクルで行います: 接続を開くのは onLoad、 閉じるのは onUnload(client.destroy() で呼ばれます)。

拡張

によって拡張された

コンストラクター

コンストラクター

new Service(): Service;

戻り値

Service

継承元

Component.constructor

プロパティ

container

readonly container: Container;

定義: src/component/Component.ts:30

フレームワーク共有サービスを持つコンテナ。

継承元

Component.container


location

readonly location: string | null;

定義: src/component/Component.ts:39

自動探索されたファイルの絶対パス。明示登録の場合は null

継承元

Component.location


logger

readonly logger: Logger;

定義: src/component/Component.ts:36

このコンポーネント用の子ロガー({ store, component } が付与済み)。

継承元

Component.logger


name

readonly name: string;

定義: src/component/Component.ts:27

ストア内で一意なコンポーネント名。

継承元

Component.name


store

readonly store: ComponentStore<Component>;

定義: src/component/Component.ts:33

このコンポーネントが属するストア。

継承元

Component.store

アクセッサー

client

署名を取得する

get client(): Client;

定義: src/component/Component.ts:42

フレームワーククライアント。

戻り値

Client

継承元

Component.client


services

署名を取得する

get services(): Services;

定義: src/component/Component.ts:50

ロード済みサービスへのアクセス(services/ から自動収束)。 import せずに this.services.<名前> で参照できます。

戻り値

Services

継承元

Component.services

メソッド

onLoad()?

optional onLoad(): unknown;

定義: src/component/Component.ts:55

初期化後・ストア追加前に呼ばれます。

戻り値

unknown

継承元

Component.onLoad


onUnload()?

optional onUnload(): unknown;

定義: src/component/Component.ts:58

ストアから取り除かれるときに呼ばれます(クライアント終了時を含む)。

戻り値

unknown

継承元

Component.onUnload


define()

static define(options?): (_target, context) => void;

定義: src/service/Service.ts:47

サービスのメタデータを宣言します。省略可能です。

パラメータ

options?

ServiceOptions = {}

戻り値

(_target, context) => void