@dolittle/sdk.projections
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
38 lines • 1.84 kB
TypeScript
import { Guid, IEquatable } from '@dolittle/rudiments';
import { Constructor } from '@dolittle/types';
import { IClientBuildResults, IModelBuilder } from '@dolittle/sdk.common';
import { IEventTypes, ScopeId } from '@dolittle/sdk.events';
import { IProjection } from '../IProjection';
import { ProjectionId } from '../ProjectionId';
import { IProjectionBuilder } from './IProjectionBuilder';
import { IProjectionBuilderForReadModel } from './IProjectionBuilderForReadModel';
/**
* Represents an implementation of {@link IProjectionBuilder}.
*/
export declare class ProjectionBuilder extends IProjectionBuilder implements IEquatable {
private readonly _projectionId;
private readonly _modelBuilder;
private _scopeId;
private _readModelTypeOrInstance?;
private _builder?;
/**
* Initializes a new instance of {@link ProjectionBuilder}.
* @param {ProjectionId} _projectionId - The unique identifier of the projection to build for.
* @param {IModelBuilder} _modelBuilder - For binding this projection builder and read model to its identifier.
*/
constructor(_projectionId: ProjectionId, _modelBuilder: IModelBuilder);
/** @inheritdoc */
inScope(scopeId: string | ScopeId | Guid): IProjectionBuilder;
/** @inheritdoc */
forReadModel<T>(typeOrInstance: T | Constructor<T>): IProjectionBuilderForReadModel<T>;
/** @inheritdoc */
equals(other: any): boolean;
/**
* Builds the projection.
* @param {IEventTypes} eventTypes - For event types resolution.
* @param {IClientBuildResults} results - For keeping track of build results.
* @returns {IProjection | undefined} The built projection if successful.
*/
build(eventTypes: IEventTypes, results: IClientBuildResults): IProjection<any> | undefined;
}
//# sourceMappingURL=ProjectionBuilder.d.ts.map