UNPKG

@houdoku/extension-mangalife

Version:

{"id":"859e5a3d-8ee4-4e38-b270-c8c3c80771d2","name":"MangaLife","url":"https://manga4life.com","version":"1.4.2","translatedLanguage":"ENGLISH","hasSettings":false}

44 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.applySort = exports.applyTriStateFilter = void 0; const houdoku_extension_lib_1 = require("houdoku-extension-lib"); const filters_1 = require("./filters"); const applyTriStateFilter = (entries, entryKey, toggleValues) => { const toggleEntries = Object.entries(toggleValues); let filtered = entries; const includeTags = toggleEntries.filter(([, value]) => value === houdoku_extension_lib_1.TriState.INCLUDE); if (includeTags.length > 0) { filtered = filtered.filter((entry) => includeTags.every(([includeTag]) => entry[entryKey] === includeTag || entry[entryKey].includes(includeTag))); } const excludeTags = toggleEntries.filter(([, value]) => value === houdoku_extension_lib_1.TriState.EXCLUDE); if (excludeTags.length > 0) { filtered = filtered.filter((entry) => excludeTags.every(([excludeTag]) => entry[entryKey] !== excludeTag && !entry.genres.includes(excludeTag))); } return filtered; }; exports.applyTriStateFilter = applyTriStateFilter; const applySort = (entries, sortValue) => { switch (sortValue.key) { case filters_1.SortType.POPULARITY: entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING ? b.popularity - a.popularity : a.popularity - b.popularity); break; case filters_1.SortType.YEAR: entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING ? b.year - a.year : a.year - b.year); break; case filters_1.SortType.UPDATED: entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING ? b.lastScanReleased - a.lastScanReleased : a.lastScanReleased - b.lastScanReleased); break; case filters_1.SortType.TITLE: entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING ? b.seriesName.localeCompare(a.seriesName) : a.seriesName.localeCompare(b.seriesName)); break; } return entries; }; exports.applySort = applySort; //# sourceMappingURL=util.js.map