misc-DOSKtd97.mjs 1.1 KB

1234567891011121314151617181920212223242526272829
  1. //#region src/utils/misc.ts
  2. function arraify(value) {
  3. return Array.isArray(value) ? value : [value];
  4. }
  5. function isPromiseLike(value) {
  6. return value && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
  7. }
  8. function unimplemented(info) {
  9. if (info) throw new Error(`unimplemented: ${info}`);
  10. throw new Error("unimplemented");
  11. }
  12. function unreachable(info) {
  13. if (info) throw new Error(`unreachable: ${info}`);
  14. throw new Error("unreachable");
  15. }
  16. function unsupported(info) {
  17. throw new Error(`UNSUPPORTED: ${info}`);
  18. }
  19. function noop(..._args) {}
  20. const ABSOLUTE_PATH_REGEX = /^(?:\/|(?:[A-Za-z]:)?[/\\|])/;
  21. /**
  22. * Whether `name` is a path fragment — an absolute or relative path. Emitted file
  23. * names, `[name]` substitutions and file-name patterns can be neither.
  24. */
  25. function isPathFragment(name) {
  26. return name[0] === "/" || name[0] === "." && (name[1] === "/" || name[1] === ".") || ABSOLUTE_PATH_REGEX.test(name);
  27. }
  28. //#endregion
  29. export { unimplemented as a, noop as i, isPathFragment as n, unreachable as o, isPromiseLike as r, unsupported as s, arraify as t };