@bigmistqke/rpc 0.1.2 → 0.1.4

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/dist/fetch.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RPC } from './types-4d4495dd.js';
1
+ import { R as RPC } from './types-9f54da43.js';
2
2
 
3
3
  declare const isFetchRequest: (event: {
4
4
  request: Request;
package/dist/fetch.js CHANGED
@@ -167,6 +167,48 @@ function array(item, message) {
167
167
  }
168
168
  };
169
169
  }
170
+ function boolean(message) {
171
+ return {
172
+ kind: "schema",
173
+ type: "boolean",
174
+ reference: boolean,
175
+ expects: "boolean",
176
+ async: false,
177
+ message,
178
+ get "~standard"() {
179
+ return _getStandardProps(this);
180
+ },
181
+ "~run"(dataset, config2) {
182
+ if (typeof dataset.value === "boolean") {
183
+ dataset.typed = true;
184
+ } else {
185
+ _addIssue(this, "type", dataset, config2);
186
+ }
187
+ return dataset;
188
+ }
189
+ };
190
+ }
191
+ function number(message) {
192
+ return {
193
+ kind: "schema",
194
+ type: "number",
195
+ reference: number,
196
+ expects: "number",
197
+ async: false,
198
+ message,
199
+ get "~standard"() {
200
+ return _getStandardProps(this);
201
+ },
202
+ "~run"(dataset, config2) {
203
+ if (typeof dataset.value === "number" && !isNaN(dataset.value)) {
204
+ dataset.typed = true;
205
+ } else {
206
+ _addIssue(this, "type", dataset, config2);
207
+ }
208
+ return dataset;
209
+ }
210
+ };
211
+ }
170
212
  function object(entries, message) {
171
213
  return {
172
214
  kind: "schema",
@@ -250,6 +292,32 @@ function object(entries, message) {
250
292
  }
251
293
  };
252
294
  }
295
+ function optional(wrapped, default_) {
296
+ return {
297
+ kind: "schema",
298
+ type: "optional",
299
+ reference: optional,
300
+ expects: `(${wrapped.expects} | undefined)`,
301
+ async: false,
302
+ wrapped,
303
+ default: default_,
304
+ get "~standard"() {
305
+ return _getStandardProps(this);
306
+ },
307
+ "~run"(dataset, config2) {
308
+ if (dataset.value === void 0) {
309
+ if (this.default !== void 0) {
310
+ dataset.value = getDefault(this, dataset, config2);
311
+ }
312
+ if (dataset.value === void 0) {
313
+ dataset.typed = true;
314
+ return dataset;
315
+ }
316
+ }
317
+ return this.wrapped["~run"](dataset, config2);
318
+ }
319
+ };
320
+ }
253
321
  function string(message) {
254
322
  return {
255
323
  kind: "schema",
@@ -271,6 +339,22 @@ function string(message) {
271
339
  }
272
340
  };
273
341
  }
342
+ function unknown() {
343
+ return {
344
+ kind: "schema",
345
+ type: "unknown",
346
+ reference: unknown,
347
+ expects: "unknown",
348
+ async: false,
349
+ get "~standard"() {
350
+ return _getStandardProps(this);
351
+ },
352
+ "~run"(dataset) {
353
+ dataset.typed = true;
354
+ return dataset;
355
+ }
356
+ };
357
+ }
274
358
  function safeParse(schema, input, config2) {
275
359
  const dataset = schema["~run"]({ value: input }, getGlobalConfig(config2));
276
360
  return {
@@ -281,13 +365,76 @@ function safeParse(schema, input, config2) {
281
365
  };
282
366
  }
283
367
 
368
+ // src/handle.ts
369
+ var $HANDLE_MARKER = Symbol("RPC-HANDLE-MARKER");
370
+
284
371
  // src/utils.ts
372
+ function createShape(schema, create) {
373
+ return {
374
+ validate: (value) => safeParse(schema, value).success,
375
+ create
376
+ };
377
+ }
378
+
379
+ // src/protocol.ts
380
+ var $MESSENGER_REQUEST = "RPC_PROXY_REQUEST";
381
+ var requestSchema = object({
382
+ [$MESSENGER_REQUEST]: number(),
383
+ payload: unknown()
384
+ });
385
+ var RequestShape = createShape(requestSchema, (id, payload) => ({
386
+ [$MESSENGER_REQUEST]: id,
387
+ payload
388
+ }));
389
+ var $MESSENGER_RESPONSE = "RPC_PROXY_RESPONSE";
390
+ var ResponseShape = createShape(
391
+ object({
392
+ [$MESSENGER_RESPONSE]: number(),
393
+ payload: optional(unknown())
394
+ }),
395
+ (request, payload) => ({
396
+ [$MESSENGER_RESPONSE]: request[$MESSENGER_REQUEST],
397
+ payload
398
+ })
399
+ );
400
+ var $MESSENGER_ERROR = "RPC_PROXY_ERROR";
401
+ var ErrorShape = createShape(
402
+ object({
403
+ [$MESSENGER_ERROR]: number(),
404
+ error: unknown()
405
+ }),
406
+ (data, error) => ({
407
+ [$MESSENGER_ERROR]: data[$MESSENGER_REQUEST],
408
+ error
409
+ })
410
+ );
411
+ var $MESSENGER_RPC_REQUEST = "RPC_PROXY_RPC_REQUEST";
412
+ var RPCPayloadShape = createShape(
413
+ object({
414
+ [$MESSENGER_RPC_REQUEST]: boolean(),
415
+ topics: array(string()),
416
+ args: array(any())
417
+ }),
418
+ (topics, args) => ({ [$MESSENGER_RPC_REQUEST]: true, topics, args })
419
+ );
420
+ var $MESSENGER_HANDLE = "RPC_PROXY_HANDLE";
421
+ var HandleResponseShape = createShape(
422
+ object({
423
+ [$MESSENGER_HANDLE]: string()
424
+ // namespace ID
425
+ }),
426
+ (namespaceId) => ({ [$MESSENGER_HANDLE]: namespaceId })
427
+ );
428
+
429
+ // src/core.ts
285
430
  function createCommander(apply) {
286
431
  function _createCommander(topics, apply2) {
287
432
  return new Proxy(function() {
288
433
  }, {
289
- get(_, topic) {
434
+ get(target, topic) {
290
435
  if (typeof topic === "symbol")
436
+ return target[topic];
437
+ if (topic === "then")
291
438
  return void 0;
292
439
  return _createCommander([...topics, topic], apply2);
293
440
  },
@@ -298,12 +445,6 @@ function createCommander(apply) {
298
445
  }
299
446
  return _createCommander([], apply);
300
447
  }
301
- function createShape(schema, create) {
302
- return {
303
- validate: (value) => safeParse(schema, value).success,
304
- create
305
- };
306
- }
307
448
  function callMethod(methods, topics, args) {
308
449
  const method = topics.reduce((acc, topic) => {
309
450
  const result = acc?.[topic];