2
0

generate-cypress-spec-arg.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* eslint-disable no-console */
  2. /*
  3. * USAGE:
  4. * node generate-cypress-spec-arg --prefix=${prefix} --suffix=${suffix} ${value}
  5. *
  6. * OPTIONS:
  7. * --prefix : prefix string for each items
  8. * --suffix : suffix string for each items
  9. *
  10. * EXAMPLE:
  11. * node generate-cypress-spec-arg --prefix=${prefix}"A" --suffix="Z" "1,3,5"
  12. * => A1Z,A3Z,A5Z
  13. */
  14. const yargs = require('yargs/yargs');
  15. const { hideBin } = require('yargs/helpers');
  16. const argv = yargs(hideBin(process.argv)).argv;
  17. const printExample = () => {
  18. console.group('** Usage **');
  19. // eslint-disable-next-line no-template-curly-in-string
  20. console.log('$ node generate-cypress-spec-arg --prefix=${prefix}"A" --suffix="Z" "1,3,5"');
  21. console.log(' ==> A1Z,A3Z,A5Z');
  22. console.groupEnd();
  23. console.log('\n');
  24. };
  25. const { prefix, suffix, _: value } = argv;
  26. if (prefix == null) {
  27. printExample();
  28. throw new Error('The option "prefix" must be specified');
  29. }
  30. if (suffix == null) {
  31. printExample();
  32. throw new Error('The option "suffix" must be specified');
  33. }
  34. if (value.length === 0) {
  35. printExample();
  36. throw new Error('A value string must be specified');
  37. }
  38. const result = value[0]
  39. .toString().split(',')
  40. .map(v => v.trim())
  41. .map(v => `${prefix}${v}${suffix}`)
  42. .join(',');
  43. console.log(result);