UNPKG

@webiny/api-headless-cms-ddb-es

Version:

DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.

36 lines (35 loc) 2.07 kB
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 {};