UNPKG

@sidequest/core

Version:

@sidequest/core is the core package of SideQuest, a distributed background job queue for Node.js and TypeScript applications.

30 lines (27 loc) 973 B
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: ${JSON.stringify(config)}`); if (!Ctor) { throw new Error(`Unknown uniqueness strategy: ${config.type}`); } return new Ctor(config); } } export { UniquenessFactory }; //# sourceMappingURL=factory.js.map