(
name: string,
options: ResolveOptions = {},
)
| 75 | * installed must opt in via `resolveItemWithDependencies`. |
| 76 | */ |
| 77 | export async function resolveItem( |
| 78 | name: string, |
| 79 | options: ResolveOptions = {}, |
| 80 | ): Promise<RegistryItem> { |
| 81 | const items = await resolveItemWithDependencies(name, options); |
| 82 | if (items.length > 1) { |
| 83 | const deps = items |
| 84 | .slice(0, -1) |
| 85 | .map((i) => i.name) |
| 86 | .join(", "); |
| 87 | throw new Error( |
| 88 | `Item "${name}" declares registryDependencies (${deps}); use resolveItemWithDependencies ` + |
| 89 | `to resolve and install them in order.`, |
| 90 | ); |
| 91 | } |
| 92 | const item = items[items.length - 1]; |
| 93 | if (!item) { |
| 94 | throw new Error(`Item "${name}" not found — registry unreachable or empty.`); |
| 95 | } |
| 96 | return item; |
| 97 | } |
| 98 | |
| 99 | /** |
| 100 | * Resolve an item and all of its transitive `registryDependencies` in |
no test coverage detected