UNPKG

@web3auth/ws-embed

Version:

Embed script

75 lines (71 loc) 2.56 kB
'use strict'; var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); var constants = require('@toruslabs/constants'); var httpHelpers = require('@toruslabs/http-helpers'); var auth = require('@web3auth/auth'); var loglevel = require('./loglevel.js'); // utility functions /** * json-rpc-engine middleware that logs RPC errors and and validates req.method. * * @param log - The logging API to use. * @returns json-rpc-engine middleware function */ function createErrorMiddleware() { return ({ request, next }) => { if (typeof request.method !== "string" || !request.method) { loglevel.error(`The request 'method' must be a non-empty string.`, request); throw auth.rpcErrors.invalidRequest({ message: `The request 'method' must be a non-empty string.`, data: _objectSpread(_objectSpread({}, request || {}), {}, { cause: `The request 'method' must be a non-empty string.` }) }); } return next(); }; } /** * Logs a stream disconnection error. Emits an 'error' if given an * EventEmitter that has listeners for the 'error' event. * * @param log - The logging API to use. * @param remoteLabel - The label of the disconnected stream. * @param error - The associated error to log. * @param emitter - The logging API to use. */ function logStreamDisconnectWarning(remoteLabel, error, emitter) { let warningMsg = `Web3Auth: Lost connection to "${remoteLabel}".`; if (error !== null && error !== void 0 && error.stack) { warningMsg += `\n${error.stack}`; } loglevel.warn(warningMsg); if (emitter && emitter.listenerCount("error") > 0) { emitter.emit("error", warningMsg); } } const EMITTED_NOTIFICATIONS = ["eth_subscription" // per eth-json-rpc-filters/subscriptionManager ]; const signerHost = (buildEnv = auth.BUILD_ENV.PRODUCTION) => { return constants.DASHBOARD_PUBLIC_API_MAP[buildEnv]; }; const fetchProjectConfig = async ({ clientId, web3AuthNetwork, buildEnv }) => { const url = new URL(`${signerHost(buildEnv)}/api/v2/configuration`); url.searchParams.append("project_id", clientId); url.searchParams.append("network", web3AuthNetwork); if (buildEnv) url.searchParams.append("build_env", buildEnv); const res = await httpHelpers.get(url.href); return res; }; exports.EMITTED_NOTIFICATIONS = EMITTED_NOTIFICATIONS; exports.createErrorMiddleware = createErrorMiddleware; exports.fetchProjectConfig = fetchProjectConfig; exports.logStreamDisconnectWarning = logStreamDisconnectWarning; exports.signerHost = signerHost;