UNPKG

purs-pkg-deps

Version:

Query package dependencies in PureScript package-sets

51 lines (50 loc) 2.07 kB
// Generated by purs version 0.14.3 "use strict"; 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 };