"use strict"; const cartesianProduct = require("cartesian-product"); module.exports = function namedCartesianProduct(object) { let keys = Object.keys(object); let products = cartesianProduct(keys.map((key) => object[key])); return products.map((values) => { return Object.fromEntries(keys.map((key, i) => { return [ key, values[i] ]; })); }); };