Track HiveGrid Cloud planning reference
This commit is contained in:
1 parent
b3d5ea6764
commit
e341c5938a
5784 files changed
+1104929
-3
No files matched your search
@@ -0,0 +1,32 @@
|
||||
import type { PluginManifest } from "@toolctrl/plugin-runtime/manifest";
|
||||
|
||||
export const PLUGIN_HOOK_CONSENT_PREFIX = "hook:";
|
||||
|
||||
export type PluginConsentRequirement = {
|
||||
name: string;
|
||||
scope: PluginManifest["capabilities"][number]["scope"] | null;
|
||||
kind: "capability" | "hook";
|
||||
};
|
||||
|
||||
export function getPluginHookConsentName(hookName: string): string {
|
||||
return `${PLUGIN_HOOK_CONSENT_PREFIX}${hookName}`;
|
||||
}
|
||||
|
||||
export function isPluginHookConsentName(name: string): boolean {
|
||||
return name.startsWith(PLUGIN_HOOK_CONSENT_PREFIX);
|
||||
}
|
||||
|
||||
export function getPluginConsentRequirements(manifest: PluginManifest): PluginConsentRequirement[] {
|
||||
return [
|
||||
...(manifest.capabilities ?? []).map((capability) => ({
|
||||
name: capability.name as string,
|
||||
scope: capability.scope ?? null,
|
||||
kind: "capability" as const,
|
||||
})),
|
||||
...(manifest.hooks ?? []).map((hook) => ({
|
||||
name: getPluginHookConsentName(hook.name),
|
||||
scope: null,
|
||||
kind: "hook" as const,
|
||||
})),
|
||||
];
|
||||
}
|
||||
Reference in new issue
Block a user