mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-03 07:50:21 +00:00
refactor: dedupe bundled plugin scan helpers
This commit is contained in:
@@ -6,7 +6,9 @@ import {
|
||||
collectBundledPluginPublicSurfaceArtifacts,
|
||||
collectBundledPluginRuntimeSidecarArtifacts,
|
||||
deriveBundledPluginIdHint,
|
||||
rewriteBundledPluginEntryToBuiltPath,
|
||||
resolveBundledPluginScanDir,
|
||||
trimBundledPluginString,
|
||||
} from "./bundled-plugin-scan.js";
|
||||
import {
|
||||
getPackageManifestMetadata,
|
||||
@@ -52,23 +54,11 @@ export function clearBundledPluginMetadataCache(): void {
|
||||
bundledPluginMetadataCache.clear();
|
||||
}
|
||||
|
||||
function trimString(value: unknown): string | undefined {
|
||||
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
||||
}
|
||||
|
||||
function normalizeStringList(value: unknown): string[] {
|
||||
if (!Array.isArray(value)) {
|
||||
return [];
|
||||
}
|
||||
return value.map((entry) => trimString(entry) ?? "").filter(Boolean);
|
||||
}
|
||||
|
||||
function rewriteEntryToBuiltPath(entry: string | undefined): string | undefined {
|
||||
if (!entry) {
|
||||
return undefined;
|
||||
}
|
||||
const normalized = entry.replace(/^\.\//u, "");
|
||||
return normalized.replace(/\.[^.]+$/u, ".js");
|
||||
return value.map((entry) => trimBundledPluginString(entry) ?? "").filter(Boolean);
|
||||
}
|
||||
|
||||
function readPackageManifest(pluginDir: string): PackageManifest | undefined {
|
||||
@@ -114,18 +104,18 @@ function collectBundledPluginMetadataForPackageRoot(
|
||||
if (extensions.length === 0) {
|
||||
continue;
|
||||
}
|
||||
const sourceEntry = trimString(extensions[0]);
|
||||
const builtEntry = rewriteEntryToBuiltPath(sourceEntry);
|
||||
const sourceEntry = trimBundledPluginString(extensions[0]);
|
||||
const builtEntry = rewriteBundledPluginEntryToBuiltPath(sourceEntry);
|
||||
if (!sourceEntry || !builtEntry) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const setupSourcePath = trimString(packageManifest?.setupEntry);
|
||||
const setupSourcePath = trimBundledPluginString(packageManifest?.setupEntry);
|
||||
const setupSource =
|
||||
setupSourcePath && rewriteEntryToBuiltPath(setupSourcePath)
|
||||
setupSourcePath && rewriteBundledPluginEntryToBuiltPath(setupSourcePath)
|
||||
? {
|
||||
source: setupSourcePath,
|
||||
built: rewriteEntryToBuiltPath(setupSourcePath)!,
|
||||
built: rewriteBundledPluginEntryToBuiltPath(setupSourcePath)!,
|
||||
}
|
||||
: undefined;
|
||||
const publicSurfaceArtifacts = collectBundledPluginPublicSurfaceArtifacts({
|
||||
@@ -149,7 +139,7 @@ function collectBundledPluginMetadataForPackageRoot(
|
||||
idHint: deriveBundledPluginIdHint({
|
||||
entryPath: sourceEntry,
|
||||
manifestId: manifestResult.manifest.id,
|
||||
packageName: trimString(packageJson?.name),
|
||||
packageName: trimBundledPluginString(packageJson?.name),
|
||||
hasMultipleExtensions: extensions.length > 1,
|
||||
}),
|
||||
source: {
|
||||
@@ -159,12 +149,14 @@ function collectBundledPluginMetadataForPackageRoot(
|
||||
...(setupSource ? { setupSource } : {}),
|
||||
...(publicSurfaceArtifacts ? { publicSurfaceArtifacts } : {}),
|
||||
...(runtimeSidecarArtifacts ? { runtimeSidecarArtifacts } : {}),
|
||||
...(trimString(packageJson?.name) ? { packageName: trimString(packageJson?.name) } : {}),
|
||||
...(trimString(packageJson?.version)
|
||||
? { packageVersion: trimString(packageJson?.version) }
|
||||
...(trimBundledPluginString(packageJson?.name)
|
||||
? { packageName: trimBundledPluginString(packageJson?.name) }
|
||||
: {}),
|
||||
...(trimString(packageJson?.description)
|
||||
? { packageDescription: trimString(packageJson?.description) }
|
||||
...(trimBundledPluginString(packageJson?.version)
|
||||
? { packageVersion: trimBundledPluginString(packageJson?.version) }
|
||||
: {}),
|
||||
...(trimBundledPluginString(packageJson?.description)
|
||||
? { packageDescription: trimBundledPluginString(packageJson?.description) }
|
||||
: {}),
|
||||
...(packageManifest ? { packageManifest } : {}),
|
||||
manifest: {
|
||||
|
||||
@@ -9,11 +9,13 @@ const RUNTIME_SIDECAR_ARTIFACTS = new Set([
|
||||
"thread-bindings-runtime.js",
|
||||
]);
|
||||
|
||||
function trimString(value: unknown): string | undefined {
|
||||
export function trimBundledPluginString(value: unknown): string | undefined {
|
||||
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
||||
}
|
||||
|
||||
function rewriteEntryToBuiltPath(entry: string | undefined): string | undefined {
|
||||
export function rewriteBundledPluginEntryToBuiltPath(
|
||||
entry: string | undefined,
|
||||
): string | undefined {
|
||||
if (!entry) {
|
||||
return undefined;
|
||||
}
|
||||
@@ -51,7 +53,7 @@ export function deriveBundledPluginIdHint(params: {
|
||||
if (!params.hasMultipleExtensions) {
|
||||
return params.manifestId;
|
||||
}
|
||||
const packageName = trimString(params.packageName);
|
||||
const packageName = trimBundledPluginString(params.packageName);
|
||||
if (!packageName) {
|
||||
return `${params.manifestId}/${base}`;
|
||||
}
|
||||
@@ -77,7 +79,7 @@ export function collectBundledPluginPublicSurfaceArtifacts(params: {
|
||||
.map((entry) => entry.name)
|
||||
.filter(isTopLevelPublicSurfaceSource)
|
||||
.filter((entry) => !excluded.has(entry))
|
||||
.map((entry) => rewriteEntryToBuiltPath(entry))
|
||||
.map((entry) => rewriteBundledPluginEntryToBuiltPath(entry))
|
||||
.filter((entry): entry is string => typeof entry === "string" && entry.length > 0)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
return artifacts.length > 0 ? artifacts : undefined;
|
||||
|
||||
Reference in New Issue
Block a user