socket-function 1.1.21 → 1.1.23

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socket-function",
3
- "version": "1.1.21",
3
+ "version": "1.1.23",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -48,41 +48,34 @@ export class JSONLACKS {
48
48
  public static EXTENDED_PARSER = false;
49
49
  public static IGNORE_MISSING_REFERENCES = false;
50
50
 
51
- @measureFnc
52
51
  public static stringify(obj: unknown, config?: JSONLACKS_StringifyConfig): string {
53
52
  let serialized = JSONLACKS.escapeSpecialObjects(obj, config);
54
- return measureBlock(function JSONstringify() { return JSON.stringify(serialized); });
53
+ return JSON.stringify(serialized);
55
54
  }
56
55
  /** Is useful when serializing an array to a file with one object per line */
57
- @measureFnc
58
56
  public static async stringifyFile(obj: unknown[], config?: JSONLACKS_StringifyConfig): Promise<Buffer> {
59
57
  let serialized = JSONLACKS.escapeSpecialObjects(obj, config) as unknown[];
60
- return await measureBlock(async function JSONstringifyAndJoin() {
61
- let buffers: Buffer[] = [];
62
- for (let i = 0; i < serialized.length; i += SERIALIZE_OBJECT_BATCH_COUNT) {
63
- let str = serialized.slice(i, i + SERIALIZE_OBJECT_BATCH_COUNT).map(x => JSON.stringify(x) + "\n").join("");
64
- buffers.push(Buffer.from(str));
65
- await delay("immediate");
66
- }
67
- // Break up into chunks, as string => Buffer i
68
- return Buffer.concat(buffers);
69
- });
58
+ let buffers: Buffer[] = [];
59
+ for (let i = 0; i < serialized.length; i += SERIALIZE_OBJECT_BATCH_COUNT) {
60
+ let str = serialized.slice(i, i + SERIALIZE_OBJECT_BATCH_COUNT).map(x => JSON.stringify(x) + "\n").join("");
61
+ buffers.push(Buffer.from(str));
62
+ await delay("immediate");
63
+ }
64
+ // Break up into chunks, as string => Buffer i
65
+ return Buffer.concat(buffers);
70
66
  }
71
67
  public static stringifyFileSync(obj: unknown[], config?: JSONLACKS_StringifyConfig): Buffer {
72
68
  let serialized = JSONLACKS.escapeSpecialObjects(obj, config) as unknown[];
73
- return measureBlock(function JSONstringifyAndJoin() {
74
- let buffers: Buffer[] = [];
75
- for (let i = 0; i < serialized.length; i += SERIALIZE_OBJECT_BATCH_COUNT) {
76
- let str = serialized.slice(i, i + SERIALIZE_OBJECT_BATCH_COUNT).map(x => JSON.stringify(x) + "\n").join("");
77
- buffers.push(Buffer.from(str));
78
- }
79
- // Break up into chunks, as string => Buffer i
80
- return Buffer.concat(buffers);
81
- });
69
+ let buffers: Buffer[] = [];
70
+ for (let i = 0; i < serialized.length; i += SERIALIZE_OBJECT_BATCH_COUNT) {
71
+ let str = serialized.slice(i, i + SERIALIZE_OBJECT_BATCH_COUNT).map(x => JSON.stringify(x) + "\n").join("");
72
+ buffers.push(Buffer.from(str));
73
+ }
74
+ // Break up into chunks, as string => Buffer i
75
+ return Buffer.concat(buffers);
82
76
  }
83
77
  // TIMING: Seems to be about 40X slower than JSON.parse unless extended is set to false,
84
78
  // then it is about 2X slower (although it depends on the size and complexity of the objects!)
85
- @measureFnc
86
79
  public static parse<T>(text: string, config?: JSONLACKS_ParseConfig, hydrateState?: HydrateState): T {
87
80
  // Empty string should parse to SOMETHING
88
81
  if (text.trim() === "") return undefined as T;
@@ -91,18 +84,17 @@ export class JSONLACKS {
91
84
  let extendedParsing = config?.extended ?? JSONLACKS.EXTENDED_PARSER;
92
85
 
93
86
  if (extendedParsing) {
94
- obj = measureBlock(function JSONextendedParse() { return parser.parse(text); });
87
+ obj = parser.parse(text);
95
88
  } else {
96
89
  try {
97
- obj = measureBlock(function JSONparse() { return JSON.parse(text); });
90
+ obj = JSON.parse(text);
98
91
  } catch {
99
- obj = measureBlock(function JSONextendedParse() { return parser.parse(text); });
92
+ obj = parser.parse(text);
100
93
  }
101
94
  }
102
95
 
103
96
  return JSONLACKS.hydrateSpecialObjects(obj, hydrateState, config) as T;
104
97
  }
105
- @measureFnc
106
98
  public static async parseLines<T>(buffer: Buffer, config?: JSONLACKS_ParseConfig): Promise<T[]> {
107
99
  let output: T[] = [];
108
100
  let pos = 0;
@@ -176,7 +168,6 @@ export class JSONLACKS {
176
168
  return output;
177
169
  }
178
170
 
179
- @measureFnc
180
171
  private static escapeSpecialObjects(obj: unknown, config?: JSONLACKS_StringifyConfig): unknown {
181
172
  // I think iterating twice for references is the fastest way to do it?
182
173
  let objects = new Set<unknown>();
@@ -265,7 +256,6 @@ export class JSONLACKS {
265
256
  }
266
257
  }
267
258
 
268
- @measureFnc
269
259
  private static hydrateSpecialObjects(obj: unknown, hydrateState?: HydrateState, config?: JSONLACKS_ParseConfig): unknown {
270
260
  let references = hydrateState?.references || new Map<string, unknown>();
271
261
  let visited = hydrateState?.visited || new Set<unknown>();
@@ -59,18 +59,18 @@ function connectPromiseToCallbackObj(promise: any, callbackObj: any) {
59
59
  // We need to delete the callback lists once on finally happens. Because we only connect to the promise once, And so it'll only trigger us once. So removing it is the only way to get it to trigger us again if someone subscribes to a finished promise.
60
60
  promiseCallbacks.delete(promise);
61
61
  for (let fnc of callbackObj.onResolve.slice()) {
62
- try { fnc(value); } finally { }
62
+ try { fnc(value); } catch { }
63
63
  }
64
64
  },
65
65
  (value: any) => {
66
66
  promiseCallbacks.delete(promise);
67
67
  for (let fnc of callbackObj.onReject.slice()) {
68
- try { fnc(value); } finally { }
68
+ try { fnc(value); } catch { }
69
69
  }
70
70
  }
71
71
  ).finally(() => {
72
72
  for (let fnc of callbackObj.onFinally.slice()) {
73
- try { fnc(); } finally { }
73
+ try { fnc(); } catch { }
74
74
  }
75
75
  });
76
76
  }