@white-matrix/chainide-proxy-implements

- 支持 script 标签引入 或 es6 模块引入 - 提供 chainIDE 提供的 API 以及 默认 event (获取文件内容,获取文件修改事件...) - 支持往 chainIDE 注册内部 function 和 event 供其他组件使用 - 目前插件提供两块 view 注册区域,包含左侧 panel,与中间的 tabPanel,其中左侧 panel 必须包含 menuIcon

Usage no npm install needed!

<script type="module">
  import whiteMatrixChainideProxyImplements from 'https://cdn.skypack.dev/@white-matrix/chainide-proxy-implements';
</script>

README

Description

  • 支持 script 标签引入 或 es6 模块引入
  • 提供 chainIDE 提供的 API 以及 默认 event (获取文件内容,获取文件修改事件...)
  • 支持往 chainIDE 注册内部 function 和 event 供其他组件使用
  • 目前插件提供两块 view 注册区域,包含左侧 panel,与中间的 tabPanel,其中左侧 panel 必须包含 menuIcon

API

const newChainIdeProxyImp = new ChainIdeProxyImp({ pluginId: 'simplePlugin' });

// 注册插件方法(跨插件调用)
newChainIdeProxyImp.registerApiFunction(
  'registerSimplePluginFunc',
  ({ data }) => {
    console.log('registerSimplePluginFunc', data);
    return data;
  }
);

// 调用插件注册方法
newChainIdeProxyImp
  .callApiFunction(
    'simplePlugin',
    'registerSimplePluginFunc',
    'registerSimplePluginFunc res'
  )
  .then(({ data }) => {
    console.log('simplePlugin register function', data);
  });

// 插件内部订阅事件(跨插件通知)
newChainIdeProxyImp.subscribeEvent(
  'registerSimplePluginFunc.someChange',
  ({ data }) => console.log(data)
);

// 发布事件,可用于系统事件与插件内部事件相互通知
newChainIdeProxyImp.publishEvent(
  'registerSimplePluginFunc.someChange',
  'event'
);

// 调用 chainIDE fileSystem 提供的方法 获取文件树
newChainIdeProxyImp.fileSystemService('getFileTree').then(({ data }) => {
  console.log(data);
});

// 调用 chainIDE fileSystem 获取文件内容
newChainIdeProxyImp
  .fileSystemService('getFileContent', 'root/storage.sol')
  .then(({ data }) => {
    console.log(data);
  });

// 调用 chainIDE fileSystem 获取文件 path list 第二个参数为正则
newChainIdeProxyImp
  .fileSystemService('getAllPathByRegex', '.*')
  .then(({ data }) => {
    console.log('getAllPathByRegex', data);
  });

// 订阅 ChainIDE 系统事件文件变动
newChainIdeProxyImp.subscribeEvent('onFileContentChange', ({ data }) => {
  console.log(data);
});