swarpc 0.11.0 → 0.13.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/README.md +246 -171
- package/dist/client.d.ts +22 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +55 -19
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/localstorage.d.ts.map +1 -1
- package/dist/log.d.ts +9 -3
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +52 -34
- package/dist/nodes.d.ts +12 -0
- package/dist/nodes.d.ts.map +1 -0
- package/dist/nodes.js +36 -0
- package/dist/polyfills.d.ts +2 -0
- package/dist/polyfills.d.ts.map +1 -0
- package/dist/polyfills.js +20 -0
- package/dist/scopes.d.ts +4 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +15 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +20 -29
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/package.json +24 -9
- package/src/client.ts +180 -109
- package/src/index.ts +9 -8
- package/src/localstorage.ts +46 -46
- package/src/log.ts +155 -118
- package/src/nodes.ts +55 -0
- package/src/polyfills.ts +22 -0
- package/src/scopes.ts +35 -0
- package/src/server.ts +275 -299
- package/src/types.ts +264 -239
- package/src/utils.ts +34 -34
package/dist/types.d.ts
CHANGED
|
@@ -74,6 +74,10 @@ tools: {
|
|
|
74
74
|
* Logger instance to use for logging messages related to this procedure call, using the same format as SWARPC's built-in logging.
|
|
75
75
|
*/
|
|
76
76
|
logger: RequestBoundLogger;
|
|
77
|
+
/**
|
|
78
|
+
* ID of the Node the request is being processed on.
|
|
79
|
+
*/
|
|
80
|
+
nodeId: string;
|
|
77
81
|
}) => Promise<S["inferIn"]>;
|
|
78
82
|
/**
|
|
79
83
|
* Declarations of procedures by name.
|
|
@@ -108,7 +112,9 @@ export type Hooks<Procedures extends ProceduresMap> = {
|
|
|
108
112
|
export declare const PayloadInitializeSchema: import("arktype/internal/methods/object.ts").ObjectType<{
|
|
109
113
|
by: "sw&rpc";
|
|
110
114
|
functionName: "#initialize";
|
|
115
|
+
isInitializeRequest: true;
|
|
111
116
|
localStorageData: Record<string, unknown>;
|
|
117
|
+
nodeId: string;
|
|
112
118
|
}, {}>;
|
|
113
119
|
export type PayloadInitialize = typeof PayloadInitializeSchema.infer;
|
|
114
120
|
/**
|
|
@@ -187,12 +193,16 @@ export declare const PayloadSchema: import("arktype").Generic<[["Name", string],
|
|
|
187
193
|
PayloadInitializeSchema: import("arktype/internal/methods/object.ts").ObjectType<{
|
|
188
194
|
by: "sw&rpc";
|
|
189
195
|
functionName: "#initialize";
|
|
196
|
+
isInitializeRequest: true;
|
|
190
197
|
localStorageData: Record<string, unknown>;
|
|
198
|
+
nodeId: string;
|
|
191
199
|
}, {}> & {
|
|
192
200
|
readonly " brand": [import("arktype/internal/methods/object.ts").ObjectType<{
|
|
193
201
|
by: "sw&rpc";
|
|
194
202
|
functionName: "#initialize";
|
|
203
|
+
isInitializeRequest: true;
|
|
195
204
|
localStorageData: Record<string, unknown>;
|
|
205
|
+
nodeId: string;
|
|
196
206
|
}, {}>, "unparsed"];
|
|
197
207
|
};
|
|
198
208
|
} & {}>;
|
|
@@ -220,19 +230,25 @@ export declare const PayloadSchema: import("arktype").Generic<[["Name", string],
|
|
|
220
230
|
PayloadInitializeSchema: import("arktype/internal/methods/object.ts").ObjectType<{
|
|
221
231
|
by: "sw&rpc";
|
|
222
232
|
functionName: "#initialize";
|
|
233
|
+
isInitializeRequest: true;
|
|
223
234
|
localStorageData: Record<string, unknown>;
|
|
235
|
+
nodeId: string;
|
|
224
236
|
}, {}> & {
|
|
225
237
|
readonly " brand": [import("arktype/internal/methods/object.ts").ObjectType<{
|
|
226
238
|
by: "sw&rpc";
|
|
227
239
|
functionName: "#initialize";
|
|
240
|
+
isInitializeRequest: true;
|
|
228
241
|
localStorageData: Record<string, unknown>;
|
|
242
|
+
nodeId: string;
|
|
229
243
|
}, {}>, "unparsed"];
|
|
230
244
|
};
|
|
231
245
|
} & {}>;
|
|
232
246
|
PayloadInitializeSchema: {
|
|
233
247
|
by: "sw&rpc";
|
|
234
248
|
functionName: "#initialize";
|
|
249
|
+
isInitializeRequest: true;
|
|
235
250
|
localStorageData: Record<string, unknown>;
|
|
251
|
+
nodeId: string;
|
|
236
252
|
};
|
|
237
253
|
}, {
|
|
238
254
|
PayloadCoreSchema: import("arktype/internal/scope.ts").bindGenericToScope<import("@ark/schema").GenericAst<[["I", unknown], ["P", unknown], ["S", unknown]], {
|
|
@@ -265,12 +281,16 @@ export declare const PayloadSchema: import("arktype").Generic<[["Name", string],
|
|
|
265
281
|
PayloadInitializeSchema: import("arktype/internal/methods/object.ts").ObjectType<{
|
|
266
282
|
by: "sw&rpc";
|
|
267
283
|
functionName: "#initialize";
|
|
284
|
+
isInitializeRequest: true;
|
|
268
285
|
localStorageData: Record<string, unknown>;
|
|
286
|
+
nodeId: string;
|
|
269
287
|
}, {}> & {
|
|
270
288
|
readonly " brand": [import("arktype/internal/methods/object.ts").ObjectType<{
|
|
271
289
|
by: "sw&rpc";
|
|
272
290
|
functionName: "#initialize";
|
|
291
|
+
isInitializeRequest: true;
|
|
273
292
|
localStorageData: Record<string, unknown>;
|
|
293
|
+
nodeId: string;
|
|
274
294
|
}, {}>, "unparsed"];
|
|
275
295
|
};
|
|
276
296
|
} & {}>;
|
|
@@ -298,19 +318,25 @@ export declare const PayloadSchema: import("arktype").Generic<[["Name", string],
|
|
|
298
318
|
PayloadInitializeSchema: import("arktype/internal/methods/object.ts").ObjectType<{
|
|
299
319
|
by: "sw&rpc";
|
|
300
320
|
functionName: "#initialize";
|
|
321
|
+
isInitializeRequest: true;
|
|
301
322
|
localStorageData: Record<string, unknown>;
|
|
323
|
+
nodeId: string;
|
|
302
324
|
}, {}> & {
|
|
303
325
|
readonly " brand": [import("arktype/internal/methods/object.ts").ObjectType<{
|
|
304
326
|
by: "sw&rpc";
|
|
305
327
|
functionName: "#initialize";
|
|
328
|
+
isInitializeRequest: true;
|
|
306
329
|
localStorageData: Record<string, unknown>;
|
|
330
|
+
nodeId: string;
|
|
307
331
|
}, {}>, "unparsed"];
|
|
308
332
|
};
|
|
309
333
|
} & {}>;
|
|
310
334
|
PayloadInitializeSchema: {
|
|
311
335
|
by: "sw&rpc";
|
|
312
336
|
functionName: "#initialize";
|
|
337
|
+
isInitializeRequest: true;
|
|
313
338
|
localStorageData: Record<string, unknown>;
|
|
339
|
+
nodeId: string;
|
|
314
340
|
};
|
|
315
341
|
}>;
|
|
316
342
|
/**
|
|
@@ -325,6 +351,16 @@ export type ClientMethod<P extends Procedure<Type, Type, Type>> = ((input: P["in
|
|
|
325
351
|
* A method that returns a `CancelablePromise`. Cancel it by calling `.cancel(reason)` on it, and wait for the request to resolve by awaiting the `request` property on the returned object.
|
|
326
352
|
*/
|
|
327
353
|
cancelable: (input: P["input"]["inferIn"], onProgress?: (progress: P["progress"]["inferOut"]) => void, requestId?: string) => CancelablePromise<P["success"]["inferOut"]>;
|
|
354
|
+
/**
|
|
355
|
+
* Send the request to specific nodes, or all nodes.
|
|
356
|
+
* Returns an array of results, one for each node the request was sent to.
|
|
357
|
+
* Each result is a {@link PromiseSettledResult}, with also an additional property, the node ID of the request
|
|
358
|
+
*/
|
|
359
|
+
broadcast: (input: P["input"]["inferIn"], onProgress?: (progress: P["progress"]["inferOut"]) => void,
|
|
360
|
+
/** Number of nodes to send the request to. Leave undefined to send to all nodes */
|
|
361
|
+
nodes?: number) => Promise<Array<PromiseSettledResult<P["success"]["inferOut"]> & {
|
|
362
|
+
node: string;
|
|
363
|
+
}>>;
|
|
328
364
|
};
|
|
329
365
|
/**
|
|
330
366
|
* Symbol used as the key for the procedures map on the server instance
|
|
@@ -338,4 +374,9 @@ export declare const zImplementations: unique symbol;
|
|
|
338
374
|
* @source
|
|
339
375
|
*/
|
|
340
376
|
export declare const zProcedures: unique symbol;
|
|
377
|
+
export type WorkerConstructor<T extends Worker | SharedWorker = Worker | SharedWorker> = {
|
|
378
|
+
new (opts?: {
|
|
379
|
+
name?: string;
|
|
380
|
+
}): T;
|
|
381
|
+
};
|
|
341
382
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swarpc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Full type-safe RPC library for service worker -- move things off of the UI thread with ease!",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"service-workers",
|
|
@@ -31,36 +31,51 @@
|
|
|
31
31
|
"dev": "tsc --watch",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"test": "vitest",
|
|
34
|
+
"check": "oxlint",
|
|
34
35
|
"typedoc": "typedoc",
|
|
35
36
|
"version": "kacl release && prettier -w CHANGELOG.md && git add CHANGELOG.md",
|
|
36
37
|
"typedoc:dev": "nodemon --watch src --watch README.md --watch typedoc.json --watch typedoc.css --exec npm run typedoc:withplugins",
|
|
37
38
|
"typedoc:serve": "npx sirv-cli --dev docs",
|
|
38
39
|
"typedoc:plugins": "node -e \"const fs=require('fs');const p=JSON.parse(fs.readFileSync('typedoc.json')).plugin||[];if(p.length)require('child_process').execSync('npm add --legacy-peer-deps -D '+p.join(' '),{stdio:'inherit'});else console.log('No plugins found');\"",
|
|
39
|
-
"typedoc:withplugins": "npm run typedoc:plugins && npm run typedoc"
|
|
40
|
+
"typedoc:withplugins": "npm run typedoc:plugins && npm run typedoc",
|
|
41
|
+
"prepare": "husky"
|
|
40
42
|
},
|
|
41
|
-
"
|
|
42
|
-
"arktype": "^2.1.
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"arktype": "^2.1.22"
|
|
43
45
|
},
|
|
44
46
|
"devDependencies": {
|
|
45
47
|
"@8hobbies/typedoc-plugin-plausible": "^2.2.0",
|
|
48
|
+
"@playwright/test": "^1.55.0",
|
|
46
49
|
"@vitest/web-worker": "^3.2.4",
|
|
50
|
+
"date-fns": "^4.1.0",
|
|
51
|
+
"husky": "^9.1.7",
|
|
47
52
|
"kacl": "^1.1.1",
|
|
53
|
+
"knip": "^5.63.1",
|
|
54
|
+
"lint-staged": "^16.1.6",
|
|
48
55
|
"nodemon": "^3.1.10",
|
|
56
|
+
"oxlint": "^1.14.0",
|
|
57
|
+
"pkg-pr-new": "^0.0.59",
|
|
49
58
|
"prettier": "^3.6.2",
|
|
50
59
|
"sirv-cli": "^3.0.1",
|
|
51
|
-
"typedoc": "^0.28.
|
|
60
|
+
"typedoc": "^0.28.12",
|
|
52
61
|
"typedoc-material-theme": "^1.4.0",
|
|
53
|
-
"typedoc-plugin-dt-links": "^2.0.
|
|
62
|
+
"typedoc-plugin-dt-links": "^2.0.18",
|
|
54
63
|
"typedoc-plugin-extras": "^4.0.1",
|
|
55
64
|
"typedoc-plugin-inline-sources": "^1.3.0",
|
|
56
65
|
"typedoc-plugin-mdn-links": "^5.0.9",
|
|
57
66
|
"typedoc-plugin-redirect": "^1.2.0",
|
|
58
67
|
"typescript": "^5.9.2",
|
|
59
|
-
"vite": "^7.1.
|
|
68
|
+
"vite": "^7.1.4",
|
|
60
69
|
"vitest": "^3.2.4"
|
|
61
70
|
},
|
|
62
71
|
"volta": {
|
|
63
|
-
"node": "
|
|
64
|
-
"npm": "11.
|
|
72
|
+
"node": "24.7.0",
|
|
73
|
+
"npm": "11.6.0"
|
|
74
|
+
},
|
|
75
|
+
"lint-staged": {
|
|
76
|
+
"*.{ts,js,md,json,yaml,yml}": [
|
|
77
|
+
"oxlint --fix",
|
|
78
|
+
"prettier --write"
|
|
79
|
+
]
|
|
65
80
|
}
|
|
66
81
|
}
|