Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import { HFHubCategory } from './types' | |
export function parseHuggingFaceHubId( | |
input?: any, | |
defaultCategory: HFHubCategory = 'models' | |
): { | |
category: HFHubCategory | |
owner: string | |
id: string | |
categoryAndOwnerAndId: string | |
ownerAndId: string | |
} { | |
let inputStr = `${input || ''}` | |
if (inputStr.includes('.co/')) { | |
inputStr = inputStr.split('.co/').pop() || '' | |
} else if (inputStr.includes('.com/')) { | |
inputStr = inputStr.split('.com/').pop() || '' | |
} | |
let parts = inputStr.split('/') | |
if (parts.length < 2 || parts.length > 3) { | |
throw new Error(`input seems invalid, cannot extract chunks`) | |
} | |
if (parts.length === 2) { | |
parts = [defaultCategory, parts[0], parts[1]] | |
} | |
const [category, owner, id] = parts | |
return { | |
category: category as HFHubCategory, | |
owner, | |
id, | |
categoryAndOwnerAndId: `${category}/${owner}/${id}`, | |
ownerAndId: `${owner}/${id}`, | |
} | |
} | |