From 9f3d4c293cdec8046db150f169023dca237ec9cf Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Sun, 26 Jan 2025 22:19:26 -0500 Subject: [PATCH] fix: handle single length list config paths that already exist --- lib/igniter/project/config.ex | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/igniter/project/config.ex b/lib/igniter/project/config.ex index af64db6..e8667be 100644 --- a/lib/igniter/project/config.ex +++ b/lib/igniter/project/config.ex @@ -542,12 +542,27 @@ defmodule Igniter.Project.Config do :error {:ok, zipper} -> - with {:ok, zipper} <- Igniter.Code.Function.move_to_nth_argument(zipper, 2), - {:ok, zipper} <- Igniter.Code.Keyword.put_in_keyword(zipper, path, value, updater) do - {:ok, zipper} + if path == [] do + case Igniter.Code.Function.move_to_nth_argument(zipper, 2) do + {:ok, zipper} -> + if updater do + updater.(zipper) + else + {:ok, Igniter.Code.Common.replace_code(zipper, value)} + end + + _ -> + :error + end else - _ -> - :error + with {:ok, zipper} <- Igniter.Code.Function.move_to_nth_argument(zipper, 2), + {:ok, zipper} <- + Igniter.Code.Keyword.put_in_keyword(zipper, path, value, updater) do + {:ok, zipper} + else + _ -> + :error + end end end end