UNPKG

@sidequest/core

Version:

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

33 lines (29 loc) 1.08 kB
'use strict'; var util = require('util'); var logger = require('../logger.cjs'); var aliveJobUniqueness = require('./alive-job-uniqueness.cjs'); var fixedWindowUniqueness = require('./fixed-window-uniqueness.cjs'); const availableUniqueness = { "alive-job": aliveJobUniqueness.AliveJobUniqueness, "fixed-window": fixedWindowUniqueness.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.logger("Core").debug(`Creating uniqueness strategy: ${config.type}. Config: ${util.inspect(config)}`); if (!Ctor) { throw new Error(`Unknown uniqueness strategy: ${config.type}`); } return new Ctor(config); } } exports.UniquenessFactory = UniquenessFactory; //# sourceMappingURL=factory.cjs.map