UNPKG

@webiny/api-form-builder-so-ddb-es

Version:

[![](https://img.shields.io/npm/dw/@webiny/api-form-builder-so-ddb-es.svg)](https://www.npmjs.com/package/@webiny/api-form-builder-so-ddb-es) [![](https://img.shields.io/npm/v/@webiny/api-form-builder-so-ddb-es.svg)](https://www.npmjs.com/package/@webiny

69 lines (68 loc) 3.51 kB
import { FormBuilder, FormBuilderContext as BaseFormBuilderContext, FormBuilderFormStorageOperations as BaseFormBuilderFormStorageOperations, FormBuilderSettingsStorageOperations as BaseFormBuilderSettingsStorageOperations, FormBuilderStorageOperations as BaseFormBuilderStorageOperations, FormBuilderSubmissionStorageOperations as BaseFormBuilderSubmissionStorageOperations, FormBuilderSystemStorageOperations as BaseFormBuilderSystemStorageOperations } from "@webiny/api-form-builder/types"; import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb"; import { AttributeDefinition, Entity, Table } from "@webiny/db-dynamodb/toolbox"; import { Client } from "@elastic/elasticsearch"; import { PluginCollection } from "@webiny/plugins/types"; export type Attributes = Record<string, AttributeDefinition>; export declare enum ENTITIES { FORM = "FormBuilderForm", ES_SUBMISSION = "FormBuilderSubmissionEs", ES_FORM = "FormBuilderFormEs", SUBMISSION = "FormBuilderSubmission", SYSTEM = "FormBuilderSystem", SETTINGS = "FormBuilderSettings" } export interface FormBuilderStorageOperationsFactoryParams { documentClient: DynamoDBDocument; elasticsearch: Client; table?: string; esTable?: string; attributes?: Record<ENTITIES, Attributes>; plugins?: PluginCollection; } export interface FormBuilderSystemCreateKeysParams { tenant: string; } export interface FormBuilderSystemStorageOperations extends BaseFormBuilderSystemStorageOperations { createSystemPartitionKey: (params: FormBuilderSystemCreateKeysParams) => string; createSystemSortKey: () => string; } export interface FormBuilderFormCreateKeyParams { id: string; tenant: string; locale: string; } export interface FormBuilderFormStorageOperations extends BaseFormBuilderFormStorageOperations { createFormPartitionKey: (params: FormBuilderFormCreateKeyParams) => string; } export interface FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams { tenant: string; locale: string; formId: string; } export interface FormBuilderSubmissionStorageOperations extends BaseFormBuilderSubmissionStorageOperations { createSubmissionPartitionKey: (params: FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams) => string; createSubmissionSortKey: (id: string) => string; } export interface FormBuilderSettingsStorageOperationsCreatePartitionKeyParams { tenant: string; locale: string; } export interface FormBuilderSettingsStorageOperations extends BaseFormBuilderSettingsStorageOperations { createSettingsPartitionKey: (params: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams) => string; createSettingsSortKey: () => string; } export type Entities = "form" | "esForm" | "submission" | "esSubmission" | "system" | "settings"; export interface FormBuilderStorageOperations extends BaseFormBuilderStorageOperations, FormBuilderSettingsStorageOperations, FormBuilderSubmissionStorageOperations, FormBuilderFormStorageOperations, FormBuilderSystemStorageOperations { getTable(): Table<string, string, string>; getEsTable(): Table<string, string, string>; getEntities(): Record<Entities, Entity<any>>; } export interface FormBuilderStorageOperationsFactory { (params: FormBuilderStorageOperationsFactoryParams): FormBuilderStorageOperations; } export interface FormBuilderContext extends BaseFormBuilderContext { formBuilder: FormBuilder & { storageOperations: FormBuilderStorageOperations; }; }