当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript embark.Events类代码示例

本文整理汇总了TypeScript中embark.Events的典型用法代码示例。如果您正苦于以下问题:TypeScript Events类的具体用法?TypeScript Events怎么用?TypeScript Events使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Events类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: cb

  constructor(embark: Embark, options: any) {
    this.embark = embark;
    this.events = options.events;
    this.plugins = options.plugins;
    this.version = options.version;
    this.logger = options.logger;
    this.fs = embark.fs;
    this.ipc = options.ipc;
    this.config = options.config;
    this.history = [];
    this.cmdHistoryFile = options.cmdHistoryFile || this.fs.dappPath(".embark", "cmd_history");
    this.providerReady = false;
    this.loadHistory();

    if (this.ipc.isServer()) {
      this.ipc.on("console:executeCmd", (cmd: string, cb: any) => {
        this.executeCmd(cmd, (err: string, result: any) => {
          let error = null;
          if (err) {
            // reformat for IPC reply
            error = { name: "Console error", message: err, stack: err };
          }
          cb(error, result);
        });
      });
      this.ipc.on("console:history:save", true, (cmd: string) => {
        this.saveHistory(cmd, true);
      });
    }
    this.events.setCommandHandler("console:executeCmd", this.executeCmd.bind(this));
    this.events.setCommandHandler("console:history", (cb: any) => this.getHistory(this.cmdHistorySize(), cb));
    this.events.setCommandHandler("console:provider:ready", (cb: any) => {
      if (this.providerReady || this.isEmbarkConsole) {
        return cb();
      }
      this.events.once("console:provider:done", cb);
    });
    this.registerConsoleCommands();

    if (this.isEmbarkConsole) {
      return;
    }
    this.registerEmbarkJs((err?: Error |  null) => {
      if (err) {
        return this.logger.error(err);
      }
      this.providerReady = true;
      this.events.emit("console:provider:done");
    });
    this.registerApi();

    this.suggestions = new Suggestions(embark, options);
  }
开发者ID:iurimatias,项目名称:embark-framework,代码行数:53,代码来源:index.ts

示例2:

 this.registerEmbarkJs((err?: Error |  null) => {
   if (err) {
     return this.logger.error(err);
   }
   this.providerReady = true;
   this.events.emit("console:provider:done");
 });
开发者ID:iurimatias,项目名称:embark-framework,代码行数:7,代码来源:index.ts

示例3: saveHistory

  private saveHistory(cmd: string, fromIpcClient = false) {
    const history = this.history;
    if (fromIpcClient) {
      if (history[history.length - 1] !== cmd) {
        history.push(cmd);
      }
      this.events.emit("console:history:save", cmd);
      return this.ipc.broadcast("console:history:save", cmd, true);
    }

    history.push(cmd);
    if (this.ipc.isServer()) {
      this.ipc.broadcast("console:history:save", cmd, true);
    } else if (this.ipc.connected) {
      this.ipc.client.emit("console:history:save", cmd);
    }

    if (this.fs.existsSync(dirname(this.cmdHistoryFile))) {
      this.fs.writeFileSync(
        this.cmdHistoryFile,
        history
          .slice(Math.max(0, history.length - this.cmdHistorySize()))
          .reverse()
          .filter((line: string) => line.trim())
          .join("\n"),
      );
    }
  }
开发者ID:iurimatias,项目名称:embark-framework,代码行数:28,代码来源:index.ts

示例4: executeCmd

  private executeCmd(cmd: string, callback: any) {
    // if this is the embark console process, send the command to the process
    // running all the needed services (ie the process running `embark run`)
    if (this.isEmbarkConsole) {
      return this.ipc.request("console:executeCmd", cmd, callback);
    }

    if (!(cmd.split(" ")[0] === "history" || cmd === __("history"))) {
      this.saveHistory(cmd);
    }
    const plugins = this.plugins.getPluginsProperty("console", "console");
    const helpDescriptions = [];
    for (const plugin of plugins) {
      if (plugin.description) {
        helpDescriptions.push({
          description: plugin.description,
          matches: plugin.matches,
          usage: plugin.usage,
        });
      }
      if (plugin.matches) {
        const isFunction = typeof plugin.matches === "function";
        if ((isFunction && plugin.matches.call(this, cmd))
          || (!isFunction && plugin.matches.includes(cmd))) {
          return plugin.process.call(this, cmd, callback);
        }
        continue;
      }

      const pluginResult = plugin.call(this, cmd, {});

      if (typeof pluginResult !== "object") {
        if (pluginResult !== false && pluginResult !== "false" && pluginResult !== undefined) {
          this.logger.warn("[DEPRECATED] In future versions of embark, we expect the console command to return an object " +
            "having 2 functions: match and process." +
            " The documentation with example can be found here: https://embark.status.im/docs/plugin_reference.html#embark-registerConsoleCommand-callback-options");
          return callback(null, pluginResult);
        }
      } else if (pluginResult.match()) {
        return pluginResult.process(callback);
      }
    }

    const output = this.processEmbarkCmd(cmd, helpDescriptions);
    if (output) {
      return callback(null, output);
    }

    this.events.request("runcode:eval", cmd, (err: Error, result: any) => {
      if (err) {
        return callback(err.message);
      }
      callback(null, result);
    }, true);
  }
开发者ID:iurimatias,项目名称:embark-framework,代码行数:55,代码来源:index.ts

示例5: next

 (next: any) => {
   if (this.isEmbarkConsole) {
     return next();
   }
   const connectCode = `EmbarkJS.Blockchain.connectConsole((err) => {
     if(err) throw new Error("[VM]: Error connecting to blockchain. " + err);
   });`;
   this.events.request("runcode:eval", connectCode, (err: Error, _result: any) => {
     cb(err);
   });
 },
开发者ID:iurimatias,项目名称:embark-framework,代码行数:11,代码来源:index.ts

示例6: setTimeout

 (next: any) => {
   const waitingForReady = setTimeout(() => {
     this.logger.warn(__("Waiting for the blockchain connector to be ready..."));
     // TODO add docs link to how to install one
     this.logger.warn(__("If you did not install a blockchain connector, stop this process and install one"));
   }, 5000);
   this.events.request("blockchain:connector:ready", () => {
     clearTimeout(waitingForReady);
     next();
   });
 },
开发者ID:iurimatias,项目名称:embark-framework,代码行数:11,代码来源:index.ts


注:本文中的embark.Events类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。