Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composition: Filter out disabled refs in getAutoRefs #12863

Merged
merged 7 commits into from Dec 1, 2020
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
37 changes: 23 additions & 14 deletions lib/core/src/server/manager/manager-config.js
Expand Up @@ -12,14 +12,17 @@ import loadPresets from '../presets';
import loadCustomPresets from '../common/custom-presets';
import { typeScriptDefaults } from '../config/defaults';

export const getAutoRefs = async (options) => {
export const getAutoRefs = async (options, disabledRefs = []) => {
const location = await findUp('package.json', { cwd: options.configDir });
const directory = path.dirname(location);

const { dependencies, devDependencies } = await fs.readJSON(location);
const deps = Object.keys({ ...dependencies, ...devDependencies }).filter(
(dep) => !disabledRefs.includes(dep)
);

const list = await Promise.all(
Object.keys({ ...dependencies, ...devDependencies }).map(async (d) => {
deps.map(async (d) => {
try {
const l = resolveFrom(directory, path.join(d, 'package.json'));

Expand Down Expand Up @@ -70,8 +73,25 @@ async function getManagerWebpackConfig(options, presets) {
const typescriptOptions = await presets.apply('typescript', { ...typeScriptDefaults }, options);
const babelOptions = await presets.apply('babel', {}, { ...options, typescriptOptions });

const autoRefs = await getAutoRefs(options);
const definedRefs = await presets.apply('refs', undefined, options);
const disabledRefs = Object.entries(definedRefs)
.filter(([key, value]) => {
const { disable, disabled } = value;

if (disable || disabled) {
if (disabled) {
deprecatedDefinedRefDisabled();
}

delete definedRefs[key]; // Also delete the ref that is disabled in definedRefs

return true;
}

return false;
})
.map((ref) => ref[0]);
const autoRefs = await getAutoRefs(options, disabledRefs);
const entries = await presets.apply('managerEntries', [], options);

const refs = {};
Expand All @@ -89,17 +109,6 @@ async function getManagerWebpackConfig(options, presets) {

if (definedRefs) {
Object.entries(definedRefs).forEach(([key, value]) => {
const { disable, disabled } = value;

if (disable || disabled) {
if (disabled) {
deprecatedDefinedRefDisabled();
}

delete refs[key.toLowerCase()];
return;
}

const url = typeof value === 'string' ? value : value.url;
const rest =
typeof value === 'string'
Expand Down