27 lines
798 B
TypeScript
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'
|
|
}
|