UNPKG

@adpt/cli

Version:
47 lines 1.65 kB
"use strict"; /* * Copyright 2020 Unbounded Systems, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("@adpt/utils"); const schema_1 = require("./schema"); const defaultGetValOptions = { useDefault: false, propTransform: (prop) => prop, }; function getValIfSet(prop, obj, schema, options = {}) { const { useDefault, propTransform } = Object.assign({}, defaultGetValOptions, options); const objKey = propTransform(prop); let val; if (objKey in obj) { val = obj[objKey]; } else { if (!useDefault) return undefined; val = schema[prop].default; } try { return schema_1.parseItem(prop, val, schema); } catch (err) { if (err.name !== schema_1.SchemaValidationError.name) throw err; throw new utils_1.UserError(`Error in configuration: expected type ${err.expectedType} ` + `for property '${objKey}' but got '${val}' (type ${typeof val})`); } } exports.getValIfSet = getValIfSet; //# sourceMappingURL=get_val.js.map