hasOpenRef() {
    var _a2;
    if (!!this.externalProjectRefCount) {
      return true;
    }
    if (this.isClosed()) {
      return false;
    }
    const configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(this.canonicalConfigFilePath);
    if (this.projectService.hasPendingProjectUpdate(this)) {
      return !!((_a2 = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a2.size);
    }
    return !!configFileExistenceInfo.openFilesImpactedByConfigFile && forEachEntry(
      configFileExistenceInfo.openFilesImpactedByConfigFile,
      (_value, infoPath) => {
        const info = this.projectService.getScriptInfoForPath(infoPath);
        return this.containsScriptInfo(info) || !!forEachResolvedProjectReferenceProject(
          this,
          info.path,
          (child) => child.containsScriptInfo(info),
          0 /* Find */
        );
      }
    ) || false;
  }
Returns true if the project is needed by any of the open script info/external project

@internal