<p dir="auto">Is the project dead? Are new maintainers sought?</p>
<ul dir="auto">
<li>97 open pull requests</li>
<li>411 open issues</li>
</ul>
<h4 dir="auto">Describe the issue</h4>
<p dir="auto">Since <code class="notranslate">axios@0.20.0-0</code> the <code class="notranslate">url</code> config parameter has stopped merging the default instance value if one exists. This question is similar to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="772382599" data-permission-text="Title is private" data-url="https://github.com/axios/axios/issues/3491" data-hovercard-type="issue" data-hovercard-url="/axios/axios/issues/3491/hovercard" href="https://github.com/axios/axios/issues/3491">#3491</a> that was auto-closed.</p>
<p dir="auto">It looks like duplication of the <code class="notranslate">url</code> key was addressed in <a href="https://github.com/axios/axios/issues/2878#issuecomment-610269234" data-hovercard-type="issue" data-hovercard-url="/axios/axios/issues/2878/hovercard">this comment</a>, PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="587036240" data-permission-text="Title is private" data-url="https://github.com/axios/axios/issues/2844" data-hovercard-type="pull_request" data-hovercard-url="/axios/axios/pull/2844/hovercard" href="https://github.com/axios/axios/pull/2844">#2844</a>, and <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/axios/axios/commit/24b8ce3b1b636fb9a058d3710ee699a9157b7a3e/hovercard" href="https://github.com/axios/axios/commit/24b8ce3b1b636fb9a058d3710ee699a9157b7a3e"><tt>24b8ce3</tt></a></p>
<p dir="auto">I am wondering if this change had an unintended side effect of not using the instance value if the passed in config does not contain a <code class="notranslate">url</code> key.</p>
<p dir="auto">I believe that removing <code class="notranslate">url</code> from <code class="notranslate">valueFromConfig2Keys</code> and adding it to <code class="notranslate">defaultToConfig2Keys</code> in <a href="https://github.com/axios/axios/blob/master/lib/core/mergeConfig.js#L18-L26">mergeConfig.js</a> would solve this and not reintroduce the duplication mentioned before, but I'm not sure if that would have other unintended consequences.</p>
<h4 dir="auto">Example Code</h4>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const instance = axios.create({ url: 'https://someexample.com' });

instance.request({ method: 'GET', params: { foo: 'bar' } }); // after merge occurs, this config will not have a url key"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-s1">instance</span> <span class="pl-c1">=</span> <span class="pl-s1">axios</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">url</span>: <span class="pl-s">'https://someexample.com'</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">instance</span><span class="pl-kos">.</span><span class="pl-en">request</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">method</span>: <span class="pl-s">'GET'</span><span class="pl-kos">,</span> <span class="pl-c1">params</span>: <span class="pl-kos">{</span> <span class="pl-c1">foo</span>: <span class="pl-s">'bar'</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// after merge occurs, this config will not have a url key</span></pre></div>
<h4 dir="auto">Expected behavior, if applicable</h4>
<p dir="auto">The <code class="notranslate">url</code> should default to the passed in value, if one exists. If not, then the default should come from the instance's config.</p>
<h4 dir="auto">Environment</h4>
<ul dir="auto">
<li>Axios Version [^0.20.0-0]</li>
<li>Adapter [core]</li>
<li>Browser [N/A]</li>
<li>Browser Version [N/A]</li>
<li>Node.js Version [N/A]</li>
<li>OS: [N/A]</li>
<li>Additional Library Versions [N/A]</li>
</ul>
<h4 dir="auto">Additional context/Screenshots</h4>
<p dir="auto">Having to pass a <code class="notranslate">url</code> to <code class="notranslate">instance.request()</code> may be the desired behavior, but I wasn't sure where else to ask</p>
<p dir="auto">Merging of <code class="notranslate">url</code> currently happens <a href="https://github.com/axios/axios/blob/master/lib/core/mergeConfig.js#L48-L52">here</a></p>
<p dir="auto">When <code class="notranslate">url</code> is not present, none of the other merges can add a <code class="notranslate">url</code> value from another config.</p>
<p dir="auto">Moving <code class="notranslate">url</code> key to <code class="notranslate">defaultToConfig2Keys</code> should grab the value from the passed in config (current behavior) and merge from the default config when not found (past behavior) <a href="https://github.com/axios/axios/blob/master/lib/core/mergeConfig.js#L56-L62">here</a></p>