( filePath: string, )
| 321 | * @returns The sanitized extension, 'other' for long extensions, or undefined if no extension |
| 322 | */ |
| 323 | export function getFileExtensionForAnalytics( |
| 324 | filePath: string, |
| 325 | ): AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS | undefined { |
| 326 | const ext = extname(filePath).toLowerCase() |
| 327 | if (!ext || ext === '.') { |
| 328 | return undefined |
| 329 | } |
| 330 | |
| 331 | const extension = ext.slice(1) // remove leading dot |
| 332 | if (extension.length > MAX_FILE_EXTENSION_LENGTH) { |
| 333 | return 'other' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS |
| 334 | } |
| 335 | |
| 336 | return extension as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS |
| 337 | } |
| 338 | |
| 339 | /** Allow list of commands we extract file extensions from. */ |
| 340 | const FILE_COMMANDS = new Set([ |
no outgoing calls
no test coverage detected