UNPKG

hypertune

Version:

[Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Opt

110 lines 4.47 kB
import { Expression, ObjectValue, Query, Step, Value, UpdateListener, DehydratedState, DeepPartial, ObjectValueWithVariables, FieldQuery, Logs, InitData } from "../shared"; import Context from "./Context"; import Logger from "./Logger"; export type NodeProps = { readonly logger: Logger | null; readonly context: Context | null; readonly parent: Node | null; readonly step: Step | null; readonly initDataHash: string | null; readonly expression: Expression | null; }; export default class Node { props: NodeProps; typeName: string; constructor(props: NodeProps); protected updateIfNeeded(): void; getFieldNode(fieldName: string, { fieldArguments }?: { fieldArguments?: ObjectValue; }): Node; /** * @deprecated This method will be removed in the next major SDK version. */ protected getField(fieldName: string, fieldArguments: ObjectValue): NodeProps; protected getFieldNodeProps(fieldName: string, { fieldArguments }?: { fieldArguments?: ObjectValue; }): NodeProps; private getReducedFieldExpression; getItemNodes({ fallbackLength, }?: { fallbackLength?: number; }): Node[]; /** * @deprecated This method will be removed in the next major SDK version. */ _getItems(fallbackLength: number): NodeProps[]; getItemNodeProps({ fallbackLength, }?: { fallbackLength?: number; }): NodeProps[]; private _getItemExpressions; getFieldValue(fieldName: string, { fallback, query, fieldArguments, }: { fallback: Value; query?: FieldQuery<ObjectValue> | null; fieldArguments?: ObjectValue; }): Value; /** * @deprecated This method will be removed in the next major SDK version. */ protected evaluate(query: FieldQuery<ObjectValue> | null, fallback: Value): Value; getValue({ query, fallback, }: { query?: FieldQuery<ObjectValue> | null; fallback: Value; }): Value; private getNodeOverride; protected getValueAndLogsWithCache(query: FieldQuery<ObjectValue> | null): { value: Value | null; logs: Logs; path: string; args: { [path: string]: ObjectValue; }; shouldLogEvaluation: boolean; }; private getValueAndLogs; private createProps; private createPropsArray; _logUnexpectedTypeError(): void; protected logUnexpectedValueError(value: Value): void; private log; private logReductionLogs; getStateHash(): string | null; getInitResponse(): InitData | null; getHashResponse(): string | null; addUpdateListener(listener: UpdateListener): void; removeUpdateListener(listener: UpdateListener): void; /** * Initialize from the init data provider if needed */ initIfNeeded(traceId?: string, retries?: number): Promise<void>; /** * Returns the timestamp of the last time the SDK was initialized from * the init data provider */ getLastInitDataRefreshTime(): number | null; /** * @returns @deprecated use `getLastInitDataRefreshTime` instead */ getLastDataProviderInitTime(): number | null; /** * Indicates whether the SDK is ready to evaluate flags and log events. */ isReady(): boolean; flushLogs(traceId?: string): Promise<void>; setOverride<T extends ObjectValue>(override: DeepPartial<T> | null, traceId?: string): void; dehydrate<TOverride extends ObjectValue, TVariableValues extends ObjectValue>(query?: Query<ObjectValueWithVariables>, variableValues?: TVariableValues): DehydratedState<TOverride, TVariableValues> | null; hydrate<TOverride extends ObjectValue, TVariableValues extends ObjectValue>(dehydratedState: DehydratedState<TOverride, TVariableValues>, traceId?: string): void; /** * Close flushes any remaining logs and stops all background processes * ensuring clean shutdown. */ close(traceId?: string): Promise<void>; getFlagValues<FlagValues extends ObjectValue, FlagPath extends keyof FlagValues & string>({ flagFallbacks, flagPaths, }: { flagFallbacks: FlagValues; flagPaths: FlagPath[]; }): Pick<FlagValues, FlagPath>; private getFlagValue; getEncodedFlagValues<FlagValues extends ObjectValue, Flag extends keyof FlagValues & string>({ flagFallbacks, flagPaths, }: { flagFallbacks: FlagValues; flagPaths: Flag[]; }): string; } //# sourceMappingURL=Node.d.ts.map