# Where Is the Key Registry Module Located in Gods Eye View?

> Find the key registry module location in the Gods Eye View repository at src/data/pickRegistry.js. Get direct access to the code for your project needs.

- Repository: [Bilawal Sidhu/gods-eye-view](https://github.com/bilawalsidhu/gods-eye-view)
- Tags: internals
- Published: 2026-09-12

---

**The key registry module is located at [`src/data/pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/pickRegistry.js) in the `bilawalsidhu/gods-eye-view` repository.**

In the Gods Eye View codebase, the **key registry module** provides the central mechanism for mapping string keys to their corresponding pick handling behaviors. This module defines the `PickRegistry` object that components throughout the application import to register and resolve interactive elements.

## Locating the Key Registry Module

The repository organizes registry logic within the data layer. The primary implementation resides in a specific file that exports the central registry API.

### Primary Registry Implementation

The file **[`src/data/pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/pickRegistry.js)** contains the core **key registry module**. This module exports the `PickRegistry` object, which provides methods to register pick handlers, retrieve them by key, and enumerate all registered entries. According to the Gods Eye View source code, this is the definitive location for key-to-behavior mapping logic.

### Supporting Registry Files

While [`pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/pickRegistry.js) handles the general-purpose registry, the repository includes specialized registry implementations for specific data domains. The file **[`src/data/tr3bRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/tr3bRegistry.js)** manages a specialized subset of registry-style data for TR3B-related entities. However, this serves as a supplementary data store rather than the primary key registry module.

## Core Functionality of the PickRegistry

The **key registry module** exposes a straightforward API through the `PickRegistry` object. The implementation provides three essential operations: registering handlers, looking up handlers by key, and iterating over the registry entries.

The following methods are available on the exported `PickRegistry` object:

- **`register(key, handler)`** – Associates a string key with a callback function
- **`get(key)`** – Retrieves the handler associated with a specific key
- **`entries()`** – Returns an iterator over all `[key, handler]` pairs in the registry

## Practical Implementation Examples

The **key registry module** integrates into application components through standard ES6 imports. Below are concrete patterns for utilizing the `PickRegistry` API in production code.

### Registering a New Pick Handler

To register a custom interaction handler, import the registry and call the `register` method:

```javascript
import { PickRegistry } from './data/pickRegistry.js';

function myPickHandler(event) {
  // Handle the pick event
  console.log('Pick event triggered:', event);
}

PickRegistry.register('myCustomKey', myPickHandler);

```

### Looking Up a Registered Handler

Retrieve and invoke handlers dynamically using the `get` method:

```javascript
import { PickRegistry } from './data/pickRegistry.js';

const handler = PickRegistry.get('myCustomKey');
if (handler) {
  handler(event);
}

```

### Iterating Over All Registered Keys

Enumerate the entire registry to inspect or process all key-handler pairs:

```javascript
import { PickRegistry } from './data/pickRegistry.js';

for (const [key, handler] of PickRegistry.entries()) {
  console.log(`Key: ${key}`, handler);
}

```

## Summary

- The **key registry module** is located at **[`src/data/pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/pickRegistry.js)** in Gods Eye View
- The module exports the `PickRegistry` object, which serves as the central registry for key-to-handler mappings
- **Primary API methods** include `register()`, `get()`, and `entries()` for full CRUD-like operations on registry entries
- **[`src/data/tr3bRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/tr3bRegistry.js)** exists as a specialized auxiliary registry but does not replace the main key registry functionality

## Frequently Asked Questions

### Where exactly is the key registry module located in Gods Eye View?

The key registry module is implemented in **[`src/data/pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/pickRegistry.js)**. This file contains the `PickRegistry` class or object that manages the registration and lookup of pick handlers throughout the application.

### What is the difference between [`pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/pickRegistry.js) and [`tr3bRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/tr3bRegistry.js)?

[`pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/pickRegistry.js) serves as the **general-purpose key registry module** used across the entire application for mapping interaction keys to handlers. In contrast, [`tr3bRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/tr3bRegistry.js) located at **[`src/data/tr3bRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/tr3bRegistry.js)** handles specialized data sets specific to TR3B entities and functions as a domain-specific data registry rather than the general key registry.

### How do I register a custom key handler using the PickRegistry?

Import the `PickRegistry` from [`src/data/pickRegistry.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/pickRegistry.js) and call `PickRegistry.register('yourKey', yourHandlerFunction)`. The first argument is a string identifier, and the second is the callback function that executes when that key is picked.

### Can I iterate over all registered keys in Gods Eye View?

Yes. The `PickRegistry` exposes an `entries()` method that returns an iterator over all registered key-handler pairs. Use `for...of` loops or `PickRegistry.entries()` with spread operators to enumerate the registry contents.