orca/src/shared/hook-command-source-policy.ts

27 lines
798 B
TypeScript

import type { HookCommandSourcePolicy } from './types'
export function normalizeHookCommandSourcePolicy(policy: unknown): HookCommandSourcePolicy {
if (policy === 'local-only' || policy === 'run-both' || policy === 'shared-only') {
return policy
}
// Why: old persisted settings may still contain the removed shared-first mode.
// Treat any unknown value as the authoritative committed config policy.
return 'shared-only'
}
export function resolveHookCommandSourcePolicy(
policy: unknown,
{ hasLocalScript }: { hasLocalScript: boolean }
): HookCommandSourcePolicy {
if (policy === 'local-only' || policy === 'run-both' || policy === 'shared-only') {
return policy
}
if (policy === undefined && hasLocalScript) {
return 'local-only'
}
return 'shared-only'
}