UNPKG

ts-randomizer

Version:

A tool to create random data by type parameters

49 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeTypeParamsMap = void 0; const lodash_1 = require("lodash"); const utils_1 = require("../utils"); const mergeTypeParamsMap = (argumentsMap = {}, nodeTypeArguments = {}, typeArgumentsMap = {}) => { const newArgumentsMap = (0, lodash_1.isEmpty)(argumentsMap) ? (0, lodash_1.isEmpty)(nodeTypeArguments) || Object.keys(nodeTypeArguments).some(k => typeArgumentsMap[k]) ? typeArgumentsMap : nodeTypeArguments : argumentsMap; Object.keys(newArgumentsMap).forEach(key => { const item = newArgumentsMap[key]; const symbol = item.type.getSymbol(); if (!symbol) { return; } const found = typeArgumentsMap[symbol.name] || nodeTypeArguments[symbol.name]; if (found) { newArgumentsMap[key] = { isArray: item.isArray || found.isArray, type: found.type, }; return; } (0, utils_1.getTypeArguments)(item.type).forEach(i => { if (!i.symbol) { return; } const arr = (0, utils_1.getFirstTypeParameter)(i); const symbolName = (0, utils_1.isArrayType)(i) ? arr ? arr.symbol && arr.symbol.name : i.symbol.name : i.symbol.name; if (!symbolName) { return; } newArgumentsMap[symbolName] = typeArgumentsMap[symbolName] || nodeTypeArguments[symbolName] || newArgumentsMap[symbolName]; }); }); return newArgumentsMap; }; exports.mergeTypeParamsMap = mergeTypeParamsMap; //# sourceMappingURL=marge-params-map.js.map