fynjs API
    Preparing search index...

    Class FynpoDepGraph

    fynpo dep graph manager

    Index
    autoSearched: boolean

    True when no packages patterns were configured and every directory had to be searched for a package.json. Callers can surface this - discovery is then implicit, and a repo that keeps packages outside the default location gets different results from the commands that don't auto-search.

    depMapByPath: Record<string, PackageDepData>
    packages: FynpoPackages
    resolvedCache: Record<string, string>

    Remember resolved package for a name@<semver> ID to its name@version ID. An empty string means no local version satisfies the semver.

    • Add a dependency relation

      Parameters

      Returns boolean

      boolean - whether dep is added (it's not if it already exist)

    • Add a dependency relation by package IDs

      Parameters

      • from: string

        id of package depend from

      • to: string

        id of package to depend on

      • depSection: DEP_SECTIONS

        section in package.json

      • OptionalindirectSteps: string[]

        intermediate dep steps

      Returns void

    • Add a dependency relation by package paths

      Parameters

      • from: string

        path of package depend from

      • to: string

        path of package to depend on

      • depSection: DEP_SECTIONS

        section in package.json

      • OptionalindirectSteps: string[]

        intermediate dep steps

      Returns void

    • Add depdencies from a list of dep relations

      Parameters

      Returns void

    • Add a package to the graph using the data from its package.json

      Parameters

      • pkgJson: Record<string, any>

        data from package.json

      • pkgPath: string

        relative path from the top dir of fynpo to the package. It must use / only.

      • OptionalpkgStr: string

        string form of package.json

      • management: { managed?: boolean; nested?: boolean } = {}

      Returns FynpoPackageInfo

    • Add a package to the graph by the path to its package.json file

      Parameters

      • pkgFile: string

        path to the package.json file

      • management: { managed?: boolean; nested?: boolean } = {}

      Returns Promise<FynpoPackageInfo>

    • check and update any circular dependency between packages

      Parameters

      Returns boolean

      true if circular else false

    • Check if a dependency should NOT be resolved as a local package.

      Checks both:

      1. Monorepo-wide noFynLocal option
      2. Per-package fyn.dependencies[name] setting (false or "no-fyn-local")

      Parameters

      • pkgInfo: FynpoPackageInfo

        the package that has the dependency

      • depName: string

        name of the dependency to check

      Returns boolean

      true if the dependency should NOT be resolved locally

    • Get a package at a directory

      Parameters

      • dir: string

        directory of package to get

      Returns FynpoPackageInfo

    • Get a package by its name

      Parameters

      • name: string

        name of package

      Returns FynpoPackageInfo

    • Return array of dep data sorted by dependency topological order

      Parameters

      • avoidCircs: boolean = false

        don't consider circular deps if true

      Returns { circulars: string[]; noCircSorted: any[]; sorted: any[] }

      array of paths of package dep data

      • circulars: string[]

        paths of packages with circular deps

      • noCircSorted: any[]

        paths of packages sorted topoly, excluding ones with circular deps

      • sorted: any[]

        paths of all packages sorted, include ones with circular deps

    • Return array of dep data sorted by dependency topological order

      Returns FynpoTopoPackages

      array of sorted package dep data

    • Read the packages of a fynpo monorepo.

      • if patterns is empty, then look for all package.json files, except the top level one.

      Returns Promise<FynpoPackages>

      • packages from the fynpo mono-repo
    • resolve packages from fynpo and resolve their dependency relations

      Parameters

      • indirects: boolean = false

        set true to resolve indirect deps also

      Returns Promise<void>

    • Resolve a package by its name and semver against the fynpo packages

      Parameters

      • name: string

        package name

      • semver: string

        semver

      • fallbackToFirst: boolean = true

        should use the first entry if semver didn't match any version

      Returns FynpoPackageInfo

      fynpo package info

    • update auxiliary package data

      • (re)generate byId map
      • (re)generate byPath map
      • sort multiple versions from latest to oldest in byName

      Returns void

    • update package depdencies map

      • re-entrant safe

      Returns void