@unito/integration-debugger
Version:
The Unito Integration Debugger
94 lines (93 loc) • 3.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const store_1 = require("./store");
const configuration_1 = require("./resources/configuration");
const integrationsPlatform_1 = require("./services/integrationsPlatform");
const process_1 = require("./resources/process");
const ConfigurationWatcher = (props) => {
const configuration = (0, store_1.useConfigurationState)();
const profile = (0, store_1.useProfileState)();
const integration = (0, store_1.useIntegrationState)();
const credential = (0, store_1.useCredentialState)();
const status = (0, store_1.useStatusState)();
const processState = (0, store_1.useIntegrationProcessState)();
//
// API key.
//
(0, react_1.useEffect)(() => {
(0, integrationsPlatform_1.setEnvironment)(configuration.environment);
(0, integrationsPlatform_1.setApiKey)(configuration.apiKey);
if (!status.environment || !status.apiKey || configuration.environment === configuration_1.Environment.None) {
profile.current = null;
}
else {
(0, integrationsPlatform_1.getProfile)()
.then(incomingProfile => {
profile.current = incomingProfile;
})
.catch(() => {
// TODO.
profile.current = null;
});
}
}, [configuration.apiKey, configuration.environment, status.apiKey, status.environment]);
//
// Integration.
//
(0, react_1.useEffect)(() => {
if (configuration.integrationId) {
(0, integrationsPlatform_1.getIntegration)(configuration.integrationId)
.then(incomingIntegration => {
integration.current = incomingIntegration;
})
.catch(() => {
// TODO.
integration.current = null;
});
}
else {
integration.current = null;
}
}, [configuration.integrationId]);
//
// Credential.
//
(0, react_1.useEffect)(() => {
if (configuration.credentialId) {
(0, integrationsPlatform_1.getCredential)(configuration.credentialId)
.then(incomingCredential => {
credential.current = incomingCredential;
})
.catch(() => {
// TODO.
credential.current = null;
});
}
else {
credential.current = null;
}
}, [configuration.credentialId]);
//
// Integration Process.
//
(0, react_1.useEffect)(() => {
if (configuration.spawnProcessCommand && !processState.process) {
processState.process = (0, process_1.spawnProcess)(configuration.spawnProcessCommand, data => {
data
.trimEnd()
.split('\n')
.forEach((line) => processState.addLine(line));
});
}
}, [configuration.spawnProcessCommand]);
//
// Load from disk.
//
(0, react_1.useEffect)(() => {
configuration.current = props.configuration;
}, []);
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
};
exports.default = ConfigurationWatcher;
;