UNPKG

purs-pkg-deps

Version:

Query package dependencies in PureScript package-sets

51 lines (50 loc) 2.25 kB
// Generated by purs version 0.14.3 "use strict"; var Data_Array = require("../Data.Array/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_Serialization = require("../Packages.Serialization/index.js"); var addUsage = function (packageName) { return function (dependencyName) { return function (packages) { var v = Data_Map_Internal.lookup(Data_Ord.ordString)(dependencyName)(packages); if (v instanceof Data_Maybe.Nothing) { return Data_Map_Internal.insert(Data_Ord.ordString)(dependencyName)(Data_Set.singleton(packageName))(packages); }; if (v instanceof Data_Maybe.Just) { return Data_Map_Internal.insert(Data_Ord.ordString)(dependencyName)(Data_Set.insert(Data_Ord.ordString)(packageName)(v.value0))(packages); }; throw new Error("Failed pattern match at Packages.Pivoted (line 19, column 3 - line 23, column 67): " + [ v.constructor.name ]); }; }; }; var addDependenciesUsage = function (v) { return function (packages) { return Data_Array.foldr(addUsage(v.value0))(packages)(v.value1.dependencies); }; }; var pivot = function (packages) { return Data_Array.foldr(addDependenciesUsage)(Data_Map_Internal.empty)(packages); }; var pivotedPackagesJsonString = function (packages) { return Packages_Serialization.writePackageUseJSON(pivot(packages)); }; var simpleReversedDependencies = function (packages) { return function (target) { var v = Data_Map_Internal.lookup(Data_Ord.ordString)(target)(pivot(packages)); if (v instanceof Data_Maybe.Nothing) { return Data_Set.empty; }; if (v instanceof Data_Maybe.Just) { return v.value0; }; throw new Error("Failed pattern match at Packages.Pivoted (line 40, column 3 - line 44, column 11): " + [ v.constructor.name ]); }; }; module.exports = { pivot: pivot, pivotedPackagesJsonString: pivotedPackagesJsonString, simpleReversedDependencies: simpleReversedDependencies };