add map & eq to getServiceInterface

This commit is contained in:
Aiden McClelland
2025-12-17 19:14:21 -07:00
parent 7b3c74179b
commit 5a9510238e
5 changed files with 160 additions and 106 deletions

View File

@@ -1,13 +1,13 @@
import { object } from "ts-matches"
export function deepEqual(...args: unknown[]) {
if (!object.test(args[args.length - 1])) return args[args.length - 1]
const objects = args.filter(object.test)
if (objects.length === 0) {
for (const x of args) if (x !== args[0]) return false
return true
}
if (objects.length !== args.length) return false
if (objects.some(Array.isArray) && !objects.every(Array.isArray)) return false
const allKeys = new Set(objects.flatMap((x) => Object.keys(x)))
for (const key of allKeys) {
for (const x of objects) {