@optimizely/optimizely-sdk
Version:
JavaScript SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts
35 lines (34 loc) • 2.45 kB
TypeScript
/****************************************************************************
* Copyright 2018, 2021, Optimizely, Inc. and contributors *
* *
* Licensed under the Apache License, Version 2.0 (the "License"); *
* you may not use this file except in compliance with the License. *
* You may obtain a copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an "AS IS" BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License. *
***************************************************************************/
import { Platform } from '../../platform_support';
export declare const DEFAULT_OPERATOR_TYPES: string[];
export type ConditionTree<Leaf> = Leaf | unknown[];
type LeafEvaluator<Leaf> = (leaf: Leaf) => boolean | null;
/**
* Top level method to evaluate conditions
* @param {ConditionTree<Leaf>} conditions Nested array of and/or conditions, or a single leaf
* condition value of any type
* Example: ['and', '0', ['or', '1', '2']]
* @param {LeafEvaluator<Leaf>} leafEvaluator Function which will be called to evaluate leaf condition
* values
* @return {?boolean} Result of evaluating the conditions using the operator
* rules and the leaf evaluator. A return value of null
* indicates that the conditions are invalid or unable to be
* evaluated.
*/
export declare function evaluate<Leaf>(conditions: ConditionTree<Leaf>, leafEvaluator: LeafEvaluator<Leaf>): boolean | null;
export declare const __platforms: Platform[];
export {};