mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 06:42:52 +00:00
Extract shared normalization/coercion helpers into private @openclaw/normalization-core workspace package while preserving existing plugin SDK helper subpaths.\n\nAlso keeps direct normalization-core imports internal, wires UI/build/loader resolution, and replaces the slow PR network CodeQL lane with a fast added-line boundary scan while retaining full CodeQL for scheduled/manual runs.\n\nVerification: local moved tests, plugin SDK boundary tests, extension loader tests, agents-support shard, UI build/test, build artifacts, lint, workflow guards, autoreview, and GitHub CI passed on PR head 963d893715.
29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import path from "node:path";
|
|
import { uniqueStrings } from "@openclaw/normalization-core/string-normalization";
|
|
|
|
export function isTypeScriptPackageEntry(entryPath: string): boolean {
|
|
return [".ts", ".mts", ".cts"].includes(path.extname(entryPath).toLowerCase());
|
|
}
|
|
|
|
export function listBuiltRuntimeEntryCandidates(entryPath: string): string[] {
|
|
if (!isTypeScriptPackageEntry(entryPath)) {
|
|
return [];
|
|
}
|
|
const normalized = entryPath.replace(/\\/g, "/");
|
|
const withoutExtension = normalized.replace(/\.[^.]+$/u, "");
|
|
const normalizedRelative = normalized.replace(/^\.\//u, "");
|
|
const distWithoutExtension = normalizedRelative.startsWith("src/")
|
|
? `./dist/${normalizedRelative.slice("src/".length).replace(/\.[^.]+$/u, "")}`
|
|
: `./dist/${withoutExtension.replace(/^\.\//u, "")}`;
|
|
const withJavaScriptExtensions = (basePath: string) => [
|
|
`${basePath}.js`,
|
|
`${basePath}.mjs`,
|
|
`${basePath}.cjs`,
|
|
];
|
|
const candidates = [
|
|
...withJavaScriptExtensions(distWithoutExtension),
|
|
...withJavaScriptExtensions(withoutExtension),
|
|
];
|
|
return uniqueStrings(candidates).filter((candidate) => candidate !== normalized);
|
|
}
|