purs-pkg-deps
Version:
Query package dependencies in PureScript package-sets
51 lines (50 loc) • 2.25 kB
JavaScript
// Generated by purs version 0.14.3
;
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
};