


















@@ -1,10 +1,8 @@
11import { resolveBundledPluginCompatibleLoadValues } from "./activation-context.js";
22import type { PluginLoadOptions } from "./loader.js";
3-import {
4-loadPluginManifestRegistry,
5-resolveManifestContractPluginIds,
6-type PluginManifestRecord,
7-} from "./manifest-registry.js";
3+import { loadPluginManifestRegistryForInstalledIndex } from "./manifest-registry-installed.js";
4+import type { PluginManifestRecord } from "./manifest-registry.js";
5+import { loadPluginRegistrySnapshot } from "./plugin-registry.js";
86import {
97createPluginIdScopeSet,
108normalizePluginIdScope,
@@ -62,6 +60,25 @@ function pluginManifestDeclaresProviderConfig(
6260return typeof properties === "object" && properties !== null && configKey in properties;
6361}
646263+function loadInstalledWebProviderManifestRecords(params: {
64+config?: PluginLoadOptions["config"];
65+workspaceDir?: string;
66+env?: PluginLoadOptions["env"];
67+}): readonly PluginManifestRecord[] {
68+const index = loadPluginRegistrySnapshot({
69+config: params.config,
70+workspaceDir: params.workspaceDir,
71+env: params.env,
72+});
73+return loadPluginManifestRegistryForInstalledIndex({
74+ index,
75+config: params.config,
76+workspaceDir: params.workspaceDir,
77+env: params.env,
78+includeDisabled: true,
79+}).plugins;
80+}
81+6582export function resolveManifestDeclaredWebProviderCandidatePluginIds(params: {
6683contract: WebProviderContract;
6784configKey: WebProviderConfigKey;
@@ -73,12 +90,12 @@ export function resolveManifestDeclaredWebProviderCandidatePluginIds(params: {
7390}): string[] | undefined {
7491const scopedPluginIds = normalizePluginIdScope(params.onlyPluginIds);
7592const onlyPluginIdSet = createPluginIdScopeSet(scopedPluginIds);
76-const ids = loadPluginManifestRegistry({
93+const ids = loadInstalledWebProviderManifestRecords({
7794config: params.config,
7895workspaceDir: params.workspaceDir,
7996env: params.env,
8097})
81-.plugins.filter(
98+.filter(
8299(plugin) =>
83100(!params.origin || plugin.origin === params.origin) &&
84101(!onlyPluginIdSet || onlyPluginIdSet.has(plugin.id)) &&
@@ -98,13 +115,13 @@ function resolveBundledWebProviderCompatPluginIds(params: {
98115workspaceDir?: string;
99116env?: PluginLoadOptions["env"];
100117}): string[] {
101-return resolveManifestContractPluginIds({
102-contract: params.contract,
103-origin: "bundled",
104-config: params.config,
105-workspaceDir: params.workspaceDir,
106-env: params.env,
107-});
118+return loadInstalledWebProviderManifestRecords(params)
119+.filter(
120+ (plugin) =>
121+ plugin.origin === "bundled" && (plugin.contracts?.[params.contract]?.length ?? 0) > 0,
122+)
123+.map((plugin) => plugin.id)
124+ .toSorted((left, right) => left.localeCompare(right));
108125}
109126110127export function resolveBundledWebProviderResolutionConfig(params: {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。