purs-pkg-deps
Version:
Query package dependencies in PureScript package-sets
51 lines (50 loc) • 2.07 kB
JavaScript
// Generated by purs version 0.14.3
;
var Data_List = require("../Data.List/index.js");
var Data_List_Types = require("../Data.List.Types/index.js");
var Data_Map_Internal = require("../Data.Map.Internal/index.js");
var Data_Maybe = require("../Data.Maybe/index.js");
var Data_Ord = require("../Data.Ord/index.js");
var Data_Set = require("../Data.Set/index.js");
var Packages_Normal = require("../Packages.Normal/index.js");
var nextPathStep = function (packageMap) {
return function (target) {
var v = Data_Map_Internal.lookup(Data_Ord.ordString)(target)(packageMap);
if (v instanceof Data_Maybe.Just) {
return Data_Set.toUnfoldable(Data_List_Types.unfoldableList)(v.value0);
};
if (v instanceof Data_Maybe.Nothing) {
return Data_List_Types.Nil.value;
};
throw new Error("Failed pattern match at Packages.Paths (line 30, column 3 - line 32, column 19): " + [ v.constructor.name ]);
};
};
var findAllPaths = function (source) {
return function (target) {
return function (packageMap) {
return function (preface) {
var f = function (currentPath) {
return function (name) {
var $3 = name === target;
if ($3) {
return Data_List.singleton(Data_List.reverse(new Data_List_Types.Cons(name, currentPath)));
};
return findAllPaths(name)(target)(packageMap)(new Data_List_Types.Cons(name, currentPath));
};
};
var dependents = nextPathStep(packageMap)(source);
return Data_List.concatMap(f(preface))(dependents);
};
};
};
};
var allPaths = function (source) {
return function (target) {
return function (packages) {
return findAllPaths(source)(target)(Packages_Normal.buildPackageMap(packages))(Data_List_Types.Nil.value);
};
};
};
module.exports = {
allPaths: allPaths
};