@@ -231,20 +231,26 @@ export function register(data) {
231231 } else if ( setting . type === 'select' && ! setting . data && data . options ) {
232232 setting . data = data . options ;
233233 }
234- if ( typeof setting . type === 'string' ) {
235- setting . type = registry . get ( setting . type ) ;
236- }
237- if ( typeof data . type === 'object' ) {
238- try {
239- const left = data . type . key || data . type . left || data . type [ 0 ] ;
240- const right = data . type . value || data . type . right || data . type [ 1 ] ;
241- const type = new AdvancedMap ( left , right ) ;
242- setting . type = type ;
243- registerTypeStyle ( type ) ;
244- } catch ( e ) {
245- const logger = data . page ?. logger || console ;
246- logger . error ( 'Error setting up AdvancedMap' , e ) ;
247- setting . type = undefined ;
234+
235+ if ( ! ( setting . type instanceof SettingType ) ) {
236+ switch ( typeof setting . type ) {
237+ case 'string' :
238+ setting . type = registry . get ( setting . type ) ;
239+ break ;
240+ case 'object' :
241+ try {
242+ const left = data . type . key || data . type . left || data . type [ 0 ] ;
243+ const right = data . type . value || data . type . right || data . type [ 1 ] ;
244+ const type = new AdvancedMap ( left , right ) ;
245+ setting . type = type ;
246+ registerTypeStyle ( type ) ;
247+ } catch ( e ) {
248+ const logger = data . page ?. logger || console ;
249+ logger . error ( 'Error setting up AdvancedMap' , e ) ;
250+ setting . type = undefined ;
251+ }
252+ break ;
253+ default : break ;
248254 }
249255 }
250256 if ( ! ( setting . type instanceof SettingType ) ) return undefined ; // TODO: Throw error?
0 commit comments