purs-pkg-deps
Version:
Query package dependencies in PureScript package-sets
70 lines (69 loc) • 3.5 kB
JavaScript
// Generated by purs version 0.14.3
;
var Control_Comonad = require("../Control.Comonad/index.js");
var Control_Comonad_Store = require("../Control.Comonad.Store/index.js");
var Control_Comonad_Store_Class = require("../Control.Comonad.Store.Class/index.js");
var Control_Comonad_Store_Trans = require("../Control.Comonad.Store.Trans/index.js");
var Control_Extend = require("../Control.Extend/index.js");
var Data_Foldable = require("../Data.Foldable/index.js");
var Data_Functor = require("../Data.Functor/index.js");
var Data_Identity = require("../Data.Identity/index.js");
var Data_Map_Internal = require("../Data.Map.Internal/index.js");
var Data_Maybe = require("../Data.Maybe/index.js");
var Data_Monoid = require("../Data.Monoid/index.js");
var Data_Ord = require("../Data.Ord/index.js");
var Data_Semigroup = require("../Data.Semigroup/index.js");
var Data_Set = require("../Data.Set/index.js");
var Packages_Normal = require("../Packages.Normal/index.js");
var Packages_Pivoted = require("../Packages.Pivoted/index.js");
var wfix = function (dictComonad) {
return function (w) {
return Control_Comonad.extract(dictComonad)(w)(Control_Extend.extend(dictComonad.Extend0())(wfix(dictComonad))(w));
};
};
var immediateConstituentsOf = function (packageMap) {
return function (target) {
var v = Data_Map_Internal.lookup(Data_Ord.ordString)(target)(packageMap);
if (v instanceof Data_Maybe.Just) {
return v.value0;
};
if (v instanceof Data_Maybe.Nothing) {
return Data_Set.empty;
};
throw new Error("Failed pattern match at Packages.Transitivity (line 20, column 3 - line 22, column 23): " + [ v.constructor.name ]);
};
};
var storedDependencies = function (packageMap) {
return function (seed) {
return Control_Comonad_Store.store(Data_Foldable.foldMap(Data_Set.foldableSet)(Data_Set.monoidSet(Data_Ord.ordString))(immediateConstituentsOf(packageMap)))(Data_Set.singleton(seed));
};
};
var allPackageDeps = function (packageMap) {
return function (seed) {
var go = function (deps) {
return function (v) {
if (Data_Set.isEmpty(deps)) {
return Data_Monoid.mempty(Data_Set.monoidSet(Data_Ord.ordString));
};
return Data_Semigroup.append(Data_Set.semigroupSet(Data_Ord.ordString))(deps)(Control_Comonad_Store_Class.peek(Control_Comonad_Store_Class.comonadStoreStoreT(Data_Identity.comonadIdentity))(deps)(v));
};
};
return Control_Extend.extend(Control_Comonad_Store_Trans.extendStoreT(Data_Identity.extendIdentity))(wfix(Control_Comonad_Store_Trans.comonadStoreT(Data_Identity.comonadIdentity)))(Data_Functor.map(Control_Comonad_Store_Trans.functorStoreT(Data_Identity.functorIdentity))(go)(storedDependencies(packageMap)(seed)));
};
};
var transitiveDependencies = function (packages) {
return function (seed) {
return function (isReversed) {
var packageMap = (function () {
if (isReversed) {
return Packages_Pivoted.pivot(packages);
};
return Packages_Normal.buildPackageMap(packages);
})();
return Control_Comonad.extract(Control_Comonad_Store_Trans.comonadStoreT(Data_Identity.comonadIdentity))(allPackageDeps(packageMap)(seed));
};
};
};
module.exports = {
transitiveDependencies: transitiveDependencies
};