({ allowPrompt = true, preferConfig = false } = {})
| 147 | } |
| 148 | |
| 149 | async function resolveExtensionId({ allowPrompt = true, preferConfig = false } = {}) { |
| 150 | const override = getExtensionIdOverride(); |
| 151 | if (override) return { id: override, source: "override" }; |
| 152 | |
| 153 | const config = loadConfig(); |
| 154 | if (preferConfig && config?.extensionId) { |
| 155 | return { id: config.extensionId, source: "config" }; |
| 156 | } |
| 157 | |
| 158 | const manifestId = getExtensionIdFromManifest(); |
| 159 | if (manifestId) { |
| 160 | return { id: manifestId, source: "manifest" }; |
| 161 | } |
| 162 | |
| 163 | if (!preferConfig && config?.extensionId) { |
| 164 | return { id: config.extensionId, source: "config" }; |
| 165 | } |
| 166 | |
| 167 | if (!allowPrompt) { |
| 168 | return { id: null, source: "missing" }; |
| 169 | } |
| 170 | |
| 171 | const extensionId = await ask(color("bright", "Paste Extension ID: ")); |
| 172 | return { id: extensionId || null, source: extensionId ? "prompt" : "missing" }; |
| 173 | } |
| 174 | |
| 175 | function ensureDir(p) { |
| 176 | mkdirSync(p, { recursive: true }); |
no test coverage detected