node-runtime.js 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  3. if (k2 === undefined) k2 = k;
  4. var desc = Object.getOwnPropertyDescriptor(m, k);
  5. if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
  6. desc = { enumerable: true, get: function() { return m[k]; } };
  7. }
  8. Object.defineProperty(o, k2, desc);
  9. }) : (function(o, m, k, k2) {
  10. if (k2 === undefined) k2 = k;
  11. o[k2] = m[k];
  12. }));
  13. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  14. Object.defineProperty(o, "default", { enumerable: true, value: v });
  15. }) : function(o, v) {
  16. o["default"] = v;
  17. });
  18. var __importStar = (this && this.__importStar) || function (mod) {
  19. if (mod && mod.__esModule) return mod;
  20. var result = {};
  21. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  22. __setModuleDefault(result, mod);
  23. return result;
  24. };
  25. var __importDefault = (this && this.__importDefault) || function (mod) {
  26. return (mod && mod.__esModule) ? mod : { "default": mod };
  27. };
  28. Object.defineProperty(exports, "__esModule", { value: true });
  29. exports.getRuntime = void 0;
  30. /**
  31. * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
  32. */
  33. const nf = __importStar(require("node-fetch"));
  34. const fd = __importStar(require("formdata-node"));
  35. const agentkeepalive_1 = __importDefault(require("agentkeepalive"));
  36. const abort_controller_1 = require("abort-controller");
  37. const node_fs_1 = require("node:fs");
  38. const form_data_encoder_1 = require("form-data-encoder");
  39. const node_stream_1 = require("node:stream");
  40. const MultipartBody_1 = require("./MultipartBody.js");
  41. const web_1 = require("node:stream/web");
  42. let fileFromPathWarned = false;
  43. async function fileFromPath(path, ...args) {
  44. // this import fails in environments that don't handle export maps correctly, like old versions of Jest
  45. const { fileFromPath: _fileFromPath } = await Promise.resolve().then(() => __importStar(require('formdata-node/file-from-path')));
  46. if (!fileFromPathWarned) {
  47. console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(path)}) instead`);
  48. fileFromPathWarned = true;
  49. }
  50. // @ts-ignore
  51. return await _fileFromPath(path, ...args);
  52. }
  53. const defaultHttpAgent = new agentkeepalive_1.default({ keepAlive: true, timeout: 5 * 60 * 1000 });
  54. const defaultHttpsAgent = new agentkeepalive_1.default.HttpsAgent({ keepAlive: true, timeout: 5 * 60 * 1000 });
  55. async function getMultipartRequestOptions(form, opts) {
  56. const encoder = new form_data_encoder_1.FormDataEncoder(form);
  57. const readable = node_stream_1.Readable.from(encoder);
  58. const body = new MultipartBody_1.MultipartBody(readable);
  59. const headers = {
  60. ...opts.headers,
  61. ...encoder.headers,
  62. 'Content-Length': encoder.contentLength,
  63. };
  64. return { ...opts, body: body, headers };
  65. }
  66. function getRuntime() {
  67. // Polyfill global object if needed.
  68. if (typeof AbortController === 'undefined') {
  69. // @ts-expect-error (the types are subtly different, but compatible in practice)
  70. globalThis.AbortController = abort_controller_1.AbortController;
  71. }
  72. return {
  73. kind: 'node',
  74. fetch: nf.default,
  75. Request: nf.Request,
  76. Response: nf.Response,
  77. Headers: nf.Headers,
  78. FormData: fd.FormData,
  79. Blob: fd.Blob,
  80. File: fd.File,
  81. ReadableStream: web_1.ReadableStream,
  82. getMultipartRequestOptions,
  83. getDefaultAgent: (url) => (url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent),
  84. fileFromPath,
  85. isFsReadStream: (value) => value instanceof node_fs_1.ReadStream,
  86. };
  87. }
  88. exports.getRuntime = getRuntime;
  89. //# sourceMappingURL=node-runtime.js.map