utils.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __export = (target, all) => {
  7. for (var name in all)
  8. __defProp(target, name, { get: all[name], enumerable: true });
  9. };
  10. var __copyProps = (to, from, except, desc) => {
  11. if (from && typeof from === "object" || typeof from === "function") {
  12. for (let key of __getOwnPropNames(from))
  13. if (!__hasOwnProp.call(to, key) && key !== except)
  14. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  15. }
  16. return to;
  17. };
  18. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  19. // src/utils.ts
  20. var utils_exports = {};
  21. __export(utils_exports, {
  22. buildOutgoingHttpHeaders: () => buildOutgoingHttpHeaders,
  23. readWithoutBlocking: () => readWithoutBlocking,
  24. writeFromReadableStream: () => writeFromReadableStream,
  25. writeFromReadableStreamDefaultReader: () => writeFromReadableStreamDefaultReader
  26. });
  27. module.exports = __toCommonJS(utils_exports);
  28. async function readWithoutBlocking(readPromise) {
  29. return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(void 0))]);
  30. }
  31. function writeFromReadableStreamDefaultReader(reader, writable, currentReadPromise) {
  32. const cancel = (error) => {
  33. reader.cancel(error).catch(() => {
  34. });
  35. };
  36. writable.on("close", cancel);
  37. writable.on("error", cancel);
  38. (currentReadPromise ?? reader.read()).then(flow, handleStreamError);
  39. return reader.closed.finally(() => {
  40. writable.off("close", cancel);
  41. writable.off("error", cancel);
  42. });
  43. function handleStreamError(error) {
  44. if (error) {
  45. writable.destroy(error);
  46. }
  47. }
  48. function onDrain() {
  49. reader.read().then(flow, handleStreamError);
  50. }
  51. function flow({ done, value }) {
  52. try {
  53. if (done) {
  54. writable.end();
  55. } else if (!writable.write(value)) {
  56. writable.once("drain", onDrain);
  57. } else {
  58. return reader.read().then(flow, handleStreamError);
  59. }
  60. } catch (e) {
  61. handleStreamError(e);
  62. }
  63. }
  64. }
  65. function writeFromReadableStream(stream, writable) {
  66. if (stream.locked) {
  67. throw new TypeError("ReadableStream is locked.");
  68. } else if (writable.destroyed) {
  69. return;
  70. }
  71. return writeFromReadableStreamDefaultReader(stream.getReader(), writable);
  72. }
  73. var buildOutgoingHttpHeaders = (headers) => {
  74. const res = {};
  75. if (!(headers instanceof Headers)) {
  76. headers = new Headers(headers ?? void 0);
  77. }
  78. const cookies = [];
  79. for (const [k, v] of headers) {
  80. if (k === "set-cookie") {
  81. cookies.push(v);
  82. } else {
  83. res[k] = v;
  84. }
  85. }
  86. if (cookies.length > 0) {
  87. res["set-cookie"] = cookies;
  88. }
  89. res["content-type"] ??= "text/plain; charset=UTF-8";
  90. return res;
  91. };
  92. // Annotate the CommonJS export names for ESM import in node:
  93. 0 && (module.exports = {
  94. buildOutgoingHttpHeaders,
  95. readWithoutBlocking,
  96. writeFromReadableStream,
  97. writeFromReadableStreamDefaultReader
  98. });