UNPKG

couchbase-index-manager

Version:
50 lines (49 loc) 1.72 kB
export declare enum PartitionStrategy { Hash = "HASH" } export declare enum ConfigurationType { Index = "index", Override = "override", NodeMap = "nodeMap" } export interface Lifecycle { drop?: boolean; } export interface Partition { exprs: string[]; strategy?: PartitionStrategy; num_partition?: number; } export type PostProcessHandler = (this: IndexConfigurationBase, require: NodeRequire, process: NodeJS.Process) => void; export interface IndexConfigurationBase { name?: string; scope?: string; collection?: string; is_primary?: boolean; index_key?: string | string[]; condition?: string | null; partition?: Partition | null; manual_replica?: boolean; num_replica?: number; nodes?: string[]; retain_deleted_xattr?: boolean; lifecycle?: Lifecycle; post_process?: string | PostProcessHandler; } export interface IndexConfiguration extends Omit<IndexConfigurationBase, "post_process"> { type?: ConfigurationType.Index; } export interface OverrideConfiguration extends IndexConfigurationBase { type: ConfigurationType.Override; } export interface NodeMapConfiguration { type: ConfigurationType.NodeMap; map: { [key: string]: string; }; } export type ConfigurationItem = IndexConfiguration | OverrideConfiguration | NodeMapConfiguration; export declare function isIndex(item: ConfigurationItem): item is IndexConfiguration; export declare function isOverride(item: ConfigurationItem): item is OverrideConfiguration; export declare function isNodeMap(item: ConfigurationItem): item is NodeMapConfiguration; export declare function isSameIndex(a: IndexConfigurationBase, b: IndexConfigurationBase): boolean;