@rstest/core 0.6.0 → 0.6.2
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/LICENSE.md +0 -14
- package/dist/0~171.js +4 -6
- package/dist/0~204.js +67 -77
- package/dist/0~263.js +1423 -0
- package/dist/0~350.js +30 -373
- package/dist/0~365.js +92 -0
- package/dist/0~463.js +331 -0
- package/dist/0~470.js +382 -0
- package/dist/0~535.js +10 -0
- package/dist/0~607.js +119 -0
- package/dist/0~610.js +10 -0
- package/dist/0~673.js +10 -0
- package/dist/0~691.js +74 -82
- package/dist/0~711.js +30 -373
- package/dist/0~763.js +10 -0
- package/dist/0~764.js +13284 -0
- package/dist/0~814.js +900 -0
- package/dist/0~830.js +1130 -0
- package/dist/0~836.js +13 -21
- package/dist/0~971.js +130 -136
- package/dist/597.js +174 -0
- package/dist/603.js +41 -0
- package/dist/808.js +167 -0
- package/dist/857.js +3252 -0
- package/dist/index.js +2394 -5971
- package/dist/mockRuntimeCode.js +11 -4
- package/dist/runtime.js +60 -0
- package/dist/worker.js +155 -1389
- package/dist-types/index.d.ts +25 -3
- package/dist-types/worker.d.ts +9 -2
- package/package.json +3 -3
- package/dist/0~33.js +0 -425
- package/dist/0~414.js +0 -16
- package/dist/0~493.js +0 -126
- package/dist/0~603.js +0 -50
- package/dist/0~628.js +0 -1089
- package/dist/0~655.js +0 -11533
- package/dist/0~85.js +0 -1819
- package/dist/0~873.js +0 -1220
- package/dist/0~928.js +0 -1432
- package/dist/0~967.js +0 -99
- /package/dist/{0~928.js.LICENSE.txt → 0~263.js.LICENSE.txt} +0 -0
- /package/dist/{0~655.js.LICENSE.txt → 0~764.js.LICENSE.txt} +0 -0
package/dist/808.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import 'module';
|
|
2
|
+
/*#__PURE__*/ import.meta.url;
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
+
import node_v8 from "node:v8";
|
|
5
|
+
const TYPE_REQUEST = "q";
|
|
6
|
+
const TYPE_RESPONSE = "s";
|
|
7
|
+
const DEFAULT_TIMEOUT = 6e4;
|
|
8
|
+
function defaultSerialize(i) {
|
|
9
|
+
return i;
|
|
10
|
+
}
|
|
11
|
+
const defaultDeserialize = defaultSerialize;
|
|
12
|
+
const { clearTimeout: dist_clearTimeout, setTimeout: dist_setTimeout } = globalThis;
|
|
13
|
+
const random = Math.random.bind(Math);
|
|
14
|
+
function createBirpc(functions, options) {
|
|
15
|
+
const { post, on, off = ()=>{}, eventNames = [], serialize = defaultSerialize, deserialize = defaultDeserialize, resolver, bind = "rpc", timeout = DEFAULT_TIMEOUT } = options;
|
|
16
|
+
const rpcPromiseMap = /* @__PURE__ */ new Map();
|
|
17
|
+
let _promise;
|
|
18
|
+
let closed = false;
|
|
19
|
+
const rpc = new Proxy({}, {
|
|
20
|
+
get (_, method) {
|
|
21
|
+
if ("$functions" === method) return functions;
|
|
22
|
+
if ("$close" === method) return close;
|
|
23
|
+
if ("$rejectPendingCalls" === method) return rejectPendingCalls;
|
|
24
|
+
if ("$closed" === method) return closed;
|
|
25
|
+
if ("then" === method && !eventNames.includes("then") && !("then" in functions)) return;
|
|
26
|
+
const sendEvent = (...args)=>{
|
|
27
|
+
post(serialize({
|
|
28
|
+
m: method,
|
|
29
|
+
a: args,
|
|
30
|
+
t: TYPE_REQUEST
|
|
31
|
+
}));
|
|
32
|
+
};
|
|
33
|
+
if (eventNames.includes(method)) {
|
|
34
|
+
sendEvent.asEvent = sendEvent;
|
|
35
|
+
return sendEvent;
|
|
36
|
+
}
|
|
37
|
+
const sendCall = async (...args)=>{
|
|
38
|
+
if (closed) throw new Error(`[birpc] rpc is closed, cannot call "${method}"`);
|
|
39
|
+
if (_promise) try {
|
|
40
|
+
await _promise;
|
|
41
|
+
} finally{
|
|
42
|
+
_promise = void 0;
|
|
43
|
+
}
|
|
44
|
+
return new Promise((resolve, reject)=>{
|
|
45
|
+
const id = nanoid();
|
|
46
|
+
let timeoutId;
|
|
47
|
+
if (timeout >= 0) {
|
|
48
|
+
timeoutId = dist_setTimeout(()=>{
|
|
49
|
+
try {
|
|
50
|
+
const handleResult = options.onTimeoutError?.(method, args);
|
|
51
|
+
if (true !== handleResult) throw new Error(`[birpc] timeout on calling "${method}"`);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
reject(e);
|
|
54
|
+
}
|
|
55
|
+
rpcPromiseMap.delete(id);
|
|
56
|
+
}, timeout);
|
|
57
|
+
if ("object" == typeof timeoutId) timeoutId = timeoutId.unref?.();
|
|
58
|
+
}
|
|
59
|
+
rpcPromiseMap.set(id, {
|
|
60
|
+
resolve,
|
|
61
|
+
reject,
|
|
62
|
+
timeoutId,
|
|
63
|
+
method
|
|
64
|
+
});
|
|
65
|
+
post(serialize({
|
|
66
|
+
m: method,
|
|
67
|
+
a: args,
|
|
68
|
+
i: id,
|
|
69
|
+
t: "q"
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
sendCall.asEvent = sendEvent;
|
|
74
|
+
return sendCall;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
function close(customError) {
|
|
78
|
+
closed = true;
|
|
79
|
+
rpcPromiseMap.forEach(({ reject, method })=>{
|
|
80
|
+
const error = new Error(`[birpc] rpc is closed, cannot call "${method}"`);
|
|
81
|
+
if (customError) {
|
|
82
|
+
customError.cause ??= error;
|
|
83
|
+
return reject(customError);
|
|
84
|
+
}
|
|
85
|
+
reject(error);
|
|
86
|
+
});
|
|
87
|
+
rpcPromiseMap.clear();
|
|
88
|
+
off(onMessage);
|
|
89
|
+
}
|
|
90
|
+
function rejectPendingCalls(handler) {
|
|
91
|
+
const entries = Array.from(rpcPromiseMap.values());
|
|
92
|
+
const handlerResults = entries.map(({ method, reject })=>{
|
|
93
|
+
if (!handler) return reject(new Error(`[birpc]: rejected pending call "${method}".`));
|
|
94
|
+
return handler({
|
|
95
|
+
method,
|
|
96
|
+
reject
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
rpcPromiseMap.clear();
|
|
100
|
+
return handlerResults;
|
|
101
|
+
}
|
|
102
|
+
async function onMessage(data, ...extra) {
|
|
103
|
+
let msg;
|
|
104
|
+
try {
|
|
105
|
+
msg = deserialize(data);
|
|
106
|
+
} catch (e) {
|
|
107
|
+
if (options.onGeneralError?.(e) !== true) throw e;
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (msg.t === TYPE_REQUEST) {
|
|
111
|
+
const { m: method, a: args } = msg;
|
|
112
|
+
let result, error;
|
|
113
|
+
const fn = await (resolver ? resolver(method, functions[method]) : functions[method]);
|
|
114
|
+
if (fn) try {
|
|
115
|
+
result = await fn.apply("rpc" === bind ? rpc : functions, args);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
error = e;
|
|
118
|
+
}
|
|
119
|
+
else error = new Error(`[birpc] function "${method}" not found`);
|
|
120
|
+
if (msg.i) {
|
|
121
|
+
if (error && options.onError) options.onError(error, method, args);
|
|
122
|
+
if (error && options.onFunctionError) {
|
|
123
|
+
if (true === options.onFunctionError(error, method, args)) return;
|
|
124
|
+
}
|
|
125
|
+
if (!error) try {
|
|
126
|
+
post(serialize({
|
|
127
|
+
t: TYPE_RESPONSE,
|
|
128
|
+
i: msg.i,
|
|
129
|
+
r: result
|
|
130
|
+
}), ...extra);
|
|
131
|
+
return;
|
|
132
|
+
} catch (e) {
|
|
133
|
+
error = e;
|
|
134
|
+
if (options.onGeneralError?.(e, method, args) !== true) throw e;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
post(serialize({
|
|
138
|
+
t: TYPE_RESPONSE,
|
|
139
|
+
i: msg.i,
|
|
140
|
+
e: error
|
|
141
|
+
}), ...extra);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
if (options.onGeneralError?.(e, method, args) !== true) throw e;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
const { i: ack, r: result, e: error } = msg;
|
|
148
|
+
const promise = rpcPromiseMap.get(ack);
|
|
149
|
+
if (promise) {
|
|
150
|
+
dist_clearTimeout(promise.timeoutId);
|
|
151
|
+
if (error) promise.reject(error);
|
|
152
|
+
else promise.resolve(result);
|
|
153
|
+
}
|
|
154
|
+
rpcPromiseMap.delete(ack);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
_promise = on(onMessage);
|
|
158
|
+
return rpc;
|
|
159
|
+
}
|
|
160
|
+
const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
161
|
+
function nanoid(size = 21) {
|
|
162
|
+
let id = "";
|
|
163
|
+
let i = size;
|
|
164
|
+
while(i--)id += urlAlphabet[64 * random() | 0];
|
|
165
|
+
return id;
|
|
166
|
+
}
|
|
167
|
+
export { createBirpc, fileURLToPath, node_v8, pathToFileURL };
|