mirror of
https://github.com/Xahau/xahau.js.git
synced 2026-06-05 01:36:47 +00:00
remove omitBy
This commit is contained in:
@@ -62,29 +62,26 @@ function getAgent(url: string, config: ConnectionOptions): Agent | undefined {
|
||||
const parsedURL = new URL(url)
|
||||
const parsedProxyURL = new URL(config.proxy)
|
||||
|
||||
const proxyOptions = _.omitBy(
|
||||
{
|
||||
secureEndpoint: parsedURL.protocol === 'wss:',
|
||||
secureProxy: parsedProxyURL.protocol === 'https:',
|
||||
auth: config.proxyAuthorization,
|
||||
ca: config.trustedCertificates,
|
||||
key: config.key,
|
||||
passphrase: config.passphrase,
|
||||
cert: config.certificate,
|
||||
href: parsedProxyURL.href,
|
||||
origin: parsedProxyURL.origin,
|
||||
protocol: parsedProxyURL.protocol,
|
||||
username: parsedProxyURL.username,
|
||||
password: parsedProxyURL.password,
|
||||
host: parsedProxyURL.host,
|
||||
hostname: parsedProxyURL.hostname,
|
||||
port: parsedProxyURL.port,
|
||||
pathname: parsedProxyURL.pathname,
|
||||
search: parsedProxyURL.search,
|
||||
hash: parsedProxyURL.hash,
|
||||
},
|
||||
(value) => value == null,
|
||||
)
|
||||
const proxyOptions = {
|
||||
secureEndpoint: parsedURL.protocol === 'wss:',
|
||||
secureProxy: parsedProxyURL.protocol === 'https:',
|
||||
auth: config.proxyAuthorization,
|
||||
ca: config.trustedCertificates,
|
||||
key: config.key,
|
||||
passphrase: config.passphrase,
|
||||
cert: config.certificate,
|
||||
href: parsedProxyURL.href,
|
||||
origin: parsedProxyURL.origin,
|
||||
protocol: parsedProxyURL.protocol,
|
||||
username: parsedProxyURL.username,
|
||||
password: parsedProxyURL.password,
|
||||
host: parsedProxyURL.host,
|
||||
hostname: parsedProxyURL.hostname,
|
||||
port: parsedProxyURL.port,
|
||||
pathname: parsedProxyURL.pathname,
|
||||
search: parsedProxyURL.search,
|
||||
hash: parsedProxyURL.hash,
|
||||
}
|
||||
|
||||
let HttpsProxyAgent: new (opt: typeof proxyOptions) => Agent
|
||||
try {
|
||||
@@ -118,15 +115,12 @@ function createWebSocket(
|
||||
const base64 = Buffer.from(config.authorization).toString('base64')
|
||||
options.headers = { Authorization: `Basic ${base64}` }
|
||||
}
|
||||
const optionsOverrides = _.omitBy(
|
||||
{
|
||||
ca: config.trustedCertificates,
|
||||
key: config.key,
|
||||
passphrase: config.passphrase,
|
||||
cert: config.certificate,
|
||||
},
|
||||
(value) => value == null,
|
||||
)
|
||||
const optionsOverrides = {
|
||||
ca: config.trustedCertificates,
|
||||
key: config.key,
|
||||
passphrase: config.passphrase,
|
||||
cert: config.certificate,
|
||||
}
|
||||
const websocketOptions = { ...options, ...optionsOverrides }
|
||||
const websocket = new WebSocket(url, websocketOptions)
|
||||
/*
|
||||
|
||||
@@ -166,9 +166,21 @@ export function validate(transaction: Record<string, unknown>): void {
|
||||
if (
|
||||
!_.isEqual(
|
||||
decode(encode(tx)),
|
||||
_.omitBy(tx, (value) => value == null),
|
||||
omitBy(tx, (value) => value == null),
|
||||
)
|
||||
) {
|
||||
throw new ValidationError(`Invalid Transaction: ${tx.TransactionType}`)
|
||||
}
|
||||
}
|
||||
|
||||
function omitBy(
|
||||
obj: Record<string, unknown>,
|
||||
fn: (value: unknown) => unknown,
|
||||
): Record<string, unknown> {
|
||||
return (
|
||||
Object.keys(obj)
|
||||
.filter((key) => !fn(obj[key]))
|
||||
// eslint-disable-next-line no-return-assign -- it's fine
|
||||
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {})
|
||||
)
|
||||
}
|
||||
|
||||
15
src/utils/internalUtils.ts
Normal file
15
src/utils/internalUtils.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
// NOTE: This should not be exported at the top level
|
||||
|
||||
export function omitBy(
|
||||
obj: Record<string, unknown>,
|
||||
fn: (unknown, string) => unknown,
|
||||
): Record<string, unknown> {
|
||||
return (
|
||||
Object.keys(obj)
|
||||
.filter((key) => !fn(obj[key], key))
|
||||
// eslint-disable-next-line no-return-assign -- it's fine
|
||||
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {})
|
||||
)
|
||||
}
|
||||
|
||||
export function groupBy(): void {}
|
||||
Reference in New Issue
Block a user