All files / src/parameter ParameterParser.ts

100% Statements 6/6
100% Branches 0/0
100% Functions 3/3
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18    1x   1x     1x       3x 4x 2x        
import type { IParameterBuilders } from './IParameterBuilders';
import type { ParameterContainer } from './ParameterContainer';
import { mapRecord } from '../utils';
 
export class ParameterParser<Parameters extends Record<string, unknown>> {
 
    public constructor(
        private readonly paramterBuilders: IParameterBuilders<Parameters>
    ) {}
 
    public parse(container: ParameterContainer): Parameters {
        return mapRecord(this.paramterBuilders, (builder, key) => {
            const parameter = container.parameter(key, builder.expectedTypes);
            return builder.build(parameter);
        }) as Parameters;
    }
}