Reduce the number of steps to release an app version with a hotkey.
// ==UserScript==
// @name Retool - Release Automator
// @namespace http://gofortuna.com
// @license MIT
// @version 2024-09-01
// @description Reduce the number of steps to release an app version with a hotkey.
// @author Kevin Hill
// @match https://*.retool.com/editor/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=retool.com
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.5/mousetrap.min.js
// @grant none
// ==/UserScript==
/* globals Mousetrap, $ */
(function() {
'use strict';
Mousetrap.bind(['command+/', 'ctrl+/'], async function(e) {
const panel = $('[data-testid="ReleasesAndHistoryPanel::Container"]');
const steps = [
() => {
if (panel && !panel.is(":visible")) {
$('[data-testid="ReleaseManagement::Launcher"]').parent("button").click();
}
},
() => panel.find('button:contains("Create")').click(),
() => $("#createRelease--trigger").click(),
() => $('#createReleaseBox div[role="option"]').first().click(),
() => $("#CreateRelease-description").focus()
];
return runSteps(steps, 300);
});
})();
async function runSteps(steps, delay) {
for (const step of steps) {
await step();
await new Promise(resolve => setTimeout(resolve, delay));
}
}