actions/list-file-folders-in-a-folder/list-file-folders-in-a-folder.mjs
import dropbox from "../../dropbox.app.mjs"; export default { name: "List All Files/Subfolders in a Folder", description: "Retrieves a list of files or subfolders in a specified folder [See the documentation](https://dropbox.github.io/dropbox-sdk-js/Dropbox.html#filesListFolder__anchor)", key: "dropbox-list-file-folders-in-a-folder", version: "0.0.13", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: true, }, type: "action", props: { dropbox, path: { propDefinition: [ dropbox, "path", () => ({ initialOptions: [], filter: ({ metadata: { metadata: { [".tag"]: type } } }) => type === "folder", }), ], description: "Type the folder name to search for it in the user's Dropbox.", }, recursive: { type: "boolean", label: "Recursive", description: "If `true`, the list folder operation will be applied recursively to all subfolders and the response will contain contents of all subfolders.", default: true, }, includeDeleted: { type: "boolean", label: "Include Deleted", description: "If `true`, the results will include files and folders that used to exist but were deleted.", default: false, }, includeHasExplicitSharedMembers: { type: "boolean", label: "Include has explicit shared members", description: "If `true`, the results will include a flag for each file indicating whether or not that file has any explicit members.", default: false, }, includeMountedFolders: { type: "boolean", label: "Include mounted folders", description: "If `true`, the results will include entries under mounted folders which includes app folder, shared folder and team folder.", default: false, }, includeNonDownloadableFiles: { type: "boolean", label: "Include non downloadable files", description: "If `true`, include files that are not downloadable, i.e. Google Docs.", default: true, }, limit: { propDefinition: [ dropbox, "limit", ], }, }, async run({ $ }) { const { limit, path, recursive, includeDeleted, includeHasExplicitSharedMembers, includeMountedFolders, includeNonDownloadableFiles, } = this; const res = await this.dropbox.listFilesFolders({ path: this.dropbox.getPath(path), recursive, include_deleted: includeDeleted, include_has_explicit_shared_members: includeHasExplicitSharedMembers, include_mounted_folders: includeMountedFolders, include_non_downloadable_files: includeNonDownloadableFiles, }, limit); $.export("$summary", `Files and folders in the path ${path?.label || path} successfully fetched`); return res; }, };