Browse Source

DataSourcePlugin: Avoid anuglar injector if only one parameter (#17239)

Ryan McKinley 6 years ago
parent
commit
9e7fa74682
1 changed files with 7 additions and 3 deletions
  1. 7 3
      public/app/features/plugins/datasource_srv.ts

+ 7 - 3
public/app/features/plugins/datasource_srv.ts

@@ -61,9 +61,13 @@ export class DatasourceSrv {
           return;
         }
 
-        const instance: DataSourceApi = this.$injector.instantiate(dsPlugin.DataSourceClass, {
-          instanceSettings: dsConfig,
-        });
+        // If there is only one constructor argument it is instanceSettings
+        const useAngular = dsPlugin.DataSourceClass.length !== 1;
+        const instance: DataSourceApi = useAngular
+          ? this.$injector.instantiate(dsPlugin.DataSourceClass, {
+              instanceSettings: dsConfig,
+            })
+          : new dsPlugin.DataSourceClass(dsConfig);
 
         instance.components = dsPlugin.components;
         instance.meta = dsConfig.meta;