index.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { glob, globSync } from 'glob';
  2. import { optArg, optArgSync, } from './opt-arg.js';
  3. import pathArg from './path-arg.js';
  4. import { rimrafManual, rimrafManualSync } from './rimraf-manual.js';
  5. import { rimrafMoveRemove, rimrafMoveRemoveSync } from './rimraf-move-remove.js';
  6. import { rimrafNative, rimrafNativeSync } from './rimraf-native.js';
  7. import { rimrafPosix, rimrafPosixSync } from './rimraf-posix.js';
  8. import { rimrafWindows, rimrafWindowsSync } from './rimraf-windows.js';
  9. import { useNative, useNativeSync } from './use-native.js';
  10. export { assertRimrafOptions, isRimrafOptions, } from './opt-arg.js';
  11. const wrap = (fn) => async (path, opt) => {
  12. const options = optArg(opt);
  13. if (options.glob) {
  14. path = await glob(path, options.glob);
  15. }
  16. if (Array.isArray(path)) {
  17. return !!(await Promise.all(path.map(p => fn(pathArg(p, options), options)))).reduce((a, b) => a && b, true);
  18. }
  19. else {
  20. return !!(await fn(pathArg(path, options), options));
  21. }
  22. };
  23. const wrapSync = (fn) => (path, opt) => {
  24. const options = optArgSync(opt);
  25. if (options.glob) {
  26. path = globSync(path, options.glob);
  27. }
  28. if (Array.isArray(path)) {
  29. return !!path
  30. .map(p => fn(pathArg(p, options), options))
  31. .reduce((a, b) => a && b, true);
  32. }
  33. else {
  34. return !!fn(pathArg(path, options), options);
  35. }
  36. };
  37. export const nativeSync = wrapSync(rimrafNativeSync);
  38. export const native = Object.assign(wrap(rimrafNative), { sync: nativeSync });
  39. export const manualSync = wrapSync(rimrafManualSync);
  40. export const manual = Object.assign(wrap(rimrafManual), { sync: manualSync });
  41. export const windowsSync = wrapSync(rimrafWindowsSync);
  42. export const windows = Object.assign(wrap(rimrafWindows), { sync: windowsSync });
  43. export const posixSync = wrapSync(rimrafPosixSync);
  44. export const posix = Object.assign(wrap(rimrafPosix), { sync: posixSync });
  45. export const moveRemoveSync = wrapSync(rimrafMoveRemoveSync);
  46. export const moveRemove = Object.assign(wrap(rimrafMoveRemove), {
  47. sync: moveRemoveSync,
  48. });
  49. export const rimrafSync = wrapSync((path, opt) => useNativeSync(opt) ?
  50. rimrafNativeSync(path, opt)
  51. : rimrafManualSync(path, opt));
  52. export const sync = rimrafSync;
  53. const rimraf_ = wrap((path, opt) => useNative(opt) ? rimrafNative(path, opt) : rimrafManual(path, opt));
  54. export const rimraf = Object.assign(rimraf_, {
  55. rimraf: rimraf_,
  56. sync: rimrafSync,
  57. rimrafSync: rimrafSync,
  58. manual,
  59. manualSync,
  60. native,
  61. nativeSync,
  62. posix,
  63. posixSync,
  64. windows,
  65. windowsSync,
  66. moveRemove,
  67. moveRemoveSync,
  68. });
  69. rimraf.rimraf = rimraf;
  70. //# sourceMappingURL=index.js.map