in lex-web-ui/src/lex-web-ui.js [112:178]
constructor(config = {}) {
const mergedConfig = mergeConfig(defaultConfig, config);
const VueConstructor = (window.Vue) ? window.Vue : Vue;
if (!VueConstructor) {
throw new Error('unable to find Vue');
}
const VuexConstructor = (window.Vuex) ? window.Vuex : Vuex;
if (!VuexConstructor) {
throw new Error('unable to find Vuex');
}
const AWSConfigConstructor = (window.AWS && window.AWS.Config) ?
window.AWS.Config :
AWSConfig;
const CognitoConstructor =
(window.AWS && window.AWS.CognitoIdentityCredentials) ?
window.AWS.CognitoIdentityCredentials :
CognitoIdentityCredentials;
const PollyConstructor = (window.AWS && window.AWS.Polly) ?
window.AWS.Polly :
Polly;
const LexRuntimeConstructor = (window.AWS && window.AWS.LexRuntime) ?
window.AWS.LexRuntime :
LexRuntime;
const LexRuntimeConstructorV2 = (window.AWS && window.AWS.LexRuntimeV2) ?
window.AWS.LexRuntimeV2 :
LexRuntimeV2;
if (!AWSConfigConstructor || !CognitoConstructor || !PollyConstructor
|| !LexRuntimeConstructor || !LexRuntimeConstructorV2) {
throw new Error('unable to find AWS SDK');
}
const credentials = new CognitoConstructor(
{ IdentityPoolId: mergedConfig.cognito.poolId },
{ region: mergedConfig.region || mergedConfig.cognito.poolId.split(':')[0] || 'us-east-1' },
);
const awsConfig = new AWSConfigConstructor({
region: mergedConfig.region || mergedConfig.cognito.poolId.split(':')[0] || 'us-east-1',
credentials,
});
const lexRuntimeClient = new LexRuntimeConstructor(awsConfig);
const lexRuntimeV2Client = new LexRuntimeConstructorV2(awsConfig);
/* eslint-disable no-console */
const pollyClient = (
typeof mergedConfig.recorder === 'undefined' ||
(mergedConfig.recorder && mergedConfig.recorder.enable !== false)
) ? new PollyConstructor(awsConfig) : null;
this.store = new VuexConstructor.Store({ ...VuexStore });
VueConstructor.use(Plugin, {
config: mergedConfig,
awsConfig,
lexRuntimeClient,
lexRuntimeV2Client,
pollyClient,
});
}