RocketChat/Rocket.Chat

View on GitHub
packages/tools/src/pick.ts

Summary

Maintainability
A
0 mins
Test Coverage
export function pick<TObject extends Record<string, any>, TKey extends keyof TObject>(
    object: TObject,
    ...attributes: TKey[]
): Pick<TObject, TKey> {
    return {
        ...attributes.reduce(
            (data, key) => ({
                ...data,
                ...(key in object ? { [key]: object[key] } : {}),
            }),
            {} as TObject,
        ),
    };
}