MCPcopy Create free account
hub / github.com/formkit/formkit / getBuildOrder

Function getBuildOrder

scripts/utils.mjs:120–138  ·  view source on GitHub ↗
(packages = [], orderedPackages = [])

Source from the content-addressed store, hash-verified

118 * Determine the correct build order of a provided array of packages
119 */
120export function getBuildOrder(packages = [], orderedPackages = []) {
121 const packagesSet = new Set(packages)
122 let orderedPackagesSet = new Set(orderedPackages)
123 for (const pkg of packages) {
124 packagesSet.delete(pkg)
125 const dependencies = getPackageDependencies(pkg)
126 for (const dep of dependencies) {
127 if (!orderedPackagesSet.has(dep)) {
128 const nestedDeps = getBuildOrder([dep], [...orderedPackagesSet])
129 orderedPackagesSet = new Set([...nestedDeps, dep])
130 }
131 }
132 if (packagesSet && packages.size) {
133 return getBuildOrder(packages, orderedPackages)
134 }
135 orderedPackagesSet.add(pkg)
136 }
137 return [...orderedPackagesSet]
138}
139
140/**
141 * build a dependency tree of packages. If the inverse argument is supplied

Callers 3

ciPublishFunction · 0.90
buildAllPackagesFunction · 0.90
flattenDependencyTreeFunction · 0.85

Calls 1

getPackageDependenciesFunction · 0.85

Tested by

no test coverage detected