|
|
|
@ -1,10 +1,11 @@
|
|
|
|
|
import { CONSTANT_PLUGIN_TYPES } from './app.constant'; |
|
|
|
|
import { DATA_BASE_TYPES } from '@constants/constant'; |
|
|
|
|
|
|
|
|
|
BI.provider('dec.connection.provider.datebase', function() { |
|
|
|
|
BI.provider('dec.connection.provider.datebase', function () { |
|
|
|
|
this.resolves = {}; |
|
|
|
|
|
|
|
|
|
// 原service中resolveUrlInfo方法
|
|
|
|
|
function jdbcResolve (url: string) { |
|
|
|
|
function jdbcResolve(url: string) { |
|
|
|
|
if (BI.isNull(url)) return {}; |
|
|
|
|
const oracleUlr = url.match(/^jdbc:(oracle):(thin:([0-9a-zA-Z/]*)?@|thin:([0-9a-zA-Z/]*)?@\/\/|\/\/|)([0-9a-zA-Z_\\.-]+)(:([0-9|port]+))?(:|\/)([^]+)(.*)/i); |
|
|
|
|
if (oracleUlr) { |
|
|
|
@ -68,14 +69,35 @@ BI.provider('dec.connection.provider.datebase', function() {
|
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function coverBaseDatabase(config) { |
|
|
|
|
const baseDataBase = DATA_BASE_TYPES.find(item => item.text === config.text); |
|
|
|
|
if (BI.isNotNull(baseDataBase)) { |
|
|
|
|
// 覆盖基础配置
|
|
|
|
|
Object.assign(baseDataBase, config); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.registerDatabaseType = (config: any) => { |
|
|
|
|
if (coverBaseDatabase(config)) return; |
|
|
|
|
|
|
|
|
|
BI.config(CONSTANT_PLUGIN_TYPES, connections => BI.concat(connections, config)); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
this.registerJdbcDatabase = (config: any, resolve?: Function) => { |
|
|
|
|
BI.config(CONSTANT_PLUGIN_TYPES, connections => BI.concat(connections, { ...config, type: 'jdbc' })); |
|
|
|
|
config = { |
|
|
|
|
...config, |
|
|
|
|
type: 'jdbc', |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
BI.isFunction(resolve) && (this.resolves[config.databaseType] = resolve); |
|
|
|
|
|
|
|
|
|
if (coverBaseDatabase(config)) return; |
|
|
|
|
|
|
|
|
|
BI.config(CONSTANT_PLUGIN_TYPES, connections => BI.concat(connections, config)); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
this.$get = () => BI.inherit(BI.OB, { |
|
|
|
|