create-redux-devtool-plugin.ts 798 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { definePluginCreator } from '@flowgram.ai/core';
  2. import { ECSConnector, VariableConnector } from './connectors';
  3. export interface ReduxDevToolPluginOptions {
  4. enable?: boolean;
  5. // 需要监听的内容
  6. ecs?: boolean;
  7. variable?: boolean;
  8. }
  9. export const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({
  10. onBind({ bind }, opts) {
  11. const { enable } = opts;
  12. if (!enable) {
  13. return;
  14. }
  15. bind(ECSConnector).toSelf().inSingletonScope();
  16. bind(VariableConnector).toSelf().inSingletonScope();
  17. },
  18. onInit(ctx, opts) {
  19. const { enable, ecs = true, variable = false } = opts;
  20. if (!enable) {
  21. return;
  22. }
  23. if (ecs) {
  24. ctx.get(ECSConnector);
  25. }
  26. if (variable) {
  27. ctx.get(VariableConnector);
  28. }
  29. },
  30. });