diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts index 00c8977..5b2987b 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts @@ -90,25 +90,40 @@ export const runClassicPlugin = async (args:IpluginInputArgs, type:'filter'|'tra const scanTypes = getScanTypes([pluginSrcStr]); - const pluginInputFileObj = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.inputFileObj._id, - file: args.inputFileObj.file, - DB: args.inputFileObj.DB, - footprintId: args.inputFileObj.footprintId, - }, - scanTypes, - }); - - const originalLibraryFile = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.originalLibraryFile._id, - file: args.originalLibraryFile.file, - DB: args.originalLibraryFile.DB, - footprintId: args.originalLibraryFile.footprintId, - }, - scanTypes, - }); + let pluginInputFileObj; + let originalLibraryFile; + + const inputFileScanArgs = { + _id: args.inputFileObj._id, + file: args.inputFileObj.file, + DB: args.inputFileObj.DB, + footprintId: args.inputFileObj.footprintId, + }; + + const originalLibraryFileScanArgs = { + _id: args.originalLibraryFile._id, + file: args.originalLibraryFile.file, + DB: args.originalLibraryFile.DB, + footprintId: args.originalLibraryFile.footprintId, + }; + + if (typeof args.scanIndividualFile !== 'undefined') { + args.jobLog('Scanning files using Node'); + pluginInputFileObj = await args.scanIndividualFile(inputFileScanArgs, scanTypes); + originalLibraryFile = await args.scanIndividualFile(originalLibraryFileScanArgs, scanTypes); + } else { + args.jobLog('Scanning files using Server API'); + + pluginInputFileObj = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { + file: inputFileScanArgs, + scanTypes, + }); + + originalLibraryFile = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { + file: originalLibraryFileScanArgs, + scanTypes, + }); + } const otherArguments = { handbrakePath: args.handbrakePath, diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts index efb4c36..77ada1f 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts @@ -1,4 +1,5 @@ -import { IFileObject, Istreams } from './synced/IFileObject'; +import { IscanTypes } from '../fileUtils'; +import { IFileObject, IFileObjectMin, Istreams } from './synced/IFileObject'; import Ijob from './synced/jobInterface'; export interface IpluginInputUi { @@ -136,6 +137,7 @@ export interface IpluginInputArgs { updateWorker: IupdateWorker, logFullCliOutput: boolean, logOutcome: (outcome: string) => void, + scanIndividualFile?: (filee: IFileObjectMin, scanTypes: IscanTypes) => IFileObject, deps: { // eslint-disable-next-line @typescript-eslint/no-explicit-any fsextra: any,