@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 2.51 kB
Source Map (JSON)
{"version":3,"file":"default-values-equal.mjs","names":[],"sources":["../../../../src/libs/collection/helpers/default-values-equal.ts"],"sourcesContent":["/**\n * Determines if the default values are equal for the collection/brick columns and the DB Adapter columns\n */\nconst defaultValuesEqual = (\n\tnewDefault: unknown,\n\texistingDefault: unknown,\n): boolean => {\n\t//* direct equality\n\tif (newDefault === existingDefault) return true;\n\n\t//* null/undefined cases\n\tif (newDefault == null || existingDefault == null) {\n\t\treturn newDefault === existingDefault;\n\t}\n\n\t//* handle NaN\n\tif (typeof newDefault === \"number\" && typeof existingDefault === \"number\") {\n\t\tif (Number.isNaN(newDefault) && Number.isNaN(existingDefault)) return true;\n\t}\n\n\t//* handle arrays\n\tif (Array.isArray(newDefault) && Array.isArray(existingDefault)) {\n\t\tif (newDefault.length !== existingDefault.length) return false;\n\t\treturn newDefault.every((val, index) =>\n\t\t\tdefaultValuesEqual(val, existingDefault[index]),\n\t\t);\n\t}\n\n\t//* handle objects\n\tif (\n\t\ttypeof newDefault === \"object\" &&\n\t\ttypeof existingDefault === \"object\" &&\n\t\t!Array.isArray(newDefault) &&\n\t\t!Array.isArray(existingDefault)\n\t) {\n\t\tconst newKeys = Object.keys(newDefault as object).sort();\n\t\tconst existingKeys = Object.keys(existingDefault as object).sort();\n\n\t\tif (newKeys.length !== existingKeys.length) return false;\n\t\tif (!newKeys.every((key, i) => key === existingKeys[i])) return false;\n\n\t\treturn newKeys.every((key) =>\n\t\t\tdefaultValuesEqual(\n\t\t\t\t(newDefault as Record<string, unknown>)[key],\n\t\t\t\t(existingDefault as Record<string, unknown>)[key],\n\t\t\t),\n\t\t);\n\t}\n\n\t//* fallback - noot directly comparalbe or differnt types\n\treturn false;\n};\n\nexport default defaultValuesEqual;\n"],"mappings":"AAGA,MAAM,GACL,EACA,IACa,CAEb,GAAI,IAAe,EAAiB,MAAO,GAG3C,GAAI,GAAc,MAAQ,GAAmB,KAC5C,OAAO,IAAe,EAIvB,GAAI,OAAO,GAAe,UAAY,OAAO,GAAoB,UAC5D,OAAO,MAAM,CAAU,GAAK,OAAO,MAAM,CAAe,EAAG,MAAO,GAIvE,GAAI,MAAM,QAAQ,CAAU,GAAK,MAAM,QAAQ,CAAe,EAE7D,OADI,EAAW,SAAW,EAAgB,QACnC,EAAW,OAAO,EAAK,IAC7B,EAAmB,EAAK,EAAgB,EAAM,CAC/C,EAID,GACC,OAAO,GAAe,UACtB,OAAO,GAAoB,UAC3B,CAAC,MAAM,QAAQ,CAAU,GACzB,CAAC,MAAM,QAAQ,CAAe,EAC7B,CACD,IAAM,EAAU,OAAO,KAAK,CAAoB,CAAC,CAAC,KAAK,EACjD,EAAe,OAAO,KAAK,CAAyB,CAAC,CAAC,KAAK,EAKjE,OAHI,EAAQ,SAAW,EAAa,QAChC,CAAC,EAAQ,OAAO,EAAK,IAAM,IAAQ,EAAa,EAAE,EAAU,GAEzD,EAAQ,MAAO,GACrB,EACE,EAAuC,GACvC,EAA4C,EAC9C,CACD,CACD,CAGA,MAAO,EACR"}