UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

39 lines (38 loc) 2.18 kB
import { IContentHubClient } from "../clients/content-hub-client"; import { ICultureLoader } from "../clients/culture-loader"; import { IExtendedContentHubClient } from "../clients/extended-client"; import { IEntityDefinition } from "../contracts/base"; import { Entity, IEntity } from "../contracts/base/entity"; import { EntityBase } from "../contracts/base/entity-base"; import { ICultureLoadOption } from "../contracts/querying/culture-load-option"; import { TypedEntityCreator, TypedEntityCreatorBase } from "../mappers/typed-entity-creator"; import { IRelationFactory } from "./relation-factory"; /** * Factory to create {@link IEntity} instances. */ export interface IEntityFactory { /** * Create an {@link IEntity} instance for the {@link IEntityDefinition} for which a definition name is specified. * @param definitionName - Name of the definition from which to create an entity * @param cultureLoadOption - Culture load option */ createAsync(definitionName: string, cultureLoadOption?: ICultureLoadOption): Promise<IEntity>; /** * Create an {@link IEntity} instance for the {@link IEntityDefinition} that is specified. * @param definition - The definition from which to create an entity * @param cultureLoadOption - Culture load option */ createAsync(definition: IEntityDefinition, cultureLoadOption?: ICultureLoadOption): Promise<IEntity>; } export declare abstract class EntityFactoryBase<T extends EntityBase> implements IEntityFactory { private readonly _client; private readonly _cultureLoader; private readonly _relationFactory; private readonly _entityCreator; constructor(client: IContentHubClient, relationFactory: IRelationFactory, cultureLoader: ICultureLoader, entityCreator: TypedEntityCreatorBase<T>); createAsync(param: string | IEntityDefinition, cultureLoadOption?: ICultureLoadOption): Promise<IEntity>; private getEntityDefinitionAsync; } export declare class EntityFactory extends EntityFactoryBase<Entity> { constructor(client: IExtendedContentHubClient, relationFactory: IRelationFactory, cultureLoader: ICultureLoader, entityCreator: TypedEntityCreator); }