socket-function 0.104.0 → 0.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SocketFunction.ts CHANGED
@@ -441,8 +441,12 @@ export class SocketFunction {
441
441
  }
442
442
  }
443
443
 
444
+ declare global {
445
+ var BOOTED_EDGE_NODE: { host: string } | undefined;
446
+ }
447
+
444
448
  function getBootedEdgeNode() {
445
- return (globalThis as any).BOOTED_EDGE_NODE as { host: string } | undefined;
449
+ return BOOTED_EDGE_NODE as { host: string } | undefined;
446
450
  }
447
451
 
448
452
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socket-function",
3
- "version": "0.104.0",
3
+ "version": "0.106.0",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -171,7 +171,7 @@ export function requireMain() {
171
171
  }} */
172
172
  let serializedModules: { [id: string]: SerializedModule | undefined } = Object.create(null);
173
173
 
174
- type ModuleType = {
174
+ type ModuleType = NodeJS.Module & {
175
175
  id: string;
176
176
  filename: string;
177
177
  exports: unknown;
@@ -181,10 +181,12 @@ export function requireMain() {
181
181
  loaded: boolean;
182
182
  isPreloading: boolean;
183
183
  evalStartTime: number;
184
- evalEndTime: number;
184
+ evalEndTime: number | undefined;
185
+ evaluateStarted: boolean;
185
186
  source: string;
186
187
  allowclient: boolean;
187
188
  size: number;
189
+ import: (request: string, asyncIsFine?: boolean) => unknown;
188
190
  };
189
191
 
190
192
  let moduleCache: { [id: string]: ModuleType } = Object.create(null);
@@ -660,9 +662,9 @@ export function requireMain() {
660
662
 
661
663
  let currentModuleEvaluationStack: string[] = [];
662
664
  // See https://nodejs.org/api/modules.html
663
- function getModule(resolvedId: string, preload?: "preload") {
665
+ function getModule(resolvedId: string, preload?: "preload"): ModuleType {
664
666
  if (resolvedId === "") {
665
- return {};
667
+ return {} as ModuleType;
666
668
  }
667
669
  if (resolvedId in moduleCache) {
668
670
  let module = moduleCache[resolvedId];
@@ -685,16 +687,17 @@ export function requireMain() {
685
687
  console.warn(`Failed to find module ${resolvedId}. The server should have given an error about this.`, serializedModules);
686
688
  }
687
689
 
688
- let module = Object.create(null);
690
+ let module = Object.create(null) as ModuleType;
689
691
  moduleCache[resolvedId] = module;
690
692
  module.id = resolvedId;
691
- module.filename = serializedModule?.filename;
693
+ module.filename = serializedModule?.filename || "";
692
694
  module.exports = {};
693
- module.exports.default = module.exports;
695
+ // Default default of exports to the exports itself
696
+ (module.exports as any).default = module.exports;
694
697
  module.children = [];
695
698
  for (let key in serializedModule?.flags || {}) {
696
699
  if (key === "loaded") continue;
697
- module[key] = true;
700
+ (module as any)[key] = true;
698
701
  }
699
702
 
700
703
  module.load = load;
@@ -717,10 +720,11 @@ export function requireMain() {
717
720
  const serializedModule = serializedModules[resolvedId];
718
721
  if (!serializedModule) return;
719
722
  if (!module.loaded) {
723
+ module.evaluateStarted = false;
720
724
  if (alreadyHave) {
721
725
  delete alreadyHave.seqNums[serializedModule.seqNum];
722
726
  }
723
- // NOTE: There is almost never recovery from module downloading errors, so just don't catch them
727
+ // NOTE: There is almost never a way to recover from module downloading errors, so just don't catch them
724
728
  return Promise.resolve()
725
729
  .then(() => rootRequire(resolvedId, true))
726
730
  .then(async () => {
@@ -729,8 +733,11 @@ export function requireMain() {
729
733
  });
730
734
  }
731
735
 
736
+ // Skip double loads
737
+ if (module.evaluateStarted) return;
738
+
732
739
  module.requires = serializedModule.requests;
733
- module.require = createRequire(module, serializedModule);
740
+ module.require = createRequire(module, serializedModule) as any;
734
741
  // TODO: Once typescript supports dynamic import, map import() to importDynamic, so it
735
742
  // uses our import function, instead of the built in one.
736
743
  // (As apparently we can't just override import on a per module basis, because
@@ -763,6 +770,7 @@ export function requireMain() {
763
770
  let time = Date.now();
764
771
  currentModuleEvaluationStack.push(module.filename);
765
772
  try {
773
+ module.evaluateStarted = true;
766
774
  module.isPreloading = true;
767
775
  module.evalStartTime = nextTime();
768
776
  module.evalEndTime = undefined;