22 lines
851 B
JavaScript
22 lines
851 B
JavaScript
function createOfflineIssueBlocker({
|
|
enqueueDurably,
|
|
onQueued = () => {},
|
|
createOperationId = () => globalThis.crypto?.randomUUID?.() || String(Date.now()) + '-' + Math.random().toString(16).slice(2),
|
|
}) {
|
|
return async function queueOfflineIssueBlocker(item, blocker, present) {
|
|
const admission = await enqueueDurably({
|
|
kind: 'issue-blocker',
|
|
repository: String(item.repository || ''),
|
|
number: Number(item.number || 0),
|
|
blockerRepository: String(blocker.repository || ''),
|
|
blockerNumber: Number(blocker.number || 0),
|
|
present: present === true,
|
|
operationId: String(createOperationId()).slice(0, 128),
|
|
});
|
|
onQueued(item, blocker, present === true, admission);
|
|
return { admission };
|
|
};
|
|
}
|
|
|
|
if (typeof module !== 'undefined' && module.exports) module.exports = createOfflineIssueBlocker;
|