message: Prevent duplicated imported type from the same external import
diff: @@ -9,6 +9,17 @@ import Path from "path";
  export function parseExternalImports(imports: RegExpMatchArray[], mutation: boolean): ExternalImport[] {
  const externalImports: ExternalImport[] = [];
  + const importedTypeCount = (importedTypes: string[]) =>
  + importedTypes.reduce((a: any, b: string) => ({ ...a,
  + [b]: (a[b] || 0) + 1
  + }), {});
  +
  + const importedTypeDuplicates = (importedTypes: string[]) => {
  + const counts = importedTypeCount(importedTypes);
  + return Object.keys(counts)
  + .filter((a) => counts[a] > 1);
  + }
  +
  for (const importStatement of imports) {
  if (importStatement.length !== 4) {
  @@ -22,6 +33,14 @@ export function parseExternalImports(imports: RegExpMatchArray[], mutation: bool
  .map((str) => str.replace(/\s+/g, "")) // Trim all whitespace
  .filter(Boolean); // Remove empty strings
  + const importFromName = importStatement[3]
  +
  + // Make sure the developer does not import the same dependency more than once
  + const duplicateimportedTypes = importedTypeDuplicates(importedTypes);
  + if (duplicateimportedTypes.length > 0) {
  + throw Error(`Duplicate type found: ${duplicateimportedTypes} \nIn import: ${importFromName}`);
  + }
  +
  // Make sure the developer does not try to import a dependencies dependency
  const index = importedTypes.findIndex((str) => str.indexOf('_') > -1);
  if (index > -1) {
  