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
TypeScript
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