"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const base_1 = __importDefault(require("./base")); const unquote_1 = __importDefault(require("unquote")); const OPTIONS_SEPARATOR = ';'; const ARRAY_ITEMS_SEPARATOR = ','; const TYPESCRIPT_OPTIONS_PREFIX = 'typescript.options.'; const TYPESCRIPT_ARRAY_OPTION_NAMES = ['rootDirs', 'types', 'typeRoots', 'lib'].map(optionName => TYPESCRIPT_OPTIONS_PREFIX + optionName); function isTypeScriptArrayOption(name) { return !!name && TYPESCRIPT_ARRAY_OPTION_NAMES.includes(name); } function convertToArray(value) { if (!value) return []; return value .split(ARRAY_ITEMS_SEPARATOR) .map(unquote_1.default); } function convertToArrayIfNecessary(key, value) { return isTypeScriptArrayOption(key) ? convertToArray(value) : value; } async function default_1(options) { return (0, base_1.default)(options, { optionsSeparator: OPTIONS_SEPARATOR, async onOptionParsed(key, value) { return convertToArrayIfNecessary(key, value); }, }); } exports.default = default_1; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZ2V0LW9wdGlvbnMvY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBb0M7QUFFcEMsc0RBQThCO0FBRTlCLE1BQU0saUJBQWlCLEdBQU8sR0FBRyxDQUFDO0FBQ2xDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBRWxDLE1BQU0seUJBQXlCLEdBQUcscUJBQXFCLENBQUM7QUFFeEQsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHlCQUF5QixHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBRTFJLFNBQVMsdUJBQXVCLENBQUUsSUFBWTtJQUMxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksNkJBQTZCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBRSxLQUFhO0lBQ2xDLElBQUksQ0FBQyxLQUFLO1FBQ04sT0FBTyxFQUFFLENBQUM7SUFFZCxPQUFPLEtBQUs7U0FDUCxLQUFLLENBQUMscUJBQXFCLENBQUM7U0FDNUIsR0FBRyxDQUFDLGlCQUFPLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBRSxHQUFXLEVBQUUsS0FBYTtJQUMxRCxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN4RSxDQUFDO0FBRWMsS0FBSyxvQkFBVyxPQUFlO0lBQzFDLE9BQU8sSUFBQSxjQUFjLEVBQUMsT0FBTyxFQUFFO1FBQzNCLGdCQUFnQixFQUFFLGlCQUFpQjtRQUVuQyxLQUFLLENBQUMsY0FBYyxDQUFFLEdBQVcsRUFBRSxLQUFhO1lBQzVDLE9BQU8seUJBQXlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBUkQsNEJBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldE9wdGlvbnMgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHVucXVvdGUgZnJvbSAndW5xdW90ZSc7XG5cbmNvbnN0IE9QVElPTlNfU0VQQVJBVE9SICAgICA9ICc7JztcbmNvbnN0IEFSUkFZX0lURU1TX1NFUEFSQVRPUiA9ICcsJztcblxuY29uc3QgVFlQRVNDUklQVF9PUFRJT05TX1BSRUZJWCA9ICd0eXBlc2NyaXB0Lm9wdGlvbnMuJztcblxuY29uc3QgVFlQRVNDUklQVF9BUlJBWV9PUFRJT05fTkFNRVMgPSBbJ3Jvb3REaXJzJywgJ3R5cGVzJywgJ3R5cGVSb290cycsICdsaWInXS5tYXAob3B0aW9uTmFtZSA9PiBUWVBFU0NSSVBUX09QVElPTlNfUFJFRklYICsgb3B0aW9uTmFtZSk7XG5cbmZ1bmN0aW9uIGlzVHlwZVNjcmlwdEFycmF5T3B0aW9uIChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFuYW1lICYmIFRZUEVTQ1JJUFRfQVJSQVlfT1BUSU9OX05BTUVTLmluY2x1ZGVzKG5hbWUpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VG9BcnJheSAodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXZhbHVlKVxuICAgICAgICByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgLnNwbGl0KEFSUkFZX0lURU1TX1NFUEFSQVRPUilcbiAgICAgICAgLm1hcCh1bnF1b3RlKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRvQXJyYXlJZk5lY2Vzc2FyeSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzVHlwZVNjcmlwdEFycmF5T3B0aW9uKGtleSkgPyBjb252ZXJ0VG9BcnJheSh2YWx1ZSkgOiB2YWx1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKG9wdGlvbnM6IHN0cmluZyk6IFByb21pc2U8RGljdGlvbmFyeTxudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPj4ge1xuICAgIHJldHVybiBiYXNlR2V0T3B0aW9ucyhvcHRpb25zLCB7XG4gICAgICAgIG9wdGlvbnNTZXBhcmF0b3I6IE9QVElPTlNfU0VQQVJBVE9SLFxuXG4gICAgICAgIGFzeW5jIG9uT3B0aW9uUGFyc2VkIChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FycmF5SWZOZWNlc3Nhcnkoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgfSk7XG59XG4iXX0=