private detectConstructFrameworks()

in src/api/catalog-search/catalog-search.ts [345:385]


  private detectConstructFrameworks() {
    const results: CatalogConstructFrameworks = [...this.map.values()].reduce(
      (frameworks: CatalogConstructFrameworks, pkg: ExtendedCatalogPackage) => {
        const { metadata } = pkg;

        const frameworkName = metadata?.constructFramework?.name;
        const majorVersion = metadata?.constructFramework?.majorVersion;

        if (frameworkName) {
          const entry = frameworks[frameworkName];

          if (
            majorVersion !== undefined &&
            !entry.majorVersions.includes(majorVersion)
          ) {
            entry.majorVersions.push(majorVersion);
          }

          entry.pkgCount += 1;
        }

        return frameworks;
      },
      {
        [CDKType.awscdk]: {
          majorVersions: [],
          pkgCount: 0,
        },
        [CDKType.cdk8s]: {
          majorVersions: [],
          pkgCount: 0,
        },
        [CDKType.cdktf]: {
          majorVersions: [],
          pkgCount: 0,
        },
      }
    );

    return results;
  }