StringArrayEncodingSanitizer.ts 926 B

1234567891011121314151617181920212223242526
  1. import { TCLISanitizer } from '../../types/cli/TCLISanitizer';
  2. import { TStringArrayEncoding } from '../../types/options/TStringArrayEncoding';
  3. import { StringArrayEncoding } from '../../enums/StringArrayEncoding';
  4. import { ArraySanitizer } from './ArraySanitizer';
  5. /**
  6. * @param {string} value
  7. * @returns {TStringArrayEncoding[]}
  8. */
  9. export const StringArrayEncodingSanitizer: TCLISanitizer <TStringArrayEncoding[]> = (value: string): TStringArrayEncoding[] => {
  10. const valuesAsArray: TStringArrayEncoding[] = <TStringArrayEncoding[]>ArraySanitizer(value);
  11. const isCorrectStringArrayEncodings: boolean = valuesAsArray.every((item: TStringArrayEncoding) =>
  12. Object
  13. .values(StringArrayEncoding)
  14. .includes(item)
  15. );
  16. if (!isCorrectStringArrayEncodings) {
  17. throw new ReferenceError('Invalid value of `--string-array-encoding` option');
  18. }
  19. return valuesAsArray;
  20. };