From 88ae273f5f4c285313e50a963567b90dafd1db87 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:42:57 +0000 Subject: [PATCH 1/2] Add deleteWorkingFileIfOriginal toggle --- .../file/deleteFile/1.0.0/index.ts | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts index e403d9c..98338a0 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts @@ -35,6 +35,32 @@ const details = (): IpluginDetails => ({ }, tooltip: 'Specify the file to delete', }, + { + label: 'Delete Working File If It\'s The Original File', + name: 'deleteWorkingFileIfOriginal', + type: 'boolean', + defaultValue: 'true', + inputUI: { + type: 'switch', + displayConditions: { + logic: 'AND', + sets: [ + { + logic: 'AND', + inputs: [ + { + name: 'fileToDelete', + value: 'workingFile', + condition: '===', + }, + ], + }, + ], + }, + }, + tooltip: 'If the option above is set to delete the working file,' + + ' and the working file is the original file, delete the file.', + }, { label: 'Delete Parent Folder If Empty', name: 'deleteParentFolderIfEmpty', @@ -61,11 +87,29 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.inputs = lib.loadDefaultValues(args.inputs, details); const fileToDelete = String(args.inputs.fileToDelete); - const { deleteParentFolderIfEmpty } = args.inputs; + const { + deleteParentFolderIfEmpty, + deleteWorkingFileIfOriginal, + } = args.inputs; if (fileToDelete === 'workingFile') { - args.jobLog(`Deleting working file ${args.inputFileObj._id}`); - await fsp.unlink(args.inputFileObj._id); + const workingFileIsOriginal = args.originalLibraryFile._id === args.inputFileObj._id; + + if (workingFileIsOriginal) { + args.jobLog('Working file is the original file!'); + } else { + args.jobLog('Working file is not the original file!'); + } + + if ( + (workingFileIsOriginal && deleteWorkingFileIfOriginal) + || !workingFileIsOriginal + ) { + args.jobLog(`Deleting working file ${args.inputFileObj._id}`); + await fsp.unlink(args.inputFileObj._id); + } else { + args.jobLog('Skipping delete of working file because it is the original file'); + } } else if (fileToDelete === 'originalFile') { args.jobLog(`Deleting original file ${args.originalLibraryFile._id}`); await fsp.unlink(args.originalLibraryFile._id); From 087790a3af4a931e92f709ce169a64590bc78f01 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:45:00 +0000 Subject: [PATCH 2/2] Apply auto-build changes --- .../file/deleteFile/1.0.0/index.js | 89 +++++++++++++------ 1 file changed, 64 insertions(+), 25 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js index a398ea6..40d2c70 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js @@ -67,6 +67,32 @@ var details = function () { return ({ }, tooltip: 'Specify the file to delete', }, + { + label: 'Delete Working File If It\'s The Original File', + name: 'deleteWorkingFileIfOriginal', + type: 'boolean', + defaultValue: 'true', + inputUI: { + type: 'switch', + displayConditions: { + logic: 'AND', + sets: [ + { + logic: 'AND', + inputs: [ + { + name: 'fileToDelete', + value: 'workingFile', + condition: '===', + }, + ], + }, + ], + }, + }, + tooltip: 'If the option above is set to delete the working file,' + + ' and the working file is the original file, delete the file.', + }, { label: 'Delete Parent Folder If Empty', name: 'deleteParentFolderIfEmpty', @@ -88,49 +114,62 @@ var details = function () { return ({ exports.details = details; // eslint-disable-next-line @typescript-eslint/no-unused-vars var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, fileToDelete, deleteParentFolderIfEmpty, fileDir, files; - return __generator(this, function (_a) { - switch (_a.label) { + var lib, fileToDelete, _a, deleteParentFolderIfEmpty, deleteWorkingFileIfOriginal, workingFileIsOriginal, fileDir, files; + return __generator(this, function (_b) { + switch (_b.label) { case 0: lib = require('../../../../../methods/lib')(); // eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign args.inputs = lib.loadDefaultValues(args.inputs, details); fileToDelete = String(args.inputs.fileToDelete); - deleteParentFolderIfEmpty = args.inputs.deleteParentFolderIfEmpty; - if (!(fileToDelete === 'workingFile')) return [3 /*break*/, 2]; + _a = args.inputs, deleteParentFolderIfEmpty = _a.deleteParentFolderIfEmpty, deleteWorkingFileIfOriginal = _a.deleteWorkingFileIfOriginal; + if (!(fileToDelete === 'workingFile')) return [3 /*break*/, 4]; + workingFileIsOriginal = args.originalLibraryFile._id === args.inputFileObj._id; + if (workingFileIsOriginal) { + args.jobLog('Working file is the original file!'); + } + else { + args.jobLog('Working file is not the original file!'); + } + if (!((workingFileIsOriginal && deleteWorkingFileIfOriginal) + || !workingFileIsOriginal)) return [3 /*break*/, 2]; args.jobLog("Deleting working file ".concat(args.inputFileObj._id)); return [4 /*yield*/, fs_1.promises.unlink(args.inputFileObj._id)]; case 1: - _a.sent(); - return [3 /*break*/, 4]; + _b.sent(); + return [3 /*break*/, 3]; case 2: - if (!(fileToDelete === 'originalFile')) return [3 /*break*/, 4]; + args.jobLog('Skipping delete of working file because it is the original file'); + _b.label = 3; + case 3: return [3 /*break*/, 6]; + case 4: + if (!(fileToDelete === 'originalFile')) return [3 /*break*/, 6]; args.jobLog("Deleting original file ".concat(args.originalLibraryFile._id)); return [4 /*yield*/, fs_1.promises.unlink(args.originalLibraryFile._id)]; - case 3: - _a.sent(); - _a.label = 4; - case 4: + case 5: + _b.sent(); + _b.label = 6; + case 6: fileDir = (0, fileUtils_1.getFileAbosluteDir)(args.originalLibraryFile._id); - if (!deleteParentFolderIfEmpty) return [3 /*break*/, 9]; + if (!deleteParentFolderIfEmpty) return [3 /*break*/, 11]; args.jobLog("Checking if folder ".concat(fileDir, " is empty")); return [4 /*yield*/, fs_1.promises.readdir(fileDir)]; - case 5: - files = _a.sent(); - if (!(files.length === 0)) return [3 /*break*/, 7]; + case 7: + files = _b.sent(); + if (!(files.length === 0)) return [3 /*break*/, 9]; args.jobLog("Deleting empty folder ".concat(fileDir)); return [4 /*yield*/, fs_1.promises.rmdir(fileDir)]; - case 6: - _a.sent(); - return [3 /*break*/, 8]; - case 7: - args.jobLog("Folder ".concat(fileDir, " is not empty, skipping delete")); - _a.label = 8; - case 8: return [3 /*break*/, 10]; + case 8: + _b.sent(); + return [3 /*break*/, 10]; case 9: + args.jobLog("Folder ".concat(fileDir, " is not empty, skipping delete")); + _b.label = 10; + case 10: return [3 /*break*/, 12]; + case 11: args.jobLog("Skipping delete of parent folder ".concat(fileDir)); - _a.label = 10; - case 10: return [2 /*return*/, { + _b.label = 12; + case 12: return [2 /*return*/, { outputFileObj: args.inputFileObj, outputNumber: 1, variables: args.variables,