Skip to content

Commit

Permalink
refactor(haumea): addLoader
Browse files Browse the repository at this point in the history
  • Loading branch information
GTrunSec committed Aug 23, 2023
1 parent 7648c0a commit fb21dcc
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 5 deletions.
1 change: 1 addition & 0 deletions examples/_loader.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ inputs.haumea.lib.load {
src = ./.;
inputs = {
inherit inputs lib;
inherit (lib) configs flake;
};
}
15 changes: 13 additions & 2 deletions src/configs/haumea.nix
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,22 @@ pop {
inputs = { };
init = {
src = ./.;
loader = haumea.lib.loaders.default;
loader = with haumea.lib; [ (matchers.nix loaders.default) ];
transformer = [ ];
inputs = { };
layout = "default";
};
mergedOutputs = { };
imports = [ ];
loader = [ ];
outputs = { };
};
extension = self: super: {
outputs = haumea.lib.load (
l.removeAttrs
(types.haumeaInit ({
src = self.init.src;
loader = self.init.loader;
loader = self.loader ++ self.init.loader;
layout = self.init.layout;
transformer = self.init.transformer ++ self.transformer;
inputs = l.removeAttrs (self.init.inputs // self.inputs) [ "self" ];
Expand Down Expand Up @@ -85,6 +86,16 @@ pop {
)
);

addLoader =
defun
(
with types; [
(list any)
haumeaPop
]
)
(loader: extendPop self (self: super: { loader = super.loader ++ loader; }));

addNixOSMerge =
defun
(
Expand Down
2 changes: 2 additions & 0 deletions src/configs/structAttrs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ let

haumeaPop = structAttrs.pop // rec {
inputs = attrs any;
loader = list any;
imports = list any;
init = struct "haumea.load" {
src = either path string;
Expand All @@ -35,6 +36,7 @@ let

addTransformer = function;
addInputs = function;
addLoader = function;

addMerge = function;
addNixOSMerge = function;
Expand Down
3 changes: 3 additions & 0 deletions tests/_snapshots/haumea
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
data = {
success = true;
value = {
data = {
foo = "baz";
};
editorconfig = {
"*" = {
charset = "utf-8";
Expand Down
1 change: 1 addition & 0 deletions tests/haumea/__data/data.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
with dmerge; merge { foo = "bar"; } { foo = "baz"; }
12 changes: 9 additions & 3 deletions tests/haumea/expr.nix
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,15 @@ let
);

default =
((haumea.setInit {
with inputs.haumea.lib;
(((haumea.setInit {
src = ./__data;
inputs = {
lib = inputs.nixlib.lib;
dmerge = inputs.dmerge;
};
transformer = with inputs.haumea.lib.transformers; [ liftDefault ];
transformer = [ transformers.liftDefault ];
loader = [ ];
}).addMerge
(
prev:
Expand All @@ -61,7 +64,10 @@ let
prev:
with dmerge;
merge prev { treefmt.formatter.prettier.includes = append [ "*.jsl" ]; }
);
)
).addLoader
[ (matchers.nix loaders.scoped) ];

inherit (builtins) deepSeq mapAttrs tryEval;
in
mapAttrs (_: x: tryEval (deepSeq x x)) {
Expand Down

0 comments on commit fb21dcc

Please sign in to comment.