Skip to content

Commit f6fa56e

Browse files
Merge pull request #346 from splitio/SDKS-8407_polishing
Large segment refactors
2 parents 6797cfb + 2ce5a64 commit f6fa56e

File tree

5 files changed

+45
-36
lines changed

5 files changed

+45
-36
lines changed

package-lock.json

Lines changed: 28 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@splitsoftware/splitio-commons",
3-
"version": "1.16.1-rc.12",
3+
"version": "1.17.1-rc.0",
44
"description": "Split JavaScript SDK common components",
55
"main": "cjs/index.js",
66
"module": "esm/index.js",

src/dtos/types.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export interface IInSegmentMatcherData {
3030
segmentName: string
3131
}
3232

33+
export interface IInLargeSegmentMatcherData {
34+
largeSegmentName: string
35+
}
36+
3337
export interface IDependencyMatcherData {
3438
split: string,
3539
treatments: string[]
@@ -43,6 +47,7 @@ interface ISplitMatcherBase {
4347
attribute: string | null
4448
}
4549
userDefinedSegmentMatcherData?: null | IInSegmentMatcherData
50+
userDefinedLargeSegmentMatcherData?: null | IInLargeSegmentMatcherData
4651
whitelistMatcherData?: null | IWhitelistMatcherData
4752
unaryNumericMatcherData?: null | IUnaryNumericMatcherData
4853
betweenMatcherData?: null | IBetweenMatcherData
@@ -63,7 +68,7 @@ interface IInSegmentMatcher extends ISplitMatcherBase {
6368

6469
interface IInLargeSegmentMatcher extends ISplitMatcherBase {
6570
matcherType: 'IN_LARGE_SEGMENT',
66-
userDefinedSegmentMatcherData: IInSegmentMatcherData
71+
userDefinedLargeSegmentMatcherData: IInLargeSegmentMatcherData
6772
}
6873

6974
interface IWhitelistMatcher extends ISplitMatcherBase {

src/evaluator/matchersTransform/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { segmentTransform } from './segment';
44
import { whitelistTransform } from './whitelist';
55
import { numericTransform } from './unaryNumeric';
66
import { zeroSinceHH, zeroSinceSS } from '../convertions';
7-
import { IBetweenMatcherData, IInSegmentMatcherData, ISplitMatcher, IUnaryNumericMatcherData } from '../../dtos/types';
7+
import { IBetweenMatcherData, IInLargeSegmentMatcherData, IInSegmentMatcherData, ISplitMatcher, IUnaryNumericMatcherData } from '../../dtos/types';
88
import { IMatcherDto } from '../types';
99

1010
/**
@@ -18,6 +18,7 @@ export function matchersTransform(matchers: ISplitMatcher[]): IMatcherDto[] {
1818
negate,
1919
keySelector,
2020
userDefinedSegmentMatcherData,
21+
userDefinedLargeSegmentMatcherData,
2122
whitelistMatcherData, /* whitelistObject, provided by 'WHITELIST', 'IN_LIST_SEMVER', set and string matchers */
2223
unaryNumericMatcherData,
2324
betweenMatcherData,
@@ -33,8 +34,10 @@ export function matchersTransform(matchers: ISplitMatcher[]): IMatcherDto[] {
3334
let dataType = matcherDataTypes.STRING;
3435
let value = undefined;
3536

36-
if (type === matcherTypes.IN_SEGMENT || type === matcherTypes.IN_LARGE_SEGMENT) {
37+
if (type === matcherTypes.IN_SEGMENT) {
3738
value = segmentTransform(userDefinedSegmentMatcherData as IInSegmentMatcherData);
39+
} else if (type === matcherTypes.IN_LARGE_SEGMENT) {
40+
value = segmentTransform(userDefinedLargeSegmentMatcherData as IInLargeSegmentMatcherData);
3841
} else if (type === matcherTypes.EQUAL_TO) {
3942
value = numericTransform(unaryNumericMatcherData as IUnaryNumericMatcherData);
4043
dataType = matcherDataTypes.NUMBER;
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
import { IInSegmentMatcherData } from '../../dtos/types';
1+
import { IInSegmentMatcherData, IInLargeSegmentMatcherData } from '../../dtos/types';
22

33
/**
44
* Extract segment name as a plain string.
55
*/
6-
export function segmentTransform(segment?: IInSegmentMatcherData) {
7-
return segment ? segment.segmentName : undefined;
6+
export function segmentTransform(segment?: IInSegmentMatcherData | IInLargeSegmentMatcherData) {
7+
return segment ?
8+
(segment as IInSegmentMatcherData).segmentName || (segment as IInLargeSegmentMatcherData).largeSegmentName :
9+
undefined;
810
}

0 commit comments

Comments
 (0)