lib/lua: only quote table keys when needed

This commit is contained in:
Matt Sturgeon 2024-06-26 12:27:55 +01:00
parent 01cf43dbaa
commit 00ce71f51a
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
2 changed files with 25 additions and 13 deletions

View file

@ -47,16 +47,18 @@ rec {
mapAttrsToList (
n: v:
let
keyString =
if n == "__emptyString" then
"['']"
else if hasPrefix "__rawKey__" n then
"[${removePrefix "__rawKey__" n}]"
else if isIdentifier n then
n
else
"[${toLuaObject n}]";
valueString = toLuaObject v;
in
if hasPrefix "__unkeyed" n then
valueString
else if hasPrefix "__rawKey__" n then
''[${removePrefix "__rawKey__" n}] = '' + valueString
else if n == "__emptyString" then
"[''] = " + valueString
else
"[${toLuaObject n}] = " + valueString
if hasPrefix "__unkeyed" n then valueString else "${keyString} = ${valueString}"
) (filterAttrs (n: v: v != null && (toLuaObject v != "{}")) args)
))
+ "}"