write()

in functions/src/util.ts [14:83]


  write(data: any) {
    let log = console.log;
    let level = 'info';
    if(data.level === 60) {// fatal
      log = console.error;
      level = 'fatal';
    } else if(data.level === 50) {// error
      log = console.error;
      level = 'error';
    } else if(data.level === 40) {// warn
      log = console.warn;
      level = 'warn';
    } else if(data.level === 30) {// info
      level = 'info';
      log = console.info;
    } else if(data.level === 20) {// debug
      level = 'debug';
      log = console.log;
    } else if(data.level === 10) {// trace
      level = 'trace';
      log = console.log;
    }

    let event = '';
    let extraData = '';
    const context = data.context;
    if(context) {
      event = context.name;
      const payload = data.context.payload;

      let path = '';
      switch(event) {
        case 'pull_request':
          path = payload.pull_request.html_url;
          break;
        case 'pull_request_review':
          path = payload.review.html_url;
          break;
        case 'issues':
          path = payload.issue.html_url;
          break;
        case 'push':
          path = payload.compare;
          break;
        case 'status':
          path = payload.commit.html_url;
          break;
        case 'installation':
          path = payload.installation.html_url;
          break;
        case 'installation_repositories':
          path = payload.installation.html_url;
          break;
      }

      if(payload.action) {
        event += `.${payload.action}`;
      }
      event = `[${event}]`;

      extraData = ` [${context.id}|${path}]`;
      if(context.id) {
        this.store.collection('events').doc(context.id).set(context.payload).catch(err => {
          throw err;
        });
      }
    }

    log(`[${level}]${event} ${typeof data === 'object' ? (data.err && data.err.stack ? data.err.stack : data.msg) : data}${extraData}`);
  }