mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
249 lines
6.8 KiB
TypeScript
249 lines
6.8 KiB
TypeScript
// import { Middleware } from '@reduxjs/toolkit';
|
|
// import { io } from 'socket.io-client';
|
|
|
|
// import makeSocketIOEmitters from './emitters';
|
|
// import makeSocketIOListeners from './listeners';
|
|
|
|
// import * as InvokeAI from 'app/types/invokeai';
|
|
|
|
// /**
|
|
// * Creates a socketio middleware to handle communication with server.
|
|
// *
|
|
// * Special `socketio/actionName` actions are created in actions.ts and
|
|
// * exported for use by the application, which treats them like any old
|
|
// * action, using `dispatch` to dispatch them.
|
|
// *
|
|
// * These actions are intercepted here, where `socketio.emit()` calls are
|
|
// * made on their behalf - see `emitters.ts`. The emitter functions
|
|
// * are the outbound communication to the server.
|
|
// *
|
|
// * Listeners are also established here - see `listeners.ts`. The listener
|
|
// * functions receive communication from the server and usually dispatch
|
|
// * some new action to handle whatever data was sent from the server.
|
|
// */
|
|
// export const socketioMiddleware = () => {
|
|
// const { origin } = new URL(window.location.href);
|
|
|
|
// const socketio = io(origin, {
|
|
// timeout: 60000,
|
|
// path: `${window.location.pathname}socket.io`,
|
|
// });
|
|
|
|
// socketio.disconnect();
|
|
|
|
// let areListenersSet = false;
|
|
|
|
// const middleware: Middleware = (store) => (next) => (action) => {
|
|
// const {
|
|
// onConnect,
|
|
// onDisconnect,
|
|
// onError,
|
|
// onPostprocessingResult,
|
|
// onGenerationResult,
|
|
// onIntermediateResult,
|
|
// onProgressUpdate,
|
|
// onGalleryImages,
|
|
// onProcessingCanceled,
|
|
// onImageDeleted,
|
|
// onSystemConfig,
|
|
// onModelChanged,
|
|
// onFoundModels,
|
|
// onNewModelAdded,
|
|
// onModelDeleted,
|
|
// onModelConverted,
|
|
// onModelsMerged,
|
|
// onModelChangeFailed,
|
|
// onTempFolderEmptied,
|
|
// } = makeSocketIOListeners(store);
|
|
|
|
// const {
|
|
// emitGenerateImage,
|
|
// emitRunESRGAN,
|
|
// emitRunFacetool,
|
|
// emitDeleteImage,
|
|
// emitRequestImages,
|
|
// emitRequestNewImages,
|
|
// emitCancelProcessing,
|
|
// emitRequestSystemConfig,
|
|
// emitSearchForModels,
|
|
// emitAddNewModel,
|
|
// emitDeleteModel,
|
|
// emitConvertToDiffusers,
|
|
// emitMergeDiffusersModels,
|
|
// emitRequestModelChange,
|
|
// emitSaveStagingAreaImageToGallery,
|
|
// emitRequestEmptyTempFolder,
|
|
// } = makeSocketIOEmitters(store, socketio);
|
|
|
|
// /**
|
|
// * If this is the first time the middleware has been called (e.g. during store setup),
|
|
// * initialize all our socket.io listeners.
|
|
// */
|
|
// if (!areListenersSet) {
|
|
// socketio.on('connect', () => onConnect());
|
|
|
|
// socketio.on('disconnect', () => onDisconnect());
|
|
|
|
// socketio.on('error', (data: InvokeAI.ErrorResponse) => onError(data));
|
|
|
|
// socketio.on('generationResult', (data: InvokeAI.ImageResultResponse) =>
|
|
// onGenerationResult(data)
|
|
// );
|
|
|
|
// socketio.on(
|
|
// 'postprocessingResult',
|
|
// (data: InvokeAI.ImageResultResponse) => onPostprocessingResult(data)
|
|
// );
|
|
|
|
// socketio.on('intermediateResult', (data: InvokeAI.ImageResultResponse) =>
|
|
// onIntermediateResult(data)
|
|
// );
|
|
|
|
// socketio.on('progressUpdate', (data: InvokeAI.SystemStatus) =>
|
|
// onProgressUpdate(data)
|
|
// );
|
|
|
|
// socketio.on('galleryImages', (data: InvokeAI.GalleryImagesResponse) =>
|
|
// onGalleryImages(data)
|
|
// );
|
|
|
|
// socketio.on('processingCanceled', () => {
|
|
// onProcessingCanceled();
|
|
// });
|
|
|
|
// socketio.on('imageDeleted', (data: InvokeAI.ImageDeletedResponse) => {
|
|
// onImageDeleted(data);
|
|
// });
|
|
|
|
// socketio.on('systemConfig', (data: InvokeAI.SystemConfig) => {
|
|
// onSystemConfig(data);
|
|
// });
|
|
|
|
// socketio.on('foundModels', (data: InvokeAI.FoundModelResponse) => {
|
|
// onFoundModels(data);
|
|
// });
|
|
|
|
// socketio.on('newModelAdded', (data: InvokeAI.ModelAddedResponse) => {
|
|
// onNewModelAdded(data);
|
|
// });
|
|
|
|
// socketio.on('modelDeleted', (data: InvokeAI.ModelDeletedResponse) => {
|
|
// onModelDeleted(data);
|
|
// });
|
|
|
|
// socketio.on('modelConverted', (data: InvokeAI.ModelConvertedResponse) => {
|
|
// onModelConverted(data);
|
|
// });
|
|
|
|
// socketio.on('modelsMerged', (data: InvokeAI.ModelsMergedResponse) => {
|
|
// onModelsMerged(data);
|
|
// });
|
|
|
|
// socketio.on('modelChanged', (data: InvokeAI.ModelChangeResponse) => {
|
|
// onModelChanged(data);
|
|
// });
|
|
|
|
// socketio.on('modelChangeFailed', (data: InvokeAI.ModelChangeResponse) => {
|
|
// onModelChangeFailed(data);
|
|
// });
|
|
|
|
// socketio.on('tempFolderEmptied', () => {
|
|
// onTempFolderEmptied();
|
|
// });
|
|
|
|
// areListenersSet = true;
|
|
// }
|
|
|
|
// /**
|
|
// * Handle redux actions caught by middleware.
|
|
// */
|
|
// switch (action.type) {
|
|
// case 'socketio/generateImage': {
|
|
// emitGenerateImage(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/runESRGAN': {
|
|
// emitRunESRGAN(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/runFacetool': {
|
|
// emitRunFacetool(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/deleteImage': {
|
|
// emitDeleteImage(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/requestImages': {
|
|
// emitRequestImages(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/requestNewImages': {
|
|
// emitRequestNewImages(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/cancelProcessing': {
|
|
// emitCancelProcessing();
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/requestSystemConfig': {
|
|
// emitRequestSystemConfig();
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/searchForModels': {
|
|
// emitSearchForModels(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/addNewModel': {
|
|
// emitAddNewModel(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/deleteModel': {
|
|
// emitDeleteModel(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/convertToDiffusers': {
|
|
// emitConvertToDiffusers(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/mergeDiffusersModels': {
|
|
// emitMergeDiffusersModels(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/requestModelChange': {
|
|
// emitRequestModelChange(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/saveStagingAreaImageToGallery': {
|
|
// emitSaveStagingAreaImageToGallery(action.payload);
|
|
// break;
|
|
// }
|
|
|
|
// case 'socketio/requestEmptyTempFolder': {
|
|
// emitRequestEmptyTempFolder();
|
|
// break;
|
|
// }
|
|
// }
|
|
|
|
// next(action);
|
|
// };
|
|
|
|
// return middleware;
|
|
// };
|
|
|
|
export default {};
|