Skip to content

ModelRegistry ​

ModelRegistry ​

Registry for managing model classes and their aliases. Provides centralized model registration and retrieval with support for aliases and auto-discovery.

models ​

Map of model names to model classes

aliases ​

Map of aliases to model names

register ​

Registers a model class with optional aliases.

Parameters ​

NameDescription
namePrimary name for the model
modelClassModel class constructor
aliasesOptional array of alias names

Example ​

typescript
registry.register('User', User, ['user', 'users'])
  .register('Post', Post, ['post', 'posts'])
  .register('Comment', Comment);

returns — This registry instance for chaining

get ​

Retrieves a model class by name or alias.

Parameters ​

NameDescription
nameModel name or alias

Example ​

typescript
const User = registry.get<UserAttributes, User>('User');
const user = new User({ name: 'John' });

// Using alias
const SameUser = registry.get('users');

returns — Model class constructor

has ​

Checks if a model is registered.

Parameters ​

NameDescription
nameModel name or alias to check

Example ​

typescript
if (registry.has('User')) {
  console.log('User model is registered');
}

if (registry.has('users')) {
  console.log('User model found by alias');
}

returns — True if model exists in registry

all ​

Gets all registered models.

returns — Map of model names to model classes

getModelNames ​

Gets all registered model names.

returns — Array of model names

autoDiscover ​

Auto-discovers models in a directory. Note: This is a placeholder implementation for future enhancement.

Parameters ​

NameDescription
directoryDirectory path to scan for models

Example ​

typescript
registry.autoDiscover('./app/Models');

pluralize ​

Converts a singular word to plural form. Simple pluralization rules for English words.

Parameters ​

NameDescription
wordWord to pluralize

Example ​

typescript
pluralize('user') // 'users'
pluralize('category') // 'categories'
pluralize('box') // 'boxes'

returns — Pluralized word

getInstance ​

Gets the singleton instance of ModelRegistry.

returns — The ModelRegistry instance

Released under the MIT License.