options.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. class Option {
  4. constructor(opt, description, type, defaultValue) {
  5. this.opt = opt;
  6. this.description = description;
  7. this.type = type;
  8. if (defaultValue != null) {
  9. this.defaultValue = defaultValue;
  10. }
  11. }
  12. getValue_() {
  13. if (typeof this.value !== 'undefined') {
  14. return this.value;
  15. }
  16. else {
  17. return this.defaultValue;
  18. }
  19. }
  20. getNumber() {
  21. let value = this.getValue_();
  22. if (value != null && (typeof value === 'number' || typeof value === 'string')) {
  23. return +value;
  24. }
  25. else {
  26. return null;
  27. }
  28. }
  29. getString() {
  30. let value = this.getValue_();
  31. if (value != null) {
  32. return '' + this.getValue_();
  33. }
  34. else {
  35. return '';
  36. }
  37. }
  38. getBoolean() {
  39. let value = this.getValue_();
  40. if (value != null) {
  41. if (typeof value === 'string') {
  42. return !(value === '0' || value === 'false');
  43. }
  44. else if (typeof value === 'number') {
  45. return value !== 0;
  46. }
  47. else {
  48. return value;
  49. }
  50. }
  51. return false;
  52. }
  53. }
  54. exports.Option = Option;
  55. function unparseOptions(options) {
  56. var args = [];
  57. for (let name in options) {
  58. let value = options[name].getValue_();
  59. if (value !== options[name].defaultValue) {
  60. args.push('--' + name, '' + value);
  61. }
  62. }
  63. return args;
  64. }
  65. exports.unparseOptions = unparseOptions;
  66. ;
  67. //# sourceMappingURL=options.js.map