@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
69 lines • 1.43 kB
JavaScript
/**
* Factory registry for managing mock data factories
*/
/**
* Factory registry class
*/
export class FactoryRegistry {
factories = new Map();
/**
* Register a factory
*/
register(name, factory) {
this.factories.set(name, factory);
}
/**
* Get a factory by name
*/
get(name) {
return this.factories.get(name);
}
/**
* Check if factory exists
*/
has(name) {
return this.factories.has(name);
}
/**
* Remove a factory
*/
remove(name) {
return this.factories.delete(name);
}
/**
* Get all factory names
*/
getNames() {
return Array.from(this.factories.keys());
}
/**
* Clear all factories
*/
clear() {
this.factories.clear();
}
}
/**
* Global factory registry instance
*/
export const globalFactoryRegistry = new FactoryRegistry();
/**
* Register a factory globally
*/
export function registerFactory(name, factory) {
globalFactoryRegistry.register(name, factory);
}
/**
* Get a factory from global registry
*/
export function getFactory(name) {
return globalFactoryRegistry.get(name);
}
/**
* Create data using a registered factory
*/
export function createFromFactory(name, overrides) {
const factory = getFactory(name);
return factory ? factory(overrides) : undefined;
}
//# sourceMappingURL=factory-registry.js.map