UNPKG

vasku

Version:

TVM-Solidity contract development framework

78 lines (77 loc) 3.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateAndSetDefaults = void 0; const joi_1 = __importDefault(require("joi")); const giverLabels_1 = require("./types/giverLabels"); const defaults = { compile: { compiler: 'latest', linker: 'latest', include: ['**/*.tsol', '**/*.sol'], exclude: ['**/interface/*', '**/interfaces/*'] }, networks: { local: { endpoints: ['http://localhost'], giver: giverLabels_1.GIVER.se.v3 } }, se: { version: 'latest', instance: 'default', port: 8080, dbPort: 'none' }, paths: { build: 'build', cache: 'cache', contracts: 'contracts', keys: 'keys', tests: 'tests', scripts: 'scripts' }, timeout: 60000 }; function validateAndSetDefaults(config) { const schema = joi_1.default.object({ compile: joi_1.default.object({ compiler: joi_1.default.string().default(defaults.compile.compiler), linker: joi_1.default.string().default(defaults.compile.linker), include: joi_1.default.array().items(joi_1.default.string()).default(defaults.compile.include), exclude: joi_1.default.array().items(joi_1.default.string()).default(defaults.compile.exclude) }).default(defaults.compile), networks: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.alternatives(joi_1.default.object({ endpoints: joi_1.default.array().items(joi_1.default.string()).default(defaults.networks.local.endpoints), giver: joi_1.default.string().valid(...giverLabels_1.SE_GIVERS).default(defaults.networks.local.giver) }), joi_1.default.object({ endpoints: joi_1.default.array().items(joi_1.default.string()).required(), giver: joi_1.default.string().valid(...giverLabels_1.GIVERS).required(), keys: joi_1.default.object({ name: joi_1.default.any(), file: joi_1.default.any() }) })).default(defaults.networks.local)), se: joi_1.default.object({ version: joi_1.default.string().default(defaults.se.version), image: joi_1.default.string().allow(''), container: joi_1.default.string().allow(''), port: joi_1.default.number().integer().default(defaults.se.port), dbPort: joi_1.default.alternatives(joi_1.default.number().integer(), joi_1.default.string()).default(defaults.se.dbPort), instance: joi_1.default.string().default(defaults.se.instance) }).default(defaults.se), paths: joi_1.default.object({ build: joi_1.default.string().default(defaults.paths.build), cache: joi_1.default.string().default(defaults.paths.cache), contracts: joi_1.default.string().default(defaults.paths.contracts), keys: joi_1.default.string().default(defaults.paths.keys), tests: joi_1.default.string().default(defaults.paths.tests), scripts: joi_1.default.string().default(defaults.paths.scripts) }).default(defaults.paths), timeout: joi_1.default.number().default(defaults.timeout) }); return schema.validate(config); } exports.validateAndSetDefaults = validateAndSetDefaults;