(sourceConfig: Record<string, unknown>)
| 137 | } |
| 138 | |
| 139 | function buildQuery(sourceConfig: Record<string, unknown>): string { |
| 140 | const parts: string[] = ['trashed = false'] |
| 141 | |
| 142 | const parentsClause = buildDriveParentsClause(parseMultiValue(sourceConfig.folderId)) |
| 143 | if (parentsClause) parts.push(parentsClause) |
| 144 | |
| 145 | const fileType = (sourceConfig.fileType as string) || 'all' |
| 146 | switch (fileType) { |
| 147 | case 'documents': |
| 148 | parts.push("mimeType = 'application/vnd.google-apps.document'") |
| 149 | break |
| 150 | case 'spreadsheets': |
| 151 | parts.push("mimeType = 'application/vnd.google-apps.spreadsheet'") |
| 152 | break |
| 153 | case 'presentations': |
| 154 | parts.push("mimeType = 'application/vnd.google-apps.presentation'") |
| 155 | break |
| 156 | case 'text': |
| 157 | parts.push(`(${SUPPORTED_TEXT_MIME_TYPES.map((t) => `mimeType = '${t}'`).join(' or ')})`) |
| 158 | break |
| 159 | default: { |
| 160 | // Include Google Workspace files + plain text files, exclude folders |
| 161 | const allMimeTypes = [ |
| 162 | ...Object.keys(GOOGLE_WORKSPACE_MIME_TYPES), |
| 163 | ...SUPPORTED_TEXT_MIME_TYPES, |
| 164 | ] |
| 165 | parts.push(`(${allMimeTypes.map((t) => `mimeType = '${t}'`).join(' or ')})`) |
| 166 | break |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | return parts.join(' and ') |
| 171 | } |
| 172 | |
| 173 | function fileToStub(file: DriveFile): ExternalDocument { |
| 174 | return { |
no test coverage detected