global.js 890 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. 'use strict'
  2. // In case of breaking changes, increase the version
  3. // number to avoid conflicts.
  4. const globalOrigin = Symbol.for('undici.globalOrigin.1')
  5. function getGlobalOrigin () {
  6. return globalThis[globalOrigin]
  7. }
  8. function setGlobalOrigin (newOrigin) {
  9. if (newOrigin === undefined) {
  10. Object.defineProperty(globalThis, globalOrigin, {
  11. value: undefined,
  12. writable: true,
  13. enumerable: false,
  14. configurable: false
  15. })
  16. return
  17. }
  18. const parsedURL = new URL(newOrigin)
  19. if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {
  20. throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)
  21. }
  22. Object.defineProperty(globalThis, globalOrigin, {
  23. value: parsedURL,
  24. writable: true,
  25. enumerable: false,
  26. configurable: false
  27. })
  28. }
  29. module.exports = {
  30. getGlobalOrigin,
  31. setGlobalOrigin
  32. }