diff --git a/src/constants.ts b/src/constants.ts index 1e945f5..a1c546a 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,4 +1,4 @@ -import { validateSplits } from './utils'; +import { validateFeatureFlags } from './utils'; // The string below is a marker and will be replaced by the real version number. DO NOT CHANGE export const VERSION: string = 'react-' + 'REACT_SDK_VERSION_NUMBER'; @@ -17,7 +17,7 @@ export const CONTROL_WITH_CONFIG: SplitIO.TreatmentWithConfig = { export const getControlTreatmentsWithConfig = (splitNames: unknown): SplitIO.TreatmentsWithConfig => { // validate split Names - const validatedSplitNames = validateSplits(splitNames); + const validatedSplitNames = validateFeatureFlags(splitNames); // return empty object if the returned value is false if (!validatedSplitNames) return {}; diff --git a/src/utils.ts b/src/utils.ts index 33072cb..5aa4bf5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -103,13 +103,13 @@ export function checkHooks(message: string): boolean { // Input validation utils that will be replaced eventually -export function validateSplits(maybeSplits: unknown, listName = 'split names'): false | string[] { - if (Array.isArray(maybeSplits) && maybeSplits.length > 0) { +export function validateFeatureFlags(maybeFeatureFlags: unknown, listName = 'split names'): false | string[] { + if (Array.isArray(maybeFeatureFlags) && maybeFeatureFlags.length > 0) { const validatedArray: string[] = []; // Remove invalid values - maybeSplits.forEach((maybeSplit) => { - const splitName = validateSplit(maybeSplit); - if (splitName) validatedArray.push(splitName); + maybeFeatureFlags.forEach((maybeFeatureFlag) => { + const featureFlagName = validateFeatureFlag(maybeFeatureFlag); + if (featureFlagName) validatedArray.push(featureFlagName); }); // Strip off duplicated values if we have valid split names then return @@ -129,19 +129,19 @@ export function initAttributes(client: SplitIO.IBrowserClient, attributes?: Spli const TRIMMABLE_SPACES_REGEX = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/; -function validateSplit(maybeSplit: unknown, item = 'split name'): false | string { - if (maybeSplit == undefined) { +function validateFeatureFlag(maybeFeatureFlag: unknown, item = 'split name'): false | string { + if (maybeFeatureFlag == undefined) { console.log(`[ERROR] you passed a null or undefined ${item}, ${item} must be a non-empty string.`); - } else if (!isString(maybeSplit)) { + } else if (!isString(maybeFeatureFlag)) { console.log(`[ERROR] you passed an invalid ${item}, ${item} must be a non-empty string.`); } else { - if (TRIMMABLE_SPACES_REGEX.test(maybeSplit)) { - console.log(`[WARN] ${item} "${maybeSplit}" has extra whitespace, trimming.`); - maybeSplit = maybeSplit.trim(); + if (TRIMMABLE_SPACES_REGEX.test(maybeFeatureFlag)) { + console.log(`[WARN] ${item} "${maybeFeatureFlag}" has extra whitespace, trimming.`); + maybeFeatureFlag = maybeFeatureFlag.trim(); } - if ((maybeSplit as string).length > 0) { - return maybeSplit as string; + if ((maybeFeatureFlag as string).length > 0) { + return maybeFeatureFlag as string; } else { console.log(`[ERROR] you passed an empty ${item}, ${item} must be a non-empty string.`); } diff --git a/types/utils.d.ts b/types/utils.d.ts index a50ddb1..ef1b0a9 100644 --- a/types/utils.d.ts +++ b/types/utils.d.ts @@ -36,7 +36,7 @@ export declare function getStatus(client: SplitIO.IBrowserClient | null): IClien * @returns boolean indicating if React.useContext is available */ export declare function checkHooks(message: string): boolean; -export declare function validateSplits(maybeSplits: unknown, listName?: string): false | string[]; +export declare function validateFeatureFlags(maybeFeatureFlag: unknown, listName?: string): false | string[]; /** * Manage client attributes binding */