UNPKG

msync

Version:

Easily manage building and syncing multiple node-modules in a flexibly defined workspace.

23 lines (22 loc) 979 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SortUtil = void 0; var libs_1 = require("./libs"); exports.SortUtil = { orderByDepth: function (packages) { var toDependenciesArray = function (pkg) { var deps = pkg.dependencies; var result = deps.map(function (dep) { return dep.name; }).map(function (name) { return [pkg.name, name]; }); return deps.length === 0 ? [[pkg.name]] : result; }; var graph = packages .map(function (pkg) { return toDependenciesArray(pkg); }) .reduce(function (acc, items) { items.forEach(function (item) { return acc.push(item); }); return acc; }, []); var names = (0, libs_1.toposort)(graph).reverse(); var result = names.map(function (name) { return libs_1.R.find(libs_1.R.propEq('name', name), packages); }); return libs_1.R.reject(libs_1.R.isNil, result); }, };