From 2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 Mon Sep 17 00:00:00 2001
From: Minteck <contact@minteck.org>
Date: Tue, 18 Oct 2022 08:59:09 +0200
Subject: Update

---
 alarm/node_modules/graphql/jsutils/keyMap.mjs | 29 +++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 alarm/node_modules/graphql/jsutils/keyMap.mjs

(limited to 'alarm/node_modules/graphql/jsutils/keyMap.mjs')

diff --git a/alarm/node_modules/graphql/jsutils/keyMap.mjs b/alarm/node_modules/graphql/jsutils/keyMap.mjs
new file mode 100644
index 0000000..567dd86
--- /dev/null
+++ b/alarm/node_modules/graphql/jsutils/keyMap.mjs
@@ -0,0 +1,29 @@
+/**
+ * Creates a keyed JS object from an array, given a function to produce the keys
+ * for each value in the array.
+ *
+ * This provides a convenient lookup for the array items if the key function
+ * produces unique results.
+ *
+ *     const phoneBook = [
+ *       { name: 'Jon', num: '555-1234' },
+ *       { name: 'Jenny', num: '867-5309' }
+ *     ]
+ *
+ *     // { Jon: { name: 'Jon', num: '555-1234' },
+ *     //   Jenny: { name: 'Jenny', num: '867-5309' } }
+ *     const entriesByName = keyMap(
+ *       phoneBook,
+ *       entry => entry.name
+ *     )
+ *
+ *     // { name: 'Jenny', num: '857-6309' }
+ *     const jennyEntry = entriesByName['Jenny']
+ *
+ */
+export default function keyMap(list, keyFn) {
+  return list.reduce(function (map, item) {
+    map[keyFn(item)] = item;
+    return map;
+  }, Object.create(null));
+}
-- 
cgit