|
@@ -51,13 +51,25 @@ class TouchBar extends EventEmitter {
|
|
|
item.child.ordereredItems.forEach(registerItem)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ const idSet = new Set()
|
|
|
items.forEach((item) => {
|
|
|
if (!(item instanceof TouchBarItem)) {
|
|
|
throw new Error('Each item must be an instance of TouchBarItem')
|
|
|
}
|
|
|
+
|
|
|
+ if (!idSet.has(item.id)) {
|
|
|
+ idSet.add(item.id)
|
|
|
+ } else {
|
|
|
+ throw new Error('Cannot add a single instance of TouchBarItem multiple times in a TouchBar')
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ // register in separate loop after all items are validated
|
|
|
+ for (const item of items) {
|
|
|
this.ordereredItems.push(item)
|
|
|
registerItem(item)
|
|
|
- })
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
set escapeItem (item) {
|