mysterium-vpn-js
Version:
Javascript SDK for Mysterium node
36 lines (35 loc) • 1.58 kB
JavaScript
;
/**
* Copyright (c) 2020 BlockDev AG
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseAccessPolicyList = exports.parseAccessPolicy = void 0;
const validation_1 = require("../fmt/validation");
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function parseAccessRule(responseData) {
(0, validation_1.validateMultiple)('AccessRule', responseData, [{ name: 'type', type: 'string' }]);
if (responseData.value) {
(0, validation_1.validate)('AccessRule.value', responseData, { name: 'value', type: 'string' });
}
return responseData;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function parseAccessPolicy(responseData) {
(0, validation_1.validateMultiple)('AccessPolicy', responseData, [
{ name: 'id', type: 'string' },
{ name: 'title', type: 'string' },
{ name: 'description', type: 'string' },
{ name: 'allow', type: 'array' },
]);
return Object.assign(Object.assign({}, responseData), { allow: responseData.allow.map(parseAccessRule) });
}
exports.parseAccessPolicy = parseAccessPolicy;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function parseAccessPolicyList(responseData) {
(0, validation_1.validate)('AccessPolicy[]', responseData, { name: 'entries', type: 'array' });
return responseData.entries.map(parseAccessPolicy);
}
exports.parseAccessPolicyList = parseAccessPolicyList;