env.cjs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getEnvironmentVariable = exports.getRuntimeEnvironment = exports.getEnv = exports.isNode = exports.isDeno = exports.isJsDom = exports.isWebWorker = exports.isBrowser = void 0;
  4. const isBrowser = () => typeof window !== "undefined" && typeof window.document !== "undefined";
  5. exports.isBrowser = isBrowser;
  6. const isWebWorker = () => typeof globalThis === "object" &&
  7. globalThis.constructor &&
  8. globalThis.constructor.name === "DedicatedWorkerGlobalScope";
  9. exports.isWebWorker = isWebWorker;
  10. const isJsDom = () => (typeof window !== "undefined" && window.name === "nodejs") ||
  11. (typeof navigator !== "undefined" &&
  12. (navigator.userAgent.includes("Node.js") ||
  13. navigator.userAgent.includes("jsdom")));
  14. exports.isJsDom = isJsDom;
  15. // Supabase Edge Function provides a `Deno` global object
  16. // without `version` property
  17. const isDeno = () => typeof Deno !== "undefined";
  18. exports.isDeno = isDeno;
  19. // Mark not-as-node if in Supabase Edge Function
  20. const isNode = () => typeof process !== "undefined" &&
  21. typeof process.versions !== "undefined" &&
  22. typeof process.versions.node !== "undefined" &&
  23. !(0, exports.isDeno)();
  24. exports.isNode = isNode;
  25. const getEnv = () => {
  26. let env;
  27. if ((0, exports.isBrowser)()) {
  28. env = "browser";
  29. }
  30. else if ((0, exports.isNode)()) {
  31. env = "node";
  32. }
  33. else if ((0, exports.isWebWorker)()) {
  34. env = "webworker";
  35. }
  36. else if ((0, exports.isJsDom)()) {
  37. env = "jsdom";
  38. }
  39. else if ((0, exports.isDeno)()) {
  40. env = "deno";
  41. }
  42. else {
  43. env = "other";
  44. }
  45. return env;
  46. };
  47. exports.getEnv = getEnv;
  48. let runtimeEnvironment;
  49. async function getRuntimeEnvironment() {
  50. if (runtimeEnvironment === undefined) {
  51. const env = (0, exports.getEnv)();
  52. runtimeEnvironment = {
  53. library: "langchain-js",
  54. runtime: env,
  55. };
  56. }
  57. return runtimeEnvironment;
  58. }
  59. exports.getRuntimeEnvironment = getRuntimeEnvironment;
  60. function getEnvironmentVariable(name) {
  61. // Certain Deno setups will throw an error if you try to access environment variables
  62. // https://github.com/langchain-ai/langchainjs/issues/1412
  63. try {
  64. if (typeof process !== "undefined") {
  65. // eslint-disable-next-line no-process-env
  66. return process.env?.[name];
  67. }
  68. else if ((0, exports.isDeno)()) {
  69. return Deno?.env.get(name);
  70. }
  71. else {
  72. return undefined;
  73. }
  74. }
  75. catch (e) {
  76. return undefined;
  77. }
  78. }
  79. exports.getEnvironmentVariable = getEnvironmentVariable;