function replaceGenerics()

in typescript-generator/src/index.ts [340:359]


function replaceGenerics (value: M.ValueOf, map: Map<M.TypeName, M.ValueOf>): M.ValueOf {
  if (value.kind !== 'instance_of') {
    return value
  }

  if (value.generics == null || value.generics.length === 0) {
    for (const entry of map) {
      if (entry[0].namespace === value.type.namespace && entry[0].name === value.type.name) {
        return entry[1]
      }
    }
    return value
  }

  return {
    kind: 'instance_of',
    type: value.type,
    generics: value.generics.map(x => replaceGenerics(x, map))
  }
}