Refactor manifests sorting

62be0939d01c1144bedb5ee9f98aedf5157fe5f0

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +5 -4Showing whitespace changes
public/scripts/extensions.js+5 -4
@@ -38,6 +38,7 @@ export let modules = [];
38let activeExtensions = new Set();38let activeExtensions = new Set();
3939
40const getApiUrl = () => extension_settings.apiUrl;40const getApiUrl = () => extension_settings.apiUrl;
41const sortManifests = (a, b) => a.loading_order - b.loading_order;
41let connectedToApi = false;42let connectedToApi = false;
4243
43/**44/**
@@ -354,7 +355,7 @@ async function getManifests(names) {
354 * @returns {Promise<void>}355 * @returns {Promise<void>}
355 */356 */
356async function activateExtensions() {357async function activateExtensions() {
357 const extensions = Object.entries(manifests).sort((a, b) => a[1].loading_order - b[1].loading_order);358 const extensions = Object.entries(manifests).sort((a, b) => sortManifests(a[1], b[1]));
358 const promises = [];359 const promises = [];
359360
360 for (let entry of extensions) {361 for (let entry of extensions) {
@@ -705,7 +706,7 @@ async function showExtensionsDetails() {
705706
706 htmlExternal.append(htmlLoading);707 htmlExternal.append(htmlLoading);
707708
708 const extensions = Object.entries(manifests).sort((a, b) => a[1].loading_order - b[1].loading_order).map(getExtensionData);709 const extensions = Object.entries(manifests).sort((a, b) => sortManifests(a[1], b[1])).map(getExtensionData);
709710
710 extensions.forEach(value => {711 extensions.forEach(value => {
711 const { isExternal, extensionHtml } = value;712 const { isExternal, extensionHtml } = value;
@@ -1071,7 +1072,7 @@ function processVersionCheckQueue() {
1071 */1072 */
1072async function checkForUpdatesManual(abortSignal) {1073async function checkForUpdatesManual(abortSignal) {
1073 const promises = [];1074 const promises = [];
1074 for (const id of Object.keys(manifests).filter(x => x.startsWith('third-party'))) {1075 for (const id of Object.keys(manifests).filter(x => x.startsWith('third-party')).sort((a, b) => sortManifests(manifests[a], manifests[b]))) {
1075 const externalId = id.replace('third-party', '');1076 const externalId = id.replace('third-party', '');
1076 const promise = enqueueVersionCheck(async () => {1077 const promise = enqueueVersionCheck(async () => {
1077 try {1078 try {
@@ -1215,7 +1216,7 @@ export async function runGenerationInterceptors(chat, contextSize) {
1215 exitImmediately = immediately;1216 exitImmediately = immediately;
1216 };1217 };
12171218
1218 for (const manifest of Object.values(manifests).sort((a, b) => a.loading_order - b.loading_order)) {1219 for (const manifest of Object.values(manifests).filter(x => x.generate_interceptor).sort((a, b) => sortManifests(a, b))) {
1219 const interceptorKey = manifest.generate_interceptor;1220 const interceptorKey = manifest.generate_interceptor;
1220 if (typeof globalThis[interceptorKey] === 'function') {1221 if (typeof globalThis[interceptorKey] === 'function') {
1221 try {1222 try {