debt-collector
Version:
a nodejs tool to identify, track and mesure technical debt
47 lines (46 loc) • 1.61 kB
JavaScript
import { useEffect, useState } from 'react';
import getConfigPath from './getConfigPath.js';
import validateConfig from './validateConfig.js';
const useValidatedConfig = (config) => {
const [result, setResult] = useState({
isConfigValid: null,
sanitizedConfig: null,
configErrors: null,
userConfig: null,
});
useEffect(() => {
;
(async () => {
const configPath = getConfigPath(config ?? '');
try {
const { isConfigValid: isValid, sanitizedConfig: cleanConfig, configErrors: errors, userConfig: baseConfig, } = await validateConfig(configPath);
if (!isValid) {
setResult({
isConfigValid: false,
sanitizedConfig: null,
configErrors: errors,
userConfig: null,
});
}
else {
setResult({
isConfigValid: true,
sanitizedConfig: cleanConfig,
configErrors: null,
userConfig: baseConfig,
});
}
}
catch (e) {
setResult({
isConfigValid: false,
sanitizedConfig: null,
configErrors: [e instanceof Error ? e.message : 'Unknown error'],
userConfig: null,
});
}
})();
}, []);
return result;
};
export default useValidatedConfig;