File tree Expand file tree Collapse file tree 1 file changed +17
-11
lines changed Expand file tree Collapse file tree 1 file changed +17
-11
lines changed Original file line number Diff line number Diff line change @@ -277,19 +277,25 @@ class ExtensionManager {
277277
278278 /**
279279 * Regenerate blockinfo for any loaded extensions
280+ * @param {string } [optExtensionId] Optional extension ID for refreshing
280281 * @returns {Promise } resolved once all the extensions have been reinitialized
281282 */
282- refreshBlocks ( ) {
283- const allPromises = Array . from ( this . _loadedExtensions . values ( ) ) . map ( serviceName =>
284- dispatch . call ( serviceName , 'getInfo' )
285- . then ( info => {
286- info = this . _prepareExtensionInfo ( serviceName , info ) ;
287- dispatch . call ( 'runtime' , '_refreshExtensionPrimitives' , info ) ;
288- } )
289- . catch ( e => {
290- log . error ( 'Failed to refresh built-in extension primitives' , e ) ;
291- } )
292- ) ;
283+ refreshBlocks ( optExtensionId ) {
284+ const refresh = serviceName => dispatch . call ( serviceName , 'getInfo' )
285+ . then ( info => {
286+ info = this . _prepareExtensionInfo ( serviceName , info ) ;
287+ dispatch . call ( 'runtime' , '_refreshExtensionPrimitives' , info ) ;
288+ } )
289+ . catch ( e => {
290+ log . error ( 'Failed to refresh built-in extension primitives' , e ) ;
291+ } ) ;
292+ if ( optExtensionId ) {
293+ if ( ! this . _loadedExtensions . has ( optExtensionId ) ) {
294+ return Promise . reject ( new Error ( `Unknown extension: ${ optExtensionId } ` ) ) ;
295+ }
296+ return refresh ( this . _loadedExtensions . get ( optExtensionId ) ) ;
297+ }
298+ const allPromises = Array . from ( this . _loadedExtensions . values ( ) ) . map ( refresh ) ;
293299 return Promise . all ( allPromises ) ;
294300 }
295301
You can’t perform that action at this time.
0 commit comments