typeRelover()

in lib/generator.js [4104:4136]


  typeRelover(type, module) {
    if (module && module.idType === 'module') {
      const aliasId = _name(module);
      if (this.importsTypedef[aliasId] && this.importsTypedef[aliasId][type.lexeme]) {
        let index = this.uselessPack.indexOf(this.importsTypedef[aliasId][type.lexeme].import);
        if (index > -1) {
          this.uselessPack.splice(index, 1);
        }
        this.imports.push({
          pkgName: this.importsTypedef[aliasId][type.lexeme].import,
        });
        return this.importsTypedef[aliasId][type.lexeme].type;
      }
    }
    if (type.idType === 'typedef' && this.typedef[type.lexeme]) {
      if (this.typedef[type.lexeme].import && this.typedef[type.lexeme].type) {
        let index = this.uselessPack.indexOf(this.typedef[type.lexeme].import);
        if (index > -1) {
          this.uselessPack.splice(index, 1);
        }
        this.imports.push({
          pkgName: this.typedef[type.lexeme].import,
        });
        return this.typedef[type.lexeme].type;
      }
    }

    if (this.predefined[_name(type)] && this.predefined[_name(type)].isException) {
      return `${_name(type)}Error`;
    }

    return _name(type);
  }