(extension: Extension)
| 28 | } |
| 29 | |
| 30 | register(extension: Extension): void { |
| 31 | if (this.extensions.has(extension.id)) { |
| 32 | logger.warn(`[extensions] Extension "${extension.id}" is already registered; skipping duplicate`); |
| 33 | return; |
| 34 | } |
| 35 | this.extensions.set(extension.id, extension); |
| 36 | logger.debug(`[extensions] Registered extension "${extension.id}"`); |
| 37 | |
| 38 | if (this.ctx) { |
| 39 | void Promise.resolve(extension.setup(this.ctx)) |
| 40 | .then(() => { |
| 41 | if (this.ctx) { |
| 42 | this.registerHostApiContributions(extension, this.ctx); |
| 43 | } |
| 44 | }) |
| 45 | .catch((err) => { |
| 46 | logger.error(`[extensions] Late-registered extension "${extension.id}" failed to initialize:`, err); |
| 47 | }); |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | get(id: string): Extension | undefined { |
| 52 | return this.extensions.get(id); |
no test coverage detected