@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
21 lines (20 loc) • 553 B
JavaScript
import { EMPTY_OBJECT } from "@lou.codes/constants/empty.js";
import { set } from "@lou.codes/utils";
import { reduce } from "./reduce.js";
/**
* Takes an entries iterable and returns an object.
*
* @category Reducers
* @example
* ```typescript
* entriesToObject([["key", "value"]]); // { key: "value" }
* entriesToObject([
* ["foo", "bar"],
* ["number", 1]
* ]); // { foo: "bar", number: 1 }
* ```
* @returns Object constructed from entries.
*/
export const entriesToObject = reduce(([key, value]) => set(key)(value))(
EMPTY_OBJECT,
);