mirror of
https://github.com/certd/certd.git
synced 2026-04-14 12:30:54 +08:00
79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
var JDCloud = require('./core')
|
|
|
|
let defaultValues = {
|
|
credentials: null,
|
|
regionId: null,
|
|
apiVersions: null,
|
|
endpoint: {},
|
|
version: {},
|
|
logger: function (string, level = 'INFO') {
|
|
// level: INFO / DEBUG / ERROR / WARN
|
|
console.log(string)
|
|
}
|
|
}
|
|
JDCloud.Config = class Config {
|
|
constructor (options = {}) {
|
|
options = this.extractCredentials(options)
|
|
|
|
JDCloud.util.each.call(this, defaultValues, function (key, value) {
|
|
if (options[key] === undefined) {
|
|
this[key] = value
|
|
} else {
|
|
this[key] = options[key]
|
|
}
|
|
})
|
|
JDCloud.util.each.call(this, JDCloud.Service._services, function (
|
|
key,
|
|
value
|
|
) {
|
|
if (options[key] !== undefined) {
|
|
this[key] = options[key]
|
|
}
|
|
})
|
|
}
|
|
|
|
extractCredentials (options) {
|
|
if (options.accessKeyId && options.secretAccessKey) {
|
|
options = Object.assign({}, options)
|
|
options.credentials = new JDCloud.Credentials(options)
|
|
}
|
|
return options
|
|
}
|
|
|
|
getCredentials () {
|
|
var p = new Promise((resolve, reject) => {
|
|
if (this.credentials) {
|
|
if (typeof this.credentials.get === 'function') {
|
|
} else if (
|
|
this.credentials.accessKeyId &&
|
|
this.credentials.secretAccessKey
|
|
) {
|
|
resolve()
|
|
} else {
|
|
reject(new Error('missing credentials'))
|
|
}
|
|
} else if (this.credentialProvider) {
|
|
} else {
|
|
reject(new Error('get credentials failed'))
|
|
}
|
|
})
|
|
|
|
return p
|
|
}
|
|
|
|
update (options, allowUnknownKeys = false) {
|
|
options = this.extractCredentials(options)
|
|
JDCloud.util.each.call(this, options, function (key, value) {
|
|
if (
|
|
allowUnknownKeys ||
|
|
defaultValues.hasOwnProperty(key) ||
|
|
JDCloud.Service.hasService(key)
|
|
) {
|
|
this[key] = options[key]
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
JDCloud.config = new JDCloud.Config()
|