packages/QnAMaker/bin/qnamaker.js
async function composeConfig() {
    const {QNAMAKER_SUBSCRIPTION_KEY, QNAMAKER_HOSTNAME, QNAMAKER_ENDPOINTKEY, QNAMAKER_KBID} = process.env;
    const {subscriptionKey, hostname, endpointKey, kbId} = args;

    let qnamakerrcJson = {};
    let config;
    try {
        await fs.access(path.join(process.cwd(), '.qnamakerrc'), fs.R_OK);
        qnamakerrcJson = JSON.parse(await txtfile.read(path.join(process.cwd(), '.qnamakerrc')));
    } catch (e) {
        // Do nothing
    } finally {
        config = {
            subscriptionKey: (subscriptionKey || qnamakerrcJson.subscriptionKey || QNAMAKER_SUBSCRIPTION_KEY),
            hostname: (hostname || qnamakerrcJson.hostname || QNAMAKER_HOSTNAME),
            endpointKey: (endpointKey || qnamakerrcJson.endpointKey || QNAMAKER_ENDPOINTKEY),
            kbId: (kbId || qnamakerrcJson.kbId || QNAMAKER_KBID)
        };
    }
    return config;
}
async function composeConfig() {
    const {QNAMAKER_SUBSCRIPTION_KEY, QNAMAKER_HOSTNAME, QNAMAKER_ENDPOINTKEY, QNAMAKER_KBID} = process.env;
    const {subscriptionKey, hostname, endpointKey, kbId} = args;

    let qnamakerrcJson = {};
    let config;
    try {
        await fs.access(path.join(process.cwd(), '.qnamakerrc'), fs.R_OK);
        qnamakerrcJson = JSON.parse(await txtfile.read(path.join(process.cwd(), '.qnamakerrc')));
    } catch (e) {
        // Do nothing
    } finally {
        config = {
            subscriptionKey: (subscriptionKey || qnamakerrcJson.subscriptionKey || QNAMAKER_SUBSCRIPTION_KEY),
            hostname: (hostname || qnamakerrcJson.hostname || QNAMAKER_HOSTNAME),
            endpointKey: (endpointKey || qnamakerrcJson.endpointKey || QNAMAKER_ENDPOINTKEY),
            kbId: (kbId || qnamakerrcJson.kbId || QNAMAKER_KBID)
        };
    }
    return config;
}
async function composeConfig ( ) { const { QNAMAKER_SUBSCRIPTION_KEY , QNAMAKER_HOSTNAME , QNAMAKER_ENDPOINTKEY , QNAMAKER_KBID } = process . env ; const { subscriptionKey , hostname , endpointKey , kbId } = args ; let qnamakerrcJson = { } ; let config ; try { await fs . access ( path . join ( process . cwd ( ) , '.qnamakerrc' ) , fs . R_OK ) ; qnamakerrcJson = JSON . parse ( await txtfile . read ( path . join ( process . cwd ( ) , '.qnamakerrc' ) ) ) ; } catch ( e ) { // Do nothing } finally { config = { subscriptionKey : ( subscriptionKey || qnamakerrcJson . subscriptionKey || QNAMAKER_SUBSCRIPTION_KEY ) , hostname : ( hostname || qnamakerrcJson . hostname || QNAMAKER_HOSTNAME ) , endpointKey : ( endpointKey || qnamakerrcJson . endpointKey || QNAMAKER_ENDPOINTKEY ) , kbId : ( kbId || qnamakerrcJson . kbId || QNAMAKER_KBID ) } ; } return config ; }
Composes the config from the 3 sources that it may reside.
Precedence is 1. Arguments, 2. qnamakerrc and 3. env variables

@returns {Promise<*>}
Composes the config from the 3 sources that it may reside . Precedence is 1 . Arguments 2 . qnamakerrc and 3 . env variables