forked from vgoma/crypto-pro
-
Notifications
You must be signed in to change notification settings - Fork 0
/
isValidSystemSetup.ts
34 lines (28 loc) · 1.21 KB
/
isValidSystemSetup.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';
import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';
import { _isSupportedCadesVersion } from '../helpers/_isSupportedCadesVersion';
import { _isSupportedCSPVersion } from '../helpers/_isSupportedCSPVersion';
import { getSystemInfo, SystemInfo } from './getSystemInfo';
/**
* Проверяет корректность настроек ЭП на машине
*
* @returns флаг корректности настроек
*/
export const isValidSystemSetup = _afterPluginsLoaded(
async (): Promise<boolean> => {
let systemInfo: SystemInfo;
try {
systemInfo = await getSystemInfo();
} catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage(error) || 'Настройки ЭП на данной машине не верны');
}
if (!_isSupportedCadesVersion(systemInfo.cadesVersion)) {
throw new Error('Не поддерживаемая версия плагина');
}
if (!_isSupportedCSPVersion(systemInfo.cspVersion)) {
throw new Error('Не поддерживаемая версия CSP');
}
return true;
},
);