@sidequest/core
Version:
@sidequest/core is the core package of SideQuest, a distributed background job queue for Node.js and TypeScript applications.
31 lines (28 loc) • 998 B
JavaScript
import { inspect } from 'util';
import { logger } from '../logger.js';
import { AliveJobUniqueness } from './alive-job-uniqueness.js';
import { FixedWindowUniqueness } from './fixed-window-uniqueness.js';
const availableUniqueness = {
"alive-job": AliveJobUniqueness,
"fixed-window": FixedWindowUniqueness,
};
/**
* Factory for creating uniqueness strategy instances.
*/
class UniquenessFactory {
/**
* Creates a uniqueness strategy instance from the given config.
* @param config The uniqueness configuration.
* @returns The uniqueness strategy instance.
*/
static create(config) {
const Ctor = availableUniqueness[config.type];
logger("Core").debug(`Creating uniqueness strategy: ${config.type}. Config: ${inspect(config)}`);
if (!Ctor) {
throw new Error(`Unknown uniqueness strategy: ${config.type}`);
}
return new Ctor(config);
}
}
export { UniquenessFactory };
//# sourceMappingURL=factory.js.map