export function importsForObjectType()

in src/immutable-import-utils.ts [38:79]


export function importsForObjectType(
  objectType: ObjectSpec.Type,
): ObjC.Import[] {
  const makePublicImports =
    objectType.includes.indexOf('UseForwardDeclarations') === -1;
  const skipAttributeImports =
    !makePublicImports &&
    objectType.includes.indexOf('SkipImportsInImplementation') !== -1;

  return [
    {
      file: 'Foundation.h',
      isPublic: true,
      requiresCPlusPlus: false,
      library: 'Foundation',
    },
    {
      file: objectType.typeName + '.h',
      isPublic: false,
      requiresCPlusPlus: false,
      library: null,
    },
  ].concat(
    ...objectType.attributes.map((a) =>
      ObjCImportUtils.importsForAttributeType(
        a.type.name,
        a.type.underlyingType,
        a.type.conformingProtocol,
        a.type.referencedGenericTypes,
        a.type.libraryTypeIsDefinedIn,
        a.type.fileTypeIsDefinedIn,
        objectType.libraryName,
        makePublicImports
          ? ObjCImportUtils.ObjectImportMode.public
          : skipAttributeImports
          ? ObjCImportUtils.ObjectImportMode.none
          : ObjCImportUtils.ObjectImportMode.private,
        objectType.typeLookups,
      ),
    ),
  );
}