export type MutationLockOptions = { mode: LockMode; key: string; bypass: boolean; }; export async function mutationLock( options: MutationLockOptions, mutation: () => Promise ): Promise { if (!options.bypass && 'locks' in navigator) { return navigator.locks.request( `_sqlocal_mutation_(${options.key})`, { mode: options.mode }, mutation ); } else { return mutation(); } }