ui: add lightweight frontend build pipeline

This commit is contained in:
a.tolmachev
2026-04-12 02:28:05 +03:00
parent 2848d74929
commit b92350a6ac
22 changed files with 809 additions and 191 deletions
+27 -45
View File
@@ -3,7 +3,7 @@
return typeof t === 'function' ? t(key) : key;
}
var state = {
var defaults = {
currentStep: 1,
wizardProtocol: 'rest',
wizardMode: 'create',
@@ -27,6 +27,22 @@
selectedRpcMethod: null,
};
Object.keys(defaults).forEach(function(key) {
if (typeof window[key] !== 'undefined') {
return;
}
var value = defaults[key];
if (Array.isArray(value)) {
window[key] = value.slice();
return;
}
if (value && typeof value === 'object') {
window[key] = Object.assign({}, value);
return;
}
window[key] = value;
});
function defaultProtocolCapabilities() {
return {
rest: {
@@ -53,28 +69,28 @@
}
function currentProtocolCapabilities() {
var capabilities = state.wizardProtocolCapabilities || defaultProtocolCapabilities();
return capabilities[state.wizardProtocol] || capabilities.rest;
var capabilities = window.wizardProtocolCapabilities || defaultProtocolCapabilities();
return capabilities[window.wizardProtocol] || capabilities.rest;
}
async function loadProtocolCapabilities() {
if (!state.wizardWorkspaceId || !window.CrankApi || typeof window.CrankApi.getProtocolCapabilities !== 'function') {
state.wizardProtocolCapabilities = defaultProtocolCapabilities();
return state.wizardProtocolCapabilities;
if (!window.wizardWorkspaceId || !window.CrankApi || typeof window.CrankApi.getProtocolCapabilities !== 'function') {
window.wizardProtocolCapabilities = defaultProtocolCapabilities();
return window.wizardProtocolCapabilities;
}
try {
var response = await window.CrankApi.getProtocolCapabilities(state.wizardWorkspaceId);
var response = await window.CrankApi.getProtocolCapabilities(window.wizardWorkspaceId);
var mapped = {};
(response.items || []).forEach(function(item) {
mapped[item.protocol] = item;
});
state.wizardProtocolCapabilities = mapped;
window.wizardProtocolCapabilities = mapped;
} catch (_error) {
state.wizardProtocolCapabilities = defaultProtocolCapabilities();
window.wizardProtocolCapabilities = defaultProtocolCapabilities();
}
return state.wizardProtocolCapabilities;
return window.wizardProtocolCapabilities;
}
function step3Labels() {
@@ -88,44 +104,10 @@
}
window.CrankWizardState = {
state: state,
state: window,
defaultProtocolCapabilities: defaultProtocolCapabilities,
currentProtocolCapabilities: currentProtocolCapabilities,
loadProtocolCapabilities: loadProtocolCapabilities,
step3Labels: step3Labels,
};
[
'currentStep',
'wizardProtocol',
'wizardMode',
'wizardEditId',
'wizardWorkspaceId',
'wizardCurrentOperation',
'wizardCurrentVersion',
'wizardProtoUpload',
'wizardDescriptorSetUpload',
'wizardSoapWsdlUpload',
'wizardSoapXsdUpload',
'wizardTestResponsePreview',
'grpcDescriptorServices',
'soapServiceCatalog',
'wizardProtocolCapabilities',
'wizardSecrets',
'wizardAuthProfiles',
'selectedUpstreamId',
'editingUpstreamId',
'protoParsed',
'selectedRpcMethod'
].forEach(function(key) {
Object.defineProperty(window, key, {
configurable: true,
get: function() {
return state[key];
},
set: function(value) {
state[key] = value;
},
});
});
}());