Files
esengine/packages/framework/transaction/CHANGELOG.md
YHH bdbbf8a80a feat(ecs): 添加 @NetworkEntity 装饰器,支持自动广播实体生成/销毁 (#395)
* docs: add editor-app README with setup instructions

* docs: add separate EN/CN editor setup guides

* feat(ecs): add @NetworkEntity decorator for auto spawn/despawn broadcasting

- Add @NetworkEntity decorator to mark components for automatic network broadcasting
- ECSRoom now auto-broadcasts spawn on component:added event
- ECSRoom now auto-broadcasts despawn on entity:destroyed event
- Entity.destroy() emits entity:destroyed event via ECSEventType
- Entity active state changes emit ENTITY_ENABLED/ENTITY_DISABLED events
- Add enableAutoNetworkEntity config option to ECSRoom (default true)
- Update documentation for both Chinese and English
2025-12-30 16:19:01 +08:00

4.7 KiB

@esengine/transaction

2.0.4

Patch Changes

  • Updated dependencies []:
    • @esengine/server@3.0.0

2.0.3

Patch Changes

  • Updated dependencies [1f297ac]:
    • @esengine/server@2.0.0

2.0.2

Patch Changes

  • Updated dependencies [afdeb00]:
    • @esengine/server@1.3.0

2.0.1

Patch Changes

  • Updated dependencies [61a13ba]:
    • @esengine/server@1.2.0

2.0.0

Major Changes

  • #384 3b97838 Thanks @esengine! - ## Breaking Changes

    Storage API Simplification

    RedisStorage and MongoStorage now use factory pattern only for connection management. The direct client injection option has been removed.

    Before (removed):

    // Direct client injection - NO LONGER SUPPORTED
    const storage = new RedisStorage({ client: redisClient });
    const storage = new MongoStorage({ client: mongoClient, database: 'game' });
    

    After (factory pattern only):

    // RedisStorage
    const storage = new RedisStorage({
        factory: () => new Redis('redis://localhost:6379'),
        prefix: 'tx:',
        transactionTTL: 86400
    });
    
    // MongoStorage
    const storage = new MongoStorage({
        factory: async () => {
            const client = new MongoClient('mongodb://localhost:27017');
            await client.connect();
            return client;
        },
        database: 'game'
    });
    

    New Features

    • Lazy Connection: Connection is established on first operation, not at construction time
    • Automatic Cleanup: Support await using syntax (TypeScript 5.2+) for automatic resource cleanup
    • Explicit Close: Call storage.close() when done, or use await using for automatic disposal

    Migration Guide

    1. Replace client option with factory function
    2. Add storage.close() call when done, or use await using
    3. For MongoStorage, ensure factory returns a connected client

1.1.0

Minor Changes

  • #381 d4cef82 Thanks @esengine! - feat(transaction): 添加游戏事务系统 | add game transaction system

    @esengine/transaction - 游戏事务系统 | Game transaction system

    核心功能 | Core Features

    • TransactionManager - 事务生命周期管理 | Transaction lifecycle management
      • begin()/run() 创建事务 | Create transactions
      • 分布式锁支持 | Distributed lock support
      • 自动恢复未完成事务 | Auto-recover pending transactions
    • TransactionContext - 事务上下文 | Transaction context
      • 操作链式添加 | Chain operation additions
      • 上下文数据共享 | Context data sharing
      • 超时控制 | Timeout control
    • Saga 模式 - 补偿式事务 | Compensating transactions
      • execute/compensate 成对操作 | Paired execute/compensate
      • 自动回滚失败事务 | Auto-rollback on failure

    存储实现 | Storage Implementations

    • MemoryStorage - 内存存储,用于开发测试 | In-memory for dev/testing
    • RedisStorage - Redis 分布式锁和缓存 | Redis distributed lock & cache
    • MongoStorage - MongoDB 持久化事务日志 | MongoDB persistent transaction logs

    内置操作 | Built-in Operations

    • CurrencyOperation - 货币增减操作 | Currency add/deduct
    • InventoryOperation - 背包物品操作 | Inventory item operations
    • TradeOperation - 玩家交易操作 | Player trade operations

    分布式事务 | Distributed Transactions

    • SagaOrchestrator - 跨服务器 Saga 编排 | Cross-server Saga orchestration
    • 完整的 Saga 日志记录 | Complete Saga logging
    • 未完成 Saga 恢复 | Incomplete Saga recovery

    Room 集成 | Room Integration

    • withTransactions() - Room mixin 扩展 | Room mixin extension
    • TransactionRoom - 预配置的事务 Room 基类 | Pre-configured transaction Room base

    文档 | Documentation

    • 完整的中英文文档 | Complete bilingual documentation
    • 核心概念、存储层、操作、分布式事务 | Core concepts, storage, operations, distributed