@webiny/api-headless-cms-ddb-es
Version:
DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.
36 lines (35 loc) • 2.07 kB
TypeScript
import type { CmsEntry, CmsEntryValues, StorageOperationsCmsModel } from "@webiny/api-headless-cms/types/index.js";
import type { CmsIndexEntry } from "../../../types.js";
import type { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
import type { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/features/graphql/index.js";
import { CompressionHandler } from "@webiny/utils/features/compression/abstractions/CompressionHandler.js";
import { CmsEntryOpenSearchFieldIndexRegistry } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
interface BaseTransformerParams<T extends CmsEntryValues = CmsEntryValues> {
model: StorageOperationsCmsModel<T>;
fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;
compressionHandler: Pick<CompressionHandler.Interface, "compress">;
valuesModifiers: CmsEntryOpenSearchValuesModifier.Interface[];
}
interface EntryTransformerParams<T extends CmsEntryValues = CmsEntryValues> extends BaseTransformerParams<T> {
entry: CmsEntry<T>;
storageEntry: CmsEntry<T>;
transformedToIndex?: never;
}
interface TransformedEntryTransformerParams<T extends CmsEntryValues = CmsEntryValues> extends BaseTransformerParams<T> {
entry?: never;
storageEntry?: never;
transformedToIndex: CmsIndexEntry<T>;
}
interface TransformedKeysEntry<T extends CmsEntryValues = CmsEntryValues> {
entry: CmsEntry<T>;
storageEntry: CmsEntry<T>;
}
interface TransformerResult<T extends CmsEntryValues = CmsEntryValues> {
transformEntryKeys: () => TransformedKeysEntry<T>;
transformToIndex: () => CmsIndexEntry<T>;
getElasticsearchLatestEntryData: () => Promise<Record<string, any>>;
getElasticsearchPublishedEntryData: () => Promise<Record<string, any>>;
}
export declare const createTransformer: <T extends CmsEntryValues = CmsEntryValues>(params: EntryTransformerParams<T> | TransformedEntryTransformerParams<T>) => TransformerResult<T>;
export {};