( storage: HttpStorageProvider, name: string, parentId: number | null, )
| 32 | } |
| 33 | |
| 34 | function createUniqueFolder( |
| 35 | storage: HttpStorageProvider, |
| 36 | name: string, |
| 37 | parentId: number | null, |
| 38 | ): { id: number, name: string } { |
| 39 | const baseName = normalizeImportName(name, 'Imported') |
| 40 | |
| 41 | for (let suffix = 0; suffix <= 10_000; suffix += 1) { |
| 42 | const candidate = withSuffix(baseName, suffix) |
| 43 | try { |
| 44 | const { id } = storage.folders.createFolder({ |
| 45 | name: candidate, |
| 46 | parentId, |
| 47 | }) |
| 48 | return { id, name: candidate } |
| 49 | } |
| 50 | catch (error) { |
| 51 | if (parseStorageError(error)?.code !== 'NAME_CONFLICT') { |
| 52 | throw error |
| 53 | } |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | throw new Error('NAME_CONFLICT:Cannot generate unique folder name') |
| 58 | } |
| 59 | |
| 60 | function createUniqueRequest( |
| 61 | storage: HttpStorageProvider, |
no test coverage detected