matrix-react-sdk
Version:
SDK for matrix.org using React
36 lines (32 loc) • 4.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getListAlgorithmInstance = getListAlgorithmInstance;
var _ImportanceAlgorithm = require("./ImportanceAlgorithm");
var _models = require("../models");
var _NaturalAlgorithm = require("./NaturalAlgorithm");
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const ALGORITHM_FACTORIES = {
[_models.ListAlgorithm.Natural]: (tagId, initSort) => new _NaturalAlgorithm.NaturalAlgorithm(tagId, initSort),
[_models.ListAlgorithm.Importance]: (tagId, initSort) => new _ImportanceAlgorithm.ImportanceAlgorithm(tagId, initSort)
};
/**
* Gets an instance of the defined algorithm
* @param {ListAlgorithm} algorithm The algorithm to get an instance of.
* @param {TagID} tagId The tag the algorithm is for.
* @param {SortAlgorithm} initSort The initial sorting algorithm for the ordering algorithm.
* @returns {Algorithm} The algorithm instance.
*/
function getListAlgorithmInstance(algorithm, tagId, initSort) {
if (!ALGORITHM_FACTORIES[algorithm]) {
throw new Error(`${algorithm} is not a known algorithm`);
}
return ALGORITHM_FACTORIES[algorithm](tagId, initSort);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW1wb3J0YW5jZUFsZ29yaXRobSIsInJlcXVpcmUiLCJfbW9kZWxzIiwiX05hdHVyYWxBbGdvcml0aG0iLCJBTEdPUklUSE1fRkFDVE9SSUVTIiwiTGlzdEFsZ29yaXRobSIsIk5hdHVyYWwiLCJ0YWdJZCIsImluaXRTb3J0IiwiTmF0dXJhbEFsZ29yaXRobSIsIkltcG9ydGFuY2UiLCJJbXBvcnRhbmNlQWxnb3JpdGhtIiwiZ2V0TGlzdEFsZ29yaXRobUluc3RhbmNlIiwiYWxnb3JpdGhtIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc3RvcmVzL3Jvb20tbGlzdC9hbGdvcml0aG1zL2xpc3Qtb3JkZXJpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgSW1wb3J0YW5jZUFsZ29yaXRobSB9IGZyb20gXCIuL0ltcG9ydGFuY2VBbGdvcml0aG1cIjtcbmltcG9ydCB7IExpc3RBbGdvcml0aG0sIFNvcnRBbGdvcml0aG0gfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBOYXR1cmFsQWxnb3JpdGhtIH0gZnJvbSBcIi4vTmF0dXJhbEFsZ29yaXRobVwiO1xuaW1wb3J0IHsgVGFnSUQgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBPcmRlcmluZ0FsZ29yaXRobSB9IGZyb20gXCIuL09yZGVyaW5nQWxnb3JpdGhtXCI7XG5cbmludGVyZmFjZSBBbGdvcml0aG1GYWN0b3J5IHtcbiAgICAodGFnSWQ6IFRhZ0lELCBpbml0aWFsU29ydGluZ0FsZ29yaXRobTogU29ydEFsZ29yaXRobSk6IE9yZGVyaW5nQWxnb3JpdGhtO1xufVxuXG5jb25zdCBBTEdPUklUSE1fRkFDVE9SSUVTOiB7IFthbGdvcml0aG0gaW4gTGlzdEFsZ29yaXRobV06IEFsZ29yaXRobUZhY3RvcnkgfSA9IHtcbiAgICBbTGlzdEFsZ29yaXRobS5OYXR1cmFsXTogKHRhZ0lkLCBpbml0U29ydCkgPT4gbmV3IE5hdHVyYWxBbGdvcml0aG0odGFnSWQsIGluaXRTb3J0KSxcbiAgICBbTGlzdEFsZ29yaXRobS5JbXBvcnRhbmNlXTogKHRhZ0lkLCBpbml0U29ydCkgPT4gbmV3IEltcG9ydGFuY2VBbGdvcml0aG0odGFnSWQsIGluaXRTb3J0KSxcbn07XG5cbi8qKlxuICogR2V0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZGVmaW5lZCBhbGdvcml0aG1cbiAqIEBwYXJhbSB7TGlzdEFsZ29yaXRobX0gYWxnb3JpdGhtIFRoZSBhbGdvcml0aG0gdG8gZ2V0IGFuIGluc3RhbmNlIG9mLlxuICogQHBhcmFtIHtUYWdJRH0gdGFnSWQgVGhlIHRhZyB0aGUgYWxnb3JpdGhtIGlzIGZvci5cbiAqIEBwYXJhbSB7U29ydEFsZ29yaXRobX0gaW5pdFNvcnQgVGhlIGluaXRpYWwgc29ydGluZyBhbGdvcml0aG0gZm9yIHRoZSBvcmRlcmluZyBhbGdvcml0aG0uXG4gKiBAcmV0dXJucyB7QWxnb3JpdGhtfSBUaGUgYWxnb3JpdGhtIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlzdEFsZ29yaXRobUluc3RhbmNlKFxuICAgIGFsZ29yaXRobTogTGlzdEFsZ29yaXRobSxcbiAgICB0YWdJZDogVGFnSUQsXG4gICAgaW5pdFNvcnQ6IFNvcnRBbGdvcml0aG0sXG4pOiBPcmRlcmluZ0FsZ29yaXRobSB7XG4gICAgaWYgKCFBTEdPUklUSE1fRkFDVE9SSUVTW2FsZ29yaXRobV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2FsZ29yaXRobX0gaXMgbm90IGEga25vd24gYWxnb3JpdGhtYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFMR09SSVRITV9GQUNUT1JJRVNbYWxnb3JpdGhtXSh0YWdJZCwgaW5pdFNvcnQpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUYsT0FBQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVlBLE1BQU1HLG1CQUF1RSxHQUFHO0VBQzVFLENBQUNDLHFCQUFhLENBQUNDLE9BQU8sR0FBRyxDQUFDQyxLQUFLLEVBQUVDLFFBQVEsS0FBSyxJQUFJQyxrQ0FBZ0IsQ0FBQ0YsS0FBSyxFQUFFQyxRQUFRLENBQUM7RUFDbkYsQ0FBQ0gscUJBQWEsQ0FBQ0ssVUFBVSxHQUFHLENBQUNILEtBQUssRUFBRUMsUUFBUSxLQUFLLElBQUlHLHdDQUFtQixDQUFDSixLQUFLLEVBQUVDLFFBQVE7QUFDNUYsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNJLHdCQUF3QkEsQ0FDcENDLFNBQXdCLEVBQ3hCTixLQUFZLEVBQ1pDLFFBQXVCLEVBQ047RUFDakIsSUFBSSxDQUFDSixtQkFBbUIsQ0FBQ1MsU0FBUyxDQUFDLEVBQUU7SUFDakMsTUFBTSxJQUFJQyxLQUFLLENBQUMsR0FBR0QsU0FBUywyQkFBMkIsQ0FBQztFQUM1RDtFQUVBLE9BQU9ULG1CQUFtQixDQUFDUyxTQUFTLENBQUMsQ0FBQ04sS0FBSyxFQUFFQyxRQUFRLENBQUM7QUFDMUQiLCJpZ25vcmVMaXN0IjpbXX0=