1.1.32 • Published 7 months ago

@braken/application v1.1.32

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

@braken/application

Braken 框架的核心应用模块,提供应用程序生命周期管理和事件系统。

安装

pnpm add @braken/application

特性

  • 应用程序生命周期管理
  • 事件系统
  • 状态管理
  • 依赖注入集成
  • 优雅关闭
  • 自动清理

使用示例

import { Application } from '@braken/application';

// 创建应用
class MyApp extends Application {
  @Application.State
  private count = 0;

  @Application.Event('increment')
  onIncrement() {
    this.count++;
  }

  @Application.Watch('count')
  onCountChange(newValue: number, oldValue: number) {
    console.log(`Count changed from ${oldValue} to ${newValue}`);
  }

  async initialize() {
    // 初始化逻辑
    return () => {
      // 清理逻辑
    };
  }
}

// 使用应用
const app = new MyApp();
await app.initialize();

// 触发事件
app.$emit('increment');

// 终止应用
await app.$end();

API

Application 类

主要的应用基类,提供以下功能:

  • 生命周期管理
  • 事件系统
  • 状态管理
  • 依赖注入集成
  • 优雅关闭
  • 自动清理

静态装饰器

@Injectable

标记可注入的类:

@Application.Injectable

@Event

定义事件处理器:

@Application.Event(event: string)

@State

定义状态属性:

@Application.State

@Watch

监听状态变化:

@Application.Watch(key: string | symbol)

实例属性

$event

事件发射器:

public readonly $event: EventEmitter

$terminate

终止回调:

public $terminate?: EffectCallback

$terminated

终止状态:

public $terminated = false

实例方法

initialize

初始化应用:

abstract initialize(): Terminater

$end

终止应用:

async $end()

$emit

触发事件:

$emit<T extends keyof this>(key: T, ...args: any[])

静态方法

Terminate

终止所有应用:

static Terminate()

实现细节

  • 使用 EventEmitter 实现事件系统
  • 支持状态管理和监听
  • 支持依赖注入
  • 支持优雅关闭
  • 支持自动清理
  • 支持生命周期管理

注意事项

  • 需要正确实现 initialize 方法
  • 处理资源清理
  • 管理事件监听
  • 处理状态变化
  • 优化性能

依赖注入

@Application.Injectable
class MyService {
  @Application.Inject(Logger)
  private readonly logger: Logger;
}

许可证

MIT