mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	fix: do not split non string values (#4346)
This commit is contained in:
		
							parent
							
								
									9f35c2187f
								
							
						
					
					
						commit
						7095e87061
					
				@ -5,15 +5,16 @@ test('should generate all combinations correctly', () => {
 | 
			
		||||
        sessionId: '1,2',
 | 
			
		||||
        appName: 'a,b,c',
 | 
			
		||||
        channels: 'internet',
 | 
			
		||||
        nonString: 1,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const expectedCombinations = [
 | 
			
		||||
        { sessionId: '1', appName: 'a', channels: 'internet' },
 | 
			
		||||
        { sessionId: '1', appName: 'b', channels: 'internet' },
 | 
			
		||||
        { sessionId: '1', appName: 'c', channels: 'internet' },
 | 
			
		||||
        { sessionId: '2', appName: 'a', channels: 'internet' },
 | 
			
		||||
        { sessionId: '2', appName: 'b', channels: 'internet' },
 | 
			
		||||
        { sessionId: '2', appName: 'c', channels: 'internet' },
 | 
			
		||||
        { sessionId: '1', appName: 'a', channels: 'internet', nonString: 1 },
 | 
			
		||||
        { sessionId: '1', appName: 'b', channels: 'internet', nonString: 1 },
 | 
			
		||||
        { sessionId: '1', appName: 'c', channels: 'internet', nonString: 1 },
 | 
			
		||||
        { sessionId: '2', appName: 'a', channels: 'internet', nonString: 1 },
 | 
			
		||||
        { sessionId: '2', appName: 'b', channels: 'internet', nonString: 1 },
 | 
			
		||||
        { sessionId: '2', appName: 'c', channels: 'internet', nonString: 1 },
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    const actualCombinations = generateObjectCombinations(obj);
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,16 @@
 | 
			
		||||
type Dict<T> = { [K in keyof T]: string[] };
 | 
			
		||||
 | 
			
		||||
export const splitByComma = <T extends Record<string, string>>(
 | 
			
		||||
export const splitByComma = <T extends Record<string, unknown>>(
 | 
			
		||||
    obj: T,
 | 
			
		||||
): Dict<T> =>
 | 
			
		||||
    Object.fromEntries(
 | 
			
		||||
        Object.entries(obj).map(([key, value]) => [key, value.split(',')]),
 | 
			
		||||
        Object.entries(obj).map(([key, value]) => [
 | 
			
		||||
            key,
 | 
			
		||||
            typeof value === 'string' ? value.split(',') : [value],
 | 
			
		||||
        ]),
 | 
			
		||||
    ) as Dict<T>;
 | 
			
		||||
 | 
			
		||||
export const generateCombinations = <T extends Record<string, any>>(
 | 
			
		||||
export const generateCombinations = <T extends Record<string, unknown>>(
 | 
			
		||||
    obj: Dict<T>,
 | 
			
		||||
): T[] => {
 | 
			
		||||
    const keys = Object.keys(obj) as (keyof T)[];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user