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,
),
),
);
}