From d78fe8dc1b7a74e431a0f3b239382c21df13de41 Mon Sep 17 00:00:00 2001 From: Oceanity Date: Mon, 23 Sep 2024 13:24:22 -0500 Subject: [PATCH] Feat: `fileName` replace variable (#2803) * Created `fileName` replace variable --- .../variables/builtin/utility/file-name.ts | 30 +++++++++++++++++++ .../variables/builtin/utility/index.ts | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 src/backend/variables/builtin/utility/file-name.ts diff --git a/src/backend/variables/builtin/utility/file-name.ts b/src/backend/variables/builtin/utility/file-name.ts new file mode 100644 index 000000000..61aa29562 --- /dev/null +++ b/src/backend/variables/builtin/utility/file-name.ts @@ -0,0 +1,30 @@ +import { ReplaceVariable, Trigger } from "../../../../types/variables"; +import { OutputDataType, VariableCategory } from "../../../../shared/variable-constants"; +import { basename, extname } from "path"; + +const model : ReplaceVariable = { + definition: { + handle: "fileName", + usage: 'fileName[path\\to\\file.txt]', + description: "Returns name of file without extension.", + categories: [VariableCategory.ADVANCED], + possibleDataOutput: [OutputDataType.TEXT] + }, + evaluator: ( + trigger: Trigger, + filePath?: string + ) : string => { + if (!filePath) { + return ""; + } + + try { + return basename(filePath, extname(filePath)); + } catch (err) { + // Probably a directory or invalid filename + return "[Invalid File Path]"; + } + } +}; + +export default model; diff --git a/src/backend/variables/builtin/utility/index.ts b/src/backend/variables/builtin/utility/index.ts index b8b5aa668..82c5e0dfe 100644 --- a/src/backend/variables/builtin/utility/index.ts +++ b/src/backend/variables/builtin/utility/index.ts @@ -7,6 +7,7 @@ import evalJS from './eval-js'; import evalVars from './eval-vars'; import fileExists from './file-exists'; import fileLineCount from './file-line-count'; +import fileName from './file-name'; import fileRead from './file-read'; import filesInDirectory from './files-in-directory'; import getEffectQueueLength from "./get-effect-queue-length"; @@ -27,6 +28,7 @@ export default [ evalVars, fileExists, fileLineCount, + fileName, fileRead, filesInDirectory, getEffectQueueLength,