@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
39 lines (38 loc) • 2.18 kB
TypeScript
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);
}