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