full site update
This commit is contained in:
86
node_modules/crossws/dist/shared/crossws.D9ehKjSh.mjs
generated
vendored
Normal file
86
node_modules/crossws/dist/shared/crossws.D9ehKjSh.mjs
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
class AdapterHookable {
|
||||
options;
|
||||
constructor(options) {
|
||||
this.options = options || {};
|
||||
}
|
||||
callHook(name, arg1, arg2) {
|
||||
const globalHook = this.options.hooks?.[name];
|
||||
const globalPromise = globalHook?.(arg1, arg2);
|
||||
const resolveHooksPromise = this.options.resolve?.(arg1);
|
||||
if (!resolveHooksPromise) {
|
||||
return globalPromise;
|
||||
}
|
||||
const resolvePromise = resolveHooksPromise instanceof Promise ? resolveHooksPromise.then((hooks) => hooks?.[name]) : resolveHooksPromise?.[name];
|
||||
return Promise.all([globalPromise, resolvePromise]).then(
|
||||
([globalRes, hook]) => {
|
||||
const hookResPromise = hook?.(arg1, arg2);
|
||||
return hookResPromise instanceof Promise ? hookResPromise.then((hookRes) => hookRes || globalRes) : hookResPromise || globalRes;
|
||||
}
|
||||
);
|
||||
}
|
||||
async upgrade(request) {
|
||||
let context = request.context;
|
||||
if (!context) {
|
||||
context = {};
|
||||
Object.defineProperty(request, "context", {
|
||||
enumerable: true,
|
||||
value: context
|
||||
});
|
||||
}
|
||||
try {
|
||||
const res = await this.callHook(
|
||||
"upgrade",
|
||||
request
|
||||
);
|
||||
if (!res) {
|
||||
return { context };
|
||||
}
|
||||
if (res.ok === false) {
|
||||
return { context, endResponse: res };
|
||||
}
|
||||
if (res.headers) {
|
||||
return {
|
||||
context,
|
||||
upgradeHeaders: res.headers
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
const errResponse = error.response || error;
|
||||
if (errResponse instanceof Response) {
|
||||
return {
|
||||
context,
|
||||
endResponse: errResponse
|
||||
};
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
return { context };
|
||||
}
|
||||
}
|
||||
function defineHooks(hooks) {
|
||||
return hooks;
|
||||
}
|
||||
|
||||
function adapterUtils(peers) {
|
||||
return {
|
||||
peers,
|
||||
publish(topic, message, options) {
|
||||
let firstPeerWithTopic;
|
||||
for (const peer of peers) {
|
||||
if (peer.topics.has(topic)) {
|
||||
firstPeerWithTopic = peer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (firstPeerWithTopic) {
|
||||
firstPeerWithTopic.send(message, options);
|
||||
firstPeerWithTopic.publish(topic, message, options);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function defineWebSocketAdapter(factory) {
|
||||
return factory;
|
||||
}
|
||||
|
||||
export { AdapterHookable as A, adapterUtils as a, defineWebSocketAdapter as b, defineHooks as d };
|
Reference in New Issue
Block a user