import type { LegacyConfigRule } from "../../config/legacy.shared.js"; import { listPluginDoctorLegacyConfigRules } from "../../plugins/doctor-contract-registry.js"; import { getBootstrapChannelPlugin } from "./bootstrap-registry.js"; import { loadBundledChannelDoctorContractApi } from "./doctor-contract-api.js"; import type { ChannelId } from "./types.public.js";
function collectConfiguredChannelIds(raw: unknown): ChannelId[] { if (!raw || typeof raw !== "object") { return [];
} const channels = (raw as { channels?: unknown }).channels; if (!channels || typeof channels !== "object" || Array.isArray(channels)) { return [];
} return Object.keys(channels)
.filter((channelId) => channelId !== "defaults")
.map((channelId) => channelId as ChannelId);
}
function shouldIncludeLegacyRuleForTouchedPaths(
rulePath: readonly string[],
touchedPaths?: ReadonlyArray<ReadonlyArray<string>>,
): boolean { if (!touchedPaths || touchedPaths.length === 0) { returntrue;
} return touchedPaths.some((touchedPath) => { const sharedLength = Math.min(rulePath.length, touchedPath.length); for (let index = 0; index < sharedLength; index += 1) { if (rulePath[index] !== touchedPath[index]) { returnfalse;
}
} returntrue;
});
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.