UNPKG

@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
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