@dolittle/sdk.projections
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
39 lines • 1.96 kB
TypeScript
import { IClientBuildResults } from '@dolittle/sdk.common';
import { Constructor } from '@dolittle/types';
import { CollectionNameLike } from '../../Copies/MongoDB/CollectionName';
import { Conversion } from '../../Copies/MongoDB/Conversion';
import { MongoDBCopies } from '../../Copies/MongoDB/MongoDBCopies';
import { ProjectionId } from '../../ProjectionId';
import { ReadModelField } from './../ReadModelField';
import { ICopyToMongoDBBuilder } from './ICopyToMongoDBBuilder';
/**
* Represents an implementation of {@link ICopyToMongoDBBuilder}.
* @template T The type of the projection read model.
*/
export declare class CopyToMongoDBBuilder<T> extends ICopyToMongoDBBuilder<T> {
private readonly _projectionId;
private readonly _readModelTypeOrInstance;
private _collectionName?;
private readonly _conversions;
/**
* Initialises a new instance of the {@link CopyToMongoDBBuilder} class.
* @param {ProjectionId} _projectionId - The unique identifier of the projection to build for.
* @param {Constructor<T> | T} _readModelTypeOrInstance - The read model type.
*/
constructor(_projectionId: ProjectionId, _readModelTypeOrInstance: Constructor<T> | T);
/** @inheritdoc */
toCollection(collectionName: CollectionNameLike): ICopyToMongoDBBuilder<T>;
/** @inheritdoc */
withConversion(field: ReadModelField<T>, to: Conversion): ICopyToMongoDBBuilder<T>;
/**
* Builds the {@link MongoDBCopies} specification configured by this builder.
* @param {IClientBuildResults} results - For keeping track of build results.
* @returns {MongoDBCopies} The built {@link MongoDBCopies} specification.
*/
build(results: IClientBuildResults): MongoDBCopies | undefined;
private inferCollectionNameFromType;
private buildPropertyConversions;
private makeConversionWithParents;
private convertPropertyConversions;
}
//# sourceMappingURL=CopyToMongoDBBuilder.d.ts.map