opt-arg.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.optArgSync = exports.optArg = exports.assertRimrafOptions = exports.isRimrafOptions = void 0;
  4. const typeOrUndef = (val, t) => typeof val === 'undefined' || typeof val === t;
  5. const isRimrafOptions = (o) => !!o &&
  6. typeof o === 'object' &&
  7. typeOrUndef(o.preserveRoot, 'boolean') &&
  8. typeOrUndef(o.tmp, 'string') &&
  9. typeOrUndef(o.maxRetries, 'number') &&
  10. typeOrUndef(o.retryDelay, 'number') &&
  11. typeOrUndef(o.backoff, 'number') &&
  12. typeOrUndef(o.maxBackoff, 'number') &&
  13. (typeOrUndef(o.glob, 'boolean') || (o.glob && typeof o.glob === 'object')) &&
  14. typeOrUndef(o.filter, 'function');
  15. exports.isRimrafOptions = isRimrafOptions;
  16. const assertRimrafOptions = (o) => {
  17. if (!(0, exports.isRimrafOptions)(o)) {
  18. throw new Error('invalid rimraf options');
  19. }
  20. };
  21. exports.assertRimrafOptions = assertRimrafOptions;
  22. const optArgT = (opt) => {
  23. (0, exports.assertRimrafOptions)(opt);
  24. const { glob, ...options } = opt;
  25. if (!glob) {
  26. return options;
  27. }
  28. const globOpt = glob === true ?
  29. opt.signal ?
  30. { signal: opt.signal }
  31. : {}
  32. : opt.signal ?
  33. {
  34. signal: opt.signal,
  35. ...glob,
  36. }
  37. : glob;
  38. return {
  39. ...options,
  40. glob: {
  41. ...globOpt,
  42. // always get absolute paths from glob, to ensure
  43. // that we are referencing the correct thing.
  44. absolute: true,
  45. withFileTypes: false,
  46. },
  47. };
  48. };
  49. const optArg = (opt = {}) => optArgT(opt);
  50. exports.optArg = optArg;
  51. const optArgSync = (opt = {}) => optArgT(opt);
  52. exports.optArgSync = optArgSync;
  53. //# sourceMappingURL=opt-arg.js.map