flow-document-container.mock.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import { EntityManager } from '@flowgram.ai/core'
  6. import {
  7. FlowDocument,
  8. FlowDocumentContainerModule,
  9. FlowDocumentContribution,
  10. FlowNodeTransformData,
  11. FlowNodeTransitionData,
  12. } from '@flowgram.ai/document'
  13. import { Container, decorate, injectable, type interfaces } from 'inversify'
  14. export class FlowDocumentMockRegister implements FlowDocumentContribution {
  15. registerDocument(document: FlowDocument) {
  16. document.registerNodeDatas(FlowNodeTransformData, FlowNodeTransitionData)
  17. }
  18. }
  19. decorate(injectable(), FlowDocumentMockRegister)
  20. export function createDocumentContainer(): interfaces.Container {
  21. const container = new Container()
  22. container.load(FlowDocumentContainerModule)
  23. container.bind(EntityManager).toSelf()
  24. container.bind(FlowDocumentContribution).to(FlowDocumentMockRegister)
  25. return container
  26. }
  27. export function createDocument(): FlowDocument {
  28. return createDocumentContainer().get(FlowDocument)
  29. }