Files
Desktop/ts/util/deconstructLookup.std.ts
T
2026-03-30 11:54:59 -07:00

22 lines
558 B
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { getOwn } from './getOwn.std.ts';
import { assertDev } from './assert.std.ts';
export const deconstructLookup = <T>(
lookup: Record<string, T>,
keys: ReadonlyArray<string>
): Array<T> => {
const result: Array<T> = [];
keys.forEach((key: string) => {
const value = getOwn(lookup, key);
if (value) {
result.push(value);
} else {
assertDev(false, `deconstructLookup: lookup failed for ${key}; dropping`);
}
});
return result;
};