@spikard/wasm 0.3.4 → 0.4.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.
@@ -5,7 +5,7 @@
5
5
  "Na'aman Hirschfeld <nhirschfeld@gmail.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for Spikard HTTP framework via wasm-bindgen",
8
- "version": "0.3.5",
8
+ "version": "0.4.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
@@ -4,11 +4,15 @@
4
4
  export class TestClient {
5
5
  free(): void;
6
6
  [Symbol.dispose](): void;
7
+ /**
8
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
9
+ */
10
+ handle_request(request_json: string): Promise<any>;
7
11
  get(path: string, headers: any): Promise<any>;
8
12
  /**
9
13
  * Build a [`TestClient`] from serialized route metadata, handler map, server config, and lifecycle hooks.
10
14
  */
11
- constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null);
15
+ constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null, dependencies?: any | null);
12
16
  put(path: string, options: any): Promise<any>;
13
17
  head(path: string, headers: any): Promise<any>;
14
18
  post(path: string, options: any): Promise<any>;
@@ -232,12 +232,16 @@ if (!('encodeInto' in cachedTextEncoder)) {
232
232
 
233
233
  let WASM_VECTOR_LEN = 0;
234
234
 
235
- function __wasm_bindgen_func_elem_562(arg0, arg1, arg2) {
236
- wasm.__wasm_bindgen_func_elem_562(arg0, arg1, addHeapObject(arg2));
235
+ function __wasm_bindgen_func_elem_404(arg0, arg1) {
236
+ wasm.__wasm_bindgen_func_elem_404(arg0, arg1);
237
237
  }
238
238
 
239
- function __wasm_bindgen_func_elem_4092(arg0, arg1, arg2, arg3) {
240
- wasm.__wasm_bindgen_func_elem_4092(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
239
+ function __wasm_bindgen_func_elem_637(arg0, arg1, arg2) {
240
+ wasm.__wasm_bindgen_func_elem_637(arg0, arg1, addHeapObject(arg2));
241
+ }
242
+
243
+ function __wasm_bindgen_func_elem_4179(arg0, arg1, arg2, arg3) {
244
+ wasm.__wasm_bindgen_func_elem_4179(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
241
245
  }
242
246
 
243
247
  const TestClientFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -255,6 +259,17 @@ export class TestClient {
255
259
  const ptr = this.__destroy_into_raw();
256
260
  wasm.__wbg_testclient_free(ptr, 0);
257
261
  }
262
+ /**
263
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
264
+ * @param {string} request_json
265
+ * @returns {Promise<any>}
266
+ */
267
+ handle_request(request_json) {
268
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
269
+ const len0 = WASM_VECTOR_LEN;
270
+ const ret = wasm.testclient_handle_request(this.__wbg_ptr, ptr0, len0);
271
+ return takeObject(ret);
272
+ }
258
273
  /**
259
274
  * @param {string} path
260
275
  * @param {any} headers
@@ -272,13 +287,14 @@ export class TestClient {
272
287
  * @param {any} handlers
273
288
  * @param {any} config
274
289
  * @param {any | null} [lifecycle_hooks]
290
+ * @param {any | null} [dependencies]
275
291
  */
276
- constructor(routes_json, handlers, config, lifecycle_hooks) {
292
+ constructor(routes_json, handlers, config, lifecycle_hooks, dependencies) {
277
293
  try {
278
294
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
279
295
  const ptr0 = passStringToWasm0(routes_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
280
296
  const len0 = WASM_VECTOR_LEN;
281
- wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks));
297
+ wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks), isLikeNone(dependencies) ? 0 : addHeapObject(dependencies));
282
298
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
283
299
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
284
300
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -493,6 +509,16 @@ export function __wbg_call_abb4ff46ce38be40() { return handleError(function (arg
493
509
  return addHeapObject(ret);
494
510
  }, arguments) };
495
511
 
512
+ export function __wbg_call_c8baa5c5e72d274e() { return handleError(function (arg0, arg1, arg2, arg3) {
513
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
514
+ return addHeapObject(ret);
515
+ }, arguments) };
516
+
517
+ export function __wbg_construct_8d61a09a064d7a0e() { return handleError(function (arg0, arg1) {
518
+ const ret = Reflect.construct(getObject(arg0), getObject(arg1));
519
+ return addHeapObject(ret);
520
+ }, arguments) };
521
+
496
522
  export function __wbg_done_62ea16af4ce34b24(arg0) {
497
523
  const ret = getObject(arg0).done;
498
524
  return ret;
@@ -515,6 +541,11 @@ export function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {
515
541
  }
516
542
  };
517
543
 
544
+ export function __wbg_finally_9d2144c01c15bee7(arg0, arg1) {
545
+ const ret = getObject(arg0).finally(getObject(arg1));
546
+ return addHeapObject(ret);
547
+ };
548
+
518
549
  export function __wbg_for_7246e2a062d6960c(arg0, arg1) {
519
550
  const ret = Symbol.for(getStringFromWasm0(arg0, arg1));
520
551
  return addHeapObject(ret);
@@ -529,6 +560,10 @@ export function __wbg_getRandomValues_1c61fac11405ffdc() { return handleError(fu
529
560
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
530
561
  }, arguments) };
531
562
 
563
+ export function __wbg_getRandomValues_9b655bdd369112f2() { return handleError(function (arg0, arg1) {
564
+ globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
565
+ }, arguments) };
566
+
532
567
  export function __wbg_get_6b7bd52aca3f9671(arg0, arg1) {
533
568
  const ret = getObject(arg0)[arg1 >>> 0];
534
569
  return addHeapObject(ret);
@@ -682,7 +717,7 @@ export function __wbg_new_ff12d2b041fb48f1(arg0, arg1) {
682
717
  const a = state0.a;
683
718
  state0.a = 0;
684
719
  try {
685
- return __wasm_bindgen_func_elem_4092(a, state0.b, arg0, arg1);
720
+ return __wasm_bindgen_func_elem_4179(a, state0.b, arg0, arg1);
686
721
  } finally {
687
722
  state0.a = a;
688
723
  }
@@ -714,10 +749,20 @@ export function __wbg_now_69d776cd24f5215b() {
714
749
  return ret;
715
750
  };
716
751
 
752
+ export function __wbg_of_b8cd42ebb79fb759(arg0, arg1) {
753
+ const ret = Array.of(getObject(arg0), getObject(arg1));
754
+ return addHeapObject(ret);
755
+ };
756
+
717
757
  export function __wbg_prototypesetcall_dfe9b766cdc1f1fd(arg0, arg1, arg2) {
718
758
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
719
759
  };
720
760
 
761
+ export function __wbg_push_7d9be8f38fc13975(arg0, arg1) {
762
+ const ret = getObject(arg0).push(getObject(arg1));
763
+ return ret;
764
+ };
765
+
721
766
  export function __wbg_queueMicrotask_9b549dfce8865860(arg0) {
722
767
  const ret = getObject(arg0).queueMicrotask;
723
768
  return addHeapObject(ret);
@@ -727,6 +772,11 @@ export function __wbg_queueMicrotask_fca69f5bfad613a5(arg0) {
727
772
  queueMicrotask(getObject(arg0));
728
773
  };
729
774
 
775
+ export function __wbg_race_cf804f784a97f8db(arg0) {
776
+ const ret = Promise.race(getObject(arg0));
777
+ return addHeapObject(ret);
778
+ };
779
+
730
780
  export function __wbg_resolve_fd5bfbaa4ce36e1e(arg0) {
731
781
  const ret = Promise.resolve(getObject(arg0));
732
782
  return addHeapObject(ret);
@@ -793,6 +843,11 @@ export function __wbg_then_4f95312d68691235(arg0, arg1) {
793
843
  return addHeapObject(ret);
794
844
  };
795
845
 
846
+ export function __wbg_toString_49326ce0cb2d58c4() { return handleError(function (arg0, arg1) {
847
+ const ret = getObject(arg0).toString(arg1);
848
+ return addHeapObject(ret);
849
+ }, arguments) };
850
+
796
851
  export function __wbg_value_57b7b035e117f7ee(arg0) {
797
852
  const ret = getObject(arg0).value;
798
853
  return addHeapObject(ret);
@@ -804,15 +859,21 @@ export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
804
859
  return addHeapObject(ret);
805
860
  };
806
861
 
862
+ export function __wbindgen_cast_35aab93a0b8c860f(arg0, arg1) {
863
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 14, function: Function { arguments: [], shim_idx: 15, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
864
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_403, __wasm_bindgen_func_elem_404);
865
+ return addHeapObject(ret);
866
+ };
867
+
807
868
  export function __wbindgen_cast_4625c577ab2ec9ee(arg0) {
808
869
  // Cast intrinsic for `U64 -> Externref`.
809
870
  const ret = BigInt.asUintN(64, arg0);
810
871
  return addHeapObject(ret);
811
872
  };
812
873
 
813
- export function __wbindgen_cast_902a70736b89c8fd(arg0, arg1) {
814
- // Cast intrinsic for `Closure(Closure { dtor_idx: 119, function: Function { arguments: [Externref], shim_idx: 120, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
815
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_561, __wasm_bindgen_func_elem_562);
874
+ export function __wbindgen_cast_75edd3f875320618(arg0, arg1) {
875
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 120, function: Function { arguments: [Externref], shim_idx: 121, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
876
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_636, __wasm_bindgen_func_elem_637);
816
877
  return addHeapObject(ret);
817
878
  };
818
879
 
Binary file
@@ -4,17 +4,20 @@ export const memory: WebAssembly.Memory;
4
4
  export const __wbg_testclient_free: (a: number, b: number) => void;
5
5
  export const testclient_delete: (a: number, b: number, c: number, d: number) => number;
6
6
  export const testclient_get: (a: number, b: number, c: number, d: number) => number;
7
+ export const testclient_handle_request: (a: number, b: number, c: number) => number;
7
8
  export const testclient_head: (a: number, b: number, c: number, d: number) => number;
8
- export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
+ export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
9
10
  export const testclient_options: (a: number, b: number, c: number, d: number) => number;
10
11
  export const testclient_patch: (a: number, b: number, c: number, d: number) => number;
11
12
  export const testclient_post: (a: number, b: number, c: number, d: number) => number;
12
13
  export const testclient_put: (a: number, b: number, c: number, d: number) => number;
13
14
  export const testclient_trace: (a: number, b: number, c: number, d: number) => number;
14
15
  export const init: () => void;
15
- export const __wasm_bindgen_func_elem_562: (a: number, b: number, c: number) => void;
16
- export const __wasm_bindgen_func_elem_561: (a: number, b: number) => void;
17
- export const __wasm_bindgen_func_elem_4092: (a: number, b: number, c: number, d: number) => void;
16
+ export const __wasm_bindgen_func_elem_404: (a: number, b: number) => void;
17
+ export const __wasm_bindgen_func_elem_403: (a: number, b: number) => void;
18
+ export const __wasm_bindgen_func_elem_637: (a: number, b: number, c: number) => void;
19
+ export const __wasm_bindgen_func_elem_636: (a: number, b: number) => void;
20
+ export const __wasm_bindgen_func_elem_4179: (a: number, b: number, c: number, d: number) => void;
18
21
  export const __wbindgen_export: (a: number, b: number) => number;
19
22
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
20
23
  export const __wbindgen_export3: (a: number) => void;
@@ -4,7 +4,7 @@
4
4
  "Na'aman Hirschfeld <nhirschfeld@gmail.com>"
5
5
  ],
6
6
  "description": "WebAssembly bindings for Spikard HTTP framework via wasm-bindgen",
7
- "version": "0.3.5",
7
+ "version": "0.4.0",
8
8
  "license": "MIT",
9
9
  "repository": {
10
10
  "type": "git",
@@ -4,11 +4,15 @@
4
4
  export class TestClient {
5
5
  free(): void;
6
6
  [Symbol.dispose](): void;
7
+ /**
8
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
9
+ */
10
+ handle_request(request_json: string): Promise<any>;
7
11
  get(path: string, headers: any): Promise<any>;
8
12
  /**
9
13
  * Build a [`TestClient`] from serialized route metadata, handler map, server config, and lifecycle hooks.
10
14
  */
11
- constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null);
15
+ constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null, dependencies?: any | null);
12
16
  put(path: string, options: any): Promise<any>;
13
17
  head(path: string, headers: any): Promise<any>;
14
18
  post(path: string, options: any): Promise<any>;
@@ -223,12 +223,16 @@ if (!('encodeInto' in cachedTextEncoder)) {
223
223
 
224
224
  let WASM_VECTOR_LEN = 0;
225
225
 
226
- function __wasm_bindgen_func_elem_562(arg0, arg1, arg2) {
227
- wasm.__wasm_bindgen_func_elem_562(arg0, arg1, addHeapObject(arg2));
226
+ function __wasm_bindgen_func_elem_637(arg0, arg1, arg2) {
227
+ wasm.__wasm_bindgen_func_elem_637(arg0, arg1, addHeapObject(arg2));
228
228
  }
229
229
 
230
- function __wasm_bindgen_func_elem_4092(arg0, arg1, arg2, arg3) {
231
- wasm.__wasm_bindgen_func_elem_4092(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
230
+ function __wasm_bindgen_func_elem_404(arg0, arg1) {
231
+ wasm.__wasm_bindgen_func_elem_404(arg0, arg1);
232
+ }
233
+
234
+ function __wasm_bindgen_func_elem_4179(arg0, arg1, arg2, arg3) {
235
+ wasm.__wasm_bindgen_func_elem_4179(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
232
236
  }
233
237
 
234
238
  const TestClientFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -246,6 +250,17 @@ class TestClient {
246
250
  const ptr = this.__destroy_into_raw();
247
251
  wasm.__wbg_testclient_free(ptr, 0);
248
252
  }
253
+ /**
254
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
255
+ * @param {string} request_json
256
+ * @returns {Promise<any>}
257
+ */
258
+ handle_request(request_json) {
259
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
260
+ const len0 = WASM_VECTOR_LEN;
261
+ const ret = wasm.testclient_handle_request(this.__wbg_ptr, ptr0, len0);
262
+ return takeObject(ret);
263
+ }
249
264
  /**
250
265
  * @param {string} path
251
266
  * @param {any} headers
@@ -263,13 +278,14 @@ class TestClient {
263
278
  * @param {any} handlers
264
279
  * @param {any} config
265
280
  * @param {any | null} [lifecycle_hooks]
281
+ * @param {any | null} [dependencies]
266
282
  */
267
- constructor(routes_json, handlers, config, lifecycle_hooks) {
283
+ constructor(routes_json, handlers, config, lifecycle_hooks, dependencies) {
268
284
  try {
269
285
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
270
286
  const ptr0 = passStringToWasm0(routes_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
271
287
  const len0 = WASM_VECTOR_LEN;
272
- wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks));
288
+ wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks), isLikeNone(dependencies) ? 0 : addHeapObject(dependencies));
273
289
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
274
290
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
275
291
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -486,6 +502,16 @@ exports.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (
486
502
  return addHeapObject(ret);
487
503
  }, arguments) };
488
504
 
505
+ exports.__wbg_call_c8baa5c5e72d274e = function() { return handleError(function (arg0, arg1, arg2, arg3) {
506
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
507
+ return addHeapObject(ret);
508
+ }, arguments) };
509
+
510
+ exports.__wbg_construct_8d61a09a064d7a0e = function() { return handleError(function (arg0, arg1) {
511
+ const ret = Reflect.construct(getObject(arg0), getObject(arg1));
512
+ return addHeapObject(ret);
513
+ }, arguments) };
514
+
489
515
  exports.__wbg_done_62ea16af4ce34b24 = function(arg0) {
490
516
  const ret = getObject(arg0).done;
491
517
  return ret;
@@ -508,6 +534,11 @@ exports.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {
508
534
  }
509
535
  };
510
536
 
537
+ exports.__wbg_finally_9d2144c01c15bee7 = function(arg0, arg1) {
538
+ const ret = getObject(arg0).finally(getObject(arg1));
539
+ return addHeapObject(ret);
540
+ };
541
+
511
542
  exports.__wbg_for_7246e2a062d6960c = function(arg0, arg1) {
512
543
  const ret = Symbol.for(getStringFromWasm0(arg0, arg1));
513
544
  return addHeapObject(ret);
@@ -522,6 +553,10 @@ exports.__wbg_getRandomValues_1c61fac11405ffdc = function() { return handleError
522
553
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
523
554
  }, arguments) };
524
555
 
556
+ exports.__wbg_getRandomValues_9b655bdd369112f2 = function() { return handleError(function (arg0, arg1) {
557
+ globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
558
+ }, arguments) };
559
+
525
560
  exports.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {
526
561
  const ret = getObject(arg0)[arg1 >>> 0];
527
562
  return addHeapObject(ret);
@@ -675,7 +710,7 @@ exports.__wbg_new_ff12d2b041fb48f1 = function(arg0, arg1) {
675
710
  const a = state0.a;
676
711
  state0.a = 0;
677
712
  try {
678
- return __wasm_bindgen_func_elem_4092(a, state0.b, arg0, arg1);
713
+ return __wasm_bindgen_func_elem_4179(a, state0.b, arg0, arg1);
679
714
  } finally {
680
715
  state0.a = a;
681
716
  }
@@ -707,10 +742,20 @@ exports.__wbg_now_69d776cd24f5215b = function() {
707
742
  return ret;
708
743
  };
709
744
 
745
+ exports.__wbg_of_b8cd42ebb79fb759 = function(arg0, arg1) {
746
+ const ret = Array.of(getObject(arg0), getObject(arg1));
747
+ return addHeapObject(ret);
748
+ };
749
+
710
750
  exports.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {
711
751
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
712
752
  };
713
753
 
754
+ exports.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {
755
+ const ret = getObject(arg0).push(getObject(arg1));
756
+ return ret;
757
+ };
758
+
714
759
  exports.__wbg_queueMicrotask_9b549dfce8865860 = function(arg0) {
715
760
  const ret = getObject(arg0).queueMicrotask;
716
761
  return addHeapObject(ret);
@@ -720,6 +765,11 @@ exports.__wbg_queueMicrotask_fca69f5bfad613a5 = function(arg0) {
720
765
  queueMicrotask(getObject(arg0));
721
766
  };
722
767
 
768
+ exports.__wbg_race_cf804f784a97f8db = function(arg0) {
769
+ const ret = Promise.race(getObject(arg0));
770
+ return addHeapObject(ret);
771
+ };
772
+
723
773
  exports.__wbg_resolve_fd5bfbaa4ce36e1e = function(arg0) {
724
774
  const ret = Promise.resolve(getObject(arg0));
725
775
  return addHeapObject(ret);
@@ -786,6 +836,11 @@ exports.__wbg_then_4f95312d68691235 = function(arg0, arg1) {
786
836
  return addHeapObject(ret);
787
837
  };
788
838
 
839
+ exports.__wbg_toString_49326ce0cb2d58c4 = function() { return handleError(function (arg0, arg1) {
840
+ const ret = getObject(arg0).toString(arg1);
841
+ return addHeapObject(ret);
842
+ }, arguments) };
843
+
789
844
  exports.__wbg_value_57b7b035e117f7ee = function(arg0) {
790
845
  const ret = getObject(arg0).value;
791
846
  return addHeapObject(ret);
@@ -797,15 +852,21 @@ exports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
797
852
  return addHeapObject(ret);
798
853
  };
799
854
 
855
+ exports.__wbindgen_cast_35aab93a0b8c860f = function(arg0, arg1) {
856
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 14, function: Function { arguments: [], shim_idx: 15, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
857
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_403, __wasm_bindgen_func_elem_404);
858
+ return addHeapObject(ret);
859
+ };
860
+
800
861
  exports.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {
801
862
  // Cast intrinsic for `U64 -> Externref`.
802
863
  const ret = BigInt.asUintN(64, arg0);
803
864
  return addHeapObject(ret);
804
865
  };
805
866
 
806
- exports.__wbindgen_cast_902a70736b89c8fd = function(arg0, arg1) {
807
- // Cast intrinsic for `Closure(Closure { dtor_idx: 119, function: Function { arguments: [Externref], shim_idx: 120, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
808
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_561, __wasm_bindgen_func_elem_562);
867
+ exports.__wbindgen_cast_75edd3f875320618 = function(arg0, arg1) {
868
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 120, function: Function { arguments: [Externref], shim_idx: 121, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
869
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_636, __wasm_bindgen_func_elem_637);
809
870
  return addHeapObject(ret);
810
871
  };
811
872
 
Binary file
@@ -4,17 +4,20 @@ export const memory: WebAssembly.Memory;
4
4
  export const __wbg_testclient_free: (a: number, b: number) => void;
5
5
  export const testclient_delete: (a: number, b: number, c: number, d: number) => number;
6
6
  export const testclient_get: (a: number, b: number, c: number, d: number) => number;
7
+ export const testclient_handle_request: (a: number, b: number, c: number) => number;
7
8
  export const testclient_head: (a: number, b: number, c: number, d: number) => number;
8
- export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
+ export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
9
10
  export const testclient_options: (a: number, b: number, c: number, d: number) => number;
10
11
  export const testclient_patch: (a: number, b: number, c: number, d: number) => number;
11
12
  export const testclient_post: (a: number, b: number, c: number, d: number) => number;
12
13
  export const testclient_put: (a: number, b: number, c: number, d: number) => number;
13
14
  export const testclient_trace: (a: number, b: number, c: number, d: number) => number;
14
15
  export const init: () => void;
15
- export const __wasm_bindgen_func_elem_562: (a: number, b: number, c: number) => void;
16
- export const __wasm_bindgen_func_elem_561: (a: number, b: number) => void;
17
- export const __wasm_bindgen_func_elem_4092: (a: number, b: number, c: number, d: number) => void;
16
+ export const __wasm_bindgen_func_elem_637: (a: number, b: number, c: number) => void;
17
+ export const __wasm_bindgen_func_elem_636: (a: number, b: number) => void;
18
+ export const __wasm_bindgen_func_elem_404: (a: number, b: number) => void;
19
+ export const __wasm_bindgen_func_elem_403: (a: number, b: number) => void;
20
+ export const __wasm_bindgen_func_elem_4179: (a: number, b: number, c: number, d: number) => void;
18
21
  export const __wbindgen_export: (a: number, b: number) => number;
19
22
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
20
23
  export const __wbindgen_export3: (a: number) => void;
@@ -5,7 +5,7 @@
5
5
  "Na'aman Hirschfeld <nhirschfeld@gmail.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for Spikard HTTP framework via wasm-bindgen",
8
- "version": "0.3.5",
8
+ "version": "0.4.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
@@ -4,11 +4,15 @@
4
4
  export class TestClient {
5
5
  free(): void;
6
6
  [Symbol.dispose](): void;
7
+ /**
8
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
9
+ */
10
+ handle_request(request_json: string): Promise<any>;
7
11
  get(path: string, headers: any): Promise<any>;
8
12
  /**
9
13
  * Build a [`TestClient`] from serialized route metadata, handler map, server config, and lifecycle hooks.
10
14
  */
11
- constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null);
15
+ constructor(routes_json: string, handlers: any, config: any, lifecycle_hooks?: any | null, dependencies?: any | null);
12
16
  put(path: string, options: any): Promise<any>;
13
17
  head(path: string, headers: any): Promise<any>;
14
18
  post(path: string, options: any): Promise<any>;
@@ -30,17 +34,20 @@ export interface InitOutput {
30
34
  readonly __wbg_testclient_free: (a: number, b: number) => void;
31
35
  readonly testclient_delete: (a: number, b: number, c: number, d: number) => number;
32
36
  readonly testclient_get: (a: number, b: number, c: number, d: number) => number;
37
+ readonly testclient_handle_request: (a: number, b: number, c: number) => number;
33
38
  readonly testclient_head: (a: number, b: number, c: number, d: number) => number;
34
- readonly testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
39
+ readonly testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
35
40
  readonly testclient_options: (a: number, b: number, c: number, d: number) => number;
36
41
  readonly testclient_patch: (a: number, b: number, c: number, d: number) => number;
37
42
  readonly testclient_post: (a: number, b: number, c: number, d: number) => number;
38
43
  readonly testclient_put: (a: number, b: number, c: number, d: number) => number;
39
44
  readonly testclient_trace: (a: number, b: number, c: number, d: number) => number;
40
45
  readonly init: () => void;
41
- readonly __wasm_bindgen_func_elem_562: (a: number, b: number, c: number) => void;
42
- readonly __wasm_bindgen_func_elem_561: (a: number, b: number) => void;
43
- readonly __wasm_bindgen_func_elem_4092: (a: number, b: number, c: number, d: number) => void;
46
+ readonly __wasm_bindgen_func_elem_404: (a: number, b: number) => void;
47
+ readonly __wasm_bindgen_func_elem_403: (a: number, b: number) => void;
48
+ readonly __wasm_bindgen_func_elem_637: (a: number, b: number, c: number) => void;
49
+ readonly __wasm_bindgen_func_elem_636: (a: number, b: number) => void;
50
+ readonly __wasm_bindgen_func_elem_4179: (a: number, b: number, c: number, d: number) => void;
44
51
  readonly __wbindgen_export: (a: number, b: number) => number;
45
52
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
46
53
  readonly __wbindgen_export3: (a: number) => void;
@@ -229,12 +229,16 @@ if (!('encodeInto' in cachedTextEncoder)) {
229
229
 
230
230
  let WASM_VECTOR_LEN = 0;
231
231
 
232
- function __wasm_bindgen_func_elem_562(arg0, arg1, arg2) {
233
- wasm.__wasm_bindgen_func_elem_562(arg0, arg1, addHeapObject(arg2));
232
+ function __wasm_bindgen_func_elem_404(arg0, arg1) {
233
+ wasm.__wasm_bindgen_func_elem_404(arg0, arg1);
234
234
  }
235
235
 
236
- function __wasm_bindgen_func_elem_4092(arg0, arg1, arg2, arg3) {
237
- wasm.__wasm_bindgen_func_elem_4092(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
236
+ function __wasm_bindgen_func_elem_637(arg0, arg1, arg2) {
237
+ wasm.__wasm_bindgen_func_elem_637(arg0, arg1, addHeapObject(arg2));
238
+ }
239
+
240
+ function __wasm_bindgen_func_elem_4179(arg0, arg1, arg2, arg3) {
241
+ wasm.__wasm_bindgen_func_elem_4179(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
238
242
  }
239
243
 
240
244
  const TestClientFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -252,6 +256,17 @@ export class TestClient {
252
256
  const ptr = this.__destroy_into_raw();
253
257
  wasm.__wbg_testclient_free(ptr, 0);
254
258
  }
259
+ /**
260
+ * Handle a generic HTTP request. Takes a JSON string with method, path, headers, and body.
261
+ * @param {string} request_json
262
+ * @returns {Promise<any>}
263
+ */
264
+ handle_request(request_json) {
265
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
266
+ const len0 = WASM_VECTOR_LEN;
267
+ const ret = wasm.testclient_handle_request(this.__wbg_ptr, ptr0, len0);
268
+ return takeObject(ret);
269
+ }
255
270
  /**
256
271
  * @param {string} path
257
272
  * @param {any} headers
@@ -269,13 +284,14 @@ export class TestClient {
269
284
  * @param {any} handlers
270
285
  * @param {any} config
271
286
  * @param {any | null} [lifecycle_hooks]
287
+ * @param {any | null} [dependencies]
272
288
  */
273
- constructor(routes_json, handlers, config, lifecycle_hooks) {
289
+ constructor(routes_json, handlers, config, lifecycle_hooks, dependencies) {
274
290
  try {
275
291
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
276
292
  const ptr0 = passStringToWasm0(routes_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
277
293
  const len0 = WASM_VECTOR_LEN;
278
- wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks));
294
+ wasm.testclient_new(retptr, ptr0, len0, addHeapObject(handlers), addHeapObject(config), isLikeNone(lifecycle_hooks) ? 0 : addHeapObject(lifecycle_hooks), isLikeNone(dependencies) ? 0 : addHeapObject(dependencies));
279
295
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
280
296
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
281
297
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -505,6 +521,14 @@ function __wbg_get_imports() {
505
521
  const ret = getObject(arg0).call(getObject(arg1));
506
522
  return addHeapObject(ret);
507
523
  }, arguments) };
524
+ imports.wbg.__wbg_call_c8baa5c5e72d274e = function() { return handleError(function (arg0, arg1, arg2, arg3) {
525
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
526
+ return addHeapObject(ret);
527
+ }, arguments) };
528
+ imports.wbg.__wbg_construct_8d61a09a064d7a0e = function() { return handleError(function (arg0, arg1) {
529
+ const ret = Reflect.construct(getObject(arg0), getObject(arg1));
530
+ return addHeapObject(ret);
531
+ }, arguments) };
508
532
  imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) {
509
533
  const ret = getObject(arg0).done;
510
534
  return ret;
@@ -524,6 +548,10 @@ function __wbg_get_imports() {
524
548
  wasm.__wbindgen_export4(deferred0_0, deferred0_1, 1);
525
549
  }
526
550
  };
551
+ imports.wbg.__wbg_finally_9d2144c01c15bee7 = function(arg0, arg1) {
552
+ const ret = getObject(arg0).finally(getObject(arg1));
553
+ return addHeapObject(ret);
554
+ };
527
555
  imports.wbg.__wbg_for_7246e2a062d6960c = function(arg0, arg1) {
528
556
  const ret = Symbol.for(getStringFromWasm0(arg0, arg1));
529
557
  return addHeapObject(ret);
@@ -535,6 +563,9 @@ function __wbg_get_imports() {
535
563
  imports.wbg.__wbg_getRandomValues_1c61fac11405ffdc = function() { return handleError(function (arg0, arg1) {
536
564
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
537
565
  }, arguments) };
566
+ imports.wbg.__wbg_getRandomValues_9b655bdd369112f2 = function() { return handleError(function (arg0, arg1) {
567
+ globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
568
+ }, arguments) };
538
569
  imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {
539
570
  const ret = getObject(arg0)[arg1 >>> 0];
540
571
  return addHeapObject(ret);
@@ -666,7 +697,7 @@ function __wbg_get_imports() {
666
697
  const a = state0.a;
667
698
  state0.a = 0;
668
699
  try {
669
- return __wasm_bindgen_func_elem_4092(a, state0.b, arg0, arg1);
700
+ return __wasm_bindgen_func_elem_4179(a, state0.b, arg0, arg1);
670
701
  } finally {
671
702
  state0.a = a;
672
703
  }
@@ -693,9 +724,17 @@ function __wbg_get_imports() {
693
724
  const ret = Date.now();
694
725
  return ret;
695
726
  };
727
+ imports.wbg.__wbg_of_b8cd42ebb79fb759 = function(arg0, arg1) {
728
+ const ret = Array.of(getObject(arg0), getObject(arg1));
729
+ return addHeapObject(ret);
730
+ };
696
731
  imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {
697
732
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
698
733
  };
734
+ imports.wbg.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {
735
+ const ret = getObject(arg0).push(getObject(arg1));
736
+ return ret;
737
+ };
699
738
  imports.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function(arg0) {
700
739
  const ret = getObject(arg0).queueMicrotask;
701
740
  return addHeapObject(ret);
@@ -703,6 +742,10 @@ function __wbg_get_imports() {
703
742
  imports.wbg.__wbg_queueMicrotask_fca69f5bfad613a5 = function(arg0) {
704
743
  queueMicrotask(getObject(arg0));
705
744
  };
745
+ imports.wbg.__wbg_race_cf804f784a97f8db = function(arg0) {
746
+ const ret = Promise.race(getObject(arg0));
747
+ return addHeapObject(ret);
748
+ };
706
749
  imports.wbg.__wbg_resolve_fd5bfbaa4ce36e1e = function(arg0) {
707
750
  const ret = Promise.resolve(getObject(arg0));
708
751
  return addHeapObject(ret);
@@ -756,6 +799,10 @@ function __wbg_get_imports() {
756
799
  const ret = getObject(arg0).then(getObject(arg1));
757
800
  return addHeapObject(ret);
758
801
  };
802
+ imports.wbg.__wbg_toString_49326ce0cb2d58c4 = function() { return handleError(function (arg0, arg1) {
803
+ const ret = getObject(arg0).toString(arg1);
804
+ return addHeapObject(ret);
805
+ }, arguments) };
759
806
  imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) {
760
807
  const ret = getObject(arg0).value;
761
808
  return addHeapObject(ret);
@@ -765,14 +812,19 @@ function __wbg_get_imports() {
765
812
  const ret = getStringFromWasm0(arg0, arg1);
766
813
  return addHeapObject(ret);
767
814
  };
815
+ imports.wbg.__wbindgen_cast_35aab93a0b8c860f = function(arg0, arg1) {
816
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 14, function: Function { arguments: [], shim_idx: 15, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
817
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_403, __wasm_bindgen_func_elem_404);
818
+ return addHeapObject(ret);
819
+ };
768
820
  imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {
769
821
  // Cast intrinsic for `U64 -> Externref`.
770
822
  const ret = BigInt.asUintN(64, arg0);
771
823
  return addHeapObject(ret);
772
824
  };
773
- imports.wbg.__wbindgen_cast_902a70736b89c8fd = function(arg0, arg1) {
774
- // Cast intrinsic for `Closure(Closure { dtor_idx: 119, function: Function { arguments: [Externref], shim_idx: 120, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
775
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_561, __wasm_bindgen_func_elem_562);
825
+ imports.wbg.__wbindgen_cast_75edd3f875320618 = function(arg0, arg1) {
826
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 120, function: Function { arguments: [Externref], shim_idx: 121, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
827
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_636, __wasm_bindgen_func_elem_637);
776
828
  return addHeapObject(ret);
777
829
  };
778
830
  imports.wbg.__wbindgen_cast_9ae0607507abb057 = function(arg0) {
Binary file
@@ -4,17 +4,20 @@ export const memory: WebAssembly.Memory;
4
4
  export const __wbg_testclient_free: (a: number, b: number) => void;
5
5
  export const testclient_delete: (a: number, b: number, c: number, d: number) => number;
6
6
  export const testclient_get: (a: number, b: number, c: number, d: number) => number;
7
+ export const testclient_handle_request: (a: number, b: number, c: number) => number;
7
8
  export const testclient_head: (a: number, b: number, c: number, d: number) => number;
8
- export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
+ export const testclient_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
9
10
  export const testclient_options: (a: number, b: number, c: number, d: number) => number;
10
11
  export const testclient_patch: (a: number, b: number, c: number, d: number) => number;
11
12
  export const testclient_post: (a: number, b: number, c: number, d: number) => number;
12
13
  export const testclient_put: (a: number, b: number, c: number, d: number) => number;
13
14
  export const testclient_trace: (a: number, b: number, c: number, d: number) => number;
14
15
  export const init: () => void;
15
- export const __wasm_bindgen_func_elem_562: (a: number, b: number, c: number) => void;
16
- export const __wasm_bindgen_func_elem_561: (a: number, b: number) => void;
17
- export const __wasm_bindgen_func_elem_4092: (a: number, b: number, c: number, d: number) => void;
16
+ export const __wasm_bindgen_func_elem_404: (a: number, b: number) => void;
17
+ export const __wasm_bindgen_func_elem_403: (a: number, b: number) => void;
18
+ export const __wasm_bindgen_func_elem_637: (a: number, b: number, c: number) => void;
19
+ export const __wasm_bindgen_func_elem_636: (a: number, b: number) => void;
20
+ export const __wasm_bindgen_func_elem_4179: (a: number, b: number, c: number, d: number) => void;
18
21
  export const __wbindgen_export: (a: number, b: number) => number;
19
22
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
20
23
  export const __wbindgen_export3: (a: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spikard/wasm",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "WebAssembly bindings for spikard - High-performance HTTP framework",
5
5
  "main": "dist-bundler/spikard_wasm.js",
6
6
  "types": "dist-bundler/spikard_wasm.d.ts",
@@ -53,11 +53,11 @@
53
53
  ],
54
54
  "scripts": {
55
55
  "build": "pnpm run build:bundler",
56
- "build:bundler": "PATH=\"$HOME/.cargo/bin:$PATH\" rustup run stable wasm-pack build --target bundler --out-dir dist-bundler --release",
57
- "build:web": "PATH=\"$HOME/.cargo/bin:$PATH\" rustup run stable wasm-pack build --target web --out-dir dist-web --release",
58
- "build:node": "PATH=\"$HOME/.cargo/bin:$PATH\" rustup run stable wasm-pack build --target nodejs --out-dir dist-node --release",
56
+ "build:bundler": "PATH=\"$HOME/.cargo/bin:$PATH\" pnpm exec wasm-pack build --target bundler --out-dir dist-bundler --release",
57
+ "build:web": "PATH=\"$HOME/.cargo/bin:$PATH\" pnpm exec wasm-pack build --target web --out-dir dist-web --release",
58
+ "build:node": "PATH=\"$HOME/.cargo/bin:$PATH\" pnpm exec wasm-pack build --target nodejs --out-dir dist-node --release",
59
59
  "build:all": "pnpm run build:bundler && pnpm run build:node && pnpm run build:web",
60
- "test": "PATH=\"$HOME/.cargo/bin:$PATH\" rustup run stable wasm-pack build --target web && PATH=\"$HOME/.cargo/bin:$PATH\" rustup run stable wasm-pack test --node",
60
+ "test": "PATH=\"$HOME/.cargo/bin:$PATH\" pnpm exec wasm-pack build --target web && PATH=\"$HOME/.cargo/bin:$PATH\" pnpm exec wasm-pack test --node",
61
61
  "clean": "rm -rf dist-bundler dist-node dist-web node_modules"
62
62
  },
63
63
  "devDependencies": {