create-redux-devtool-plugin.ts 898 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import { definePluginCreator } from '@flowgram.ai/core';
  6. import { ECSConnector, VariableConnector } from './connectors';
  7. export interface ReduxDevToolPluginOptions {
  8. enable?: boolean;
  9. // 需要监听的内容
  10. ecs?: boolean;
  11. variable?: boolean;
  12. }
  13. export const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({
  14. onBind({ bind }, opts) {
  15. const { enable } = opts;
  16. if (!enable) {
  17. return;
  18. }
  19. bind(ECSConnector).toSelf().inSingletonScope();
  20. bind(VariableConnector).toSelf().inSingletonScope();
  21. },
  22. onInit(ctx, opts) {
  23. const { enable, ecs = true, variable = false } = opts;
  24. if (!enable) {
  25. return;
  26. }
  27. if (ecs) {
  28. ctx.get(ECSConnector);
  29. }
  30. if (variable) {
  31. ctx.get(VariableConnector);
  32. }
  33. },
  34. });