Optimize some utils

This commit is contained in:
Jon Staab
2025-10-03 10:11:07 -07:00
parent f8dfeee60c
commit 0ada7d4b29
+24 -12
View File
@@ -1512,10 +1512,13 @@ export const member =
* @param v - Value to add * @param v - Value to add
*/ */
export const addToKey = <T>(m: Record<string, Set<T>>, k: string, v: T) => { export const addToKey = <T>(m: Record<string, Set<T>>, k: string, v: T) => {
const s = m[k] || new Set<T>() const s = m[k]
s.add(v) if (s) {
m[k] = s s.add(v)
} else {
m[k] = new Set([v])
}
} }
/** /**
@@ -1525,10 +1528,13 @@ export const addToKey = <T>(m: Record<string, Set<T>>, k: string, v: T) => {
* @param v - Value to push * @param v - Value to push
*/ */
export const pushToKey = <T>(m: Record<string, T[]>, k: string, v: T) => { export const pushToKey = <T>(m: Record<string, T[]>, k: string, v: T) => {
const a = m[k] || [] const a = m[k]
a.push(v) if (a) {
m[k] = a a.push(v)
} else {
m[k] = [v]
}
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -1542,10 +1548,13 @@ export const pushToKey = <T>(m: Record<string, T[]>, k: string, v: T) => {
* @param v - Value to add * @param v - Value to add
*/ */
export const addToMapKey = <K, T>(m: Map<K, Set<T>>, k: K, v: T) => { export const addToMapKey = <K, T>(m: Map<K, Set<T>>, k: K, v: T) => {
const s = m.get(k) || new Set<T>() const s = m.get(k)
s.add(v) if (s) {
m.set(k, s) s.add(v)
} else {
m.set(k, new Set([v]))
}
} }
/** /**
@@ -1555,10 +1564,13 @@ export const addToMapKey = <K, T>(m: Map<K, Set<T>>, k: K, v: T) => {
* @param v - Value to push * @param v - Value to push
*/ */
export const pushToMapKey = <K, T>(m: Map<K, T[]>, k: K, v: T) => { export const pushToMapKey = <K, T>(m: Map<K, T[]>, k: K, v: T) => {
const a = m.get(k) || [] const a = m.get(k)
a.push(v) if (a) {
m.set(k, a) a.push(v)
} else {
m.set(k, [v])
}
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------