From 9bf7df868eefd037643e2dbe55482d14af1924a7 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Mon, 18 Oct 2021 16:02:02 -0400 Subject: [PATCH] remove omitBy --- src/client/connection.ts | 58 ++++++++++++-------------- src/models/transactions/transaction.ts | 14 ++++++- src/utils/internalUtils.ts | 15 +++++++ 3 files changed, 54 insertions(+), 33 deletions(-) create mode 100644 src/utils/internalUtils.ts diff --git a/src/client/connection.ts b/src/client/connection.ts index 37f5f42e..d49f77d8 100644 --- a/src/client/connection.ts +++ b/src/client/connection.ts @@ -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) /* diff --git a/src/models/transactions/transaction.ts b/src/models/transactions/transaction.ts index 639a97d5..94b55ac8 100644 --- a/src/models/transactions/transaction.ts +++ b/src/models/transactions/transaction.ts @@ -166,9 +166,21 @@ export function validate(transaction: Record): 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, + fn: (value: unknown) => unknown, +): Record { + 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), {}) + ) +} diff --git a/src/utils/internalUtils.ts b/src/utils/internalUtils.ts new file mode 100644 index 00000000..9bf60c6c --- /dev/null +++ b/src/utils/internalUtils.ts @@ -0,0 +1,15 @@ +// NOTE: This should not be exported at the top level + +export function omitBy( + obj: Record, + fn: (unknown, string) => unknown, +): Record { + 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 {}