hubspot-company-cache
v0.5.0
Published
This maintains a local in-memory cache of hubspot companies
Downloads
4
Readme
Hubspot Company Cache
Hubspot has a spotty (heh) API which has some missing pieces. One of the worse is the inability to search companies without download them all. This is discuess in https://integrate.hubspot.com/t/search-for-companies-by-name/3024 on their forum.
They do have an API for getting recently created and recently modified companies. These can be used for maintaining a cache of companies. I wrote some code to support such a cache but due to complexity I didn't end up using it. My primary use was to reduce the duplication of companies by name. But instead I decided to do that manually. This code is for people who still need to do searching locally.
In order to use this code first install it
yarn add hubspot-company-cache
This package assumes you have a hubspot object from
https://github.com/brainflake/node-hubspot
that you can inject into it. I will call this hspot
throughout the documentation. Pass this into the
HubspotCompanyCache object thus:
import HubspotCompanyCache from 'hubspot-company-cache';
const companyCache = new HubspotCompanyCache(hspot);
Early in startup you might want to start the cache loading.
companyCache.fill();
If it doesn't finishg filling before your first call then your first call will block until it is done filling the cache.
You can use this to find companies by name like this:
companyCache.findCompanyInCache('My Company');
The current cache policy is to fill when there is a miss. There is no attempt to update companies once they are fetched.
At the moment I've just saved code that I ripped out of another codebase. I won't even claim it really works at the moment.
Thus the API isn't stable in any sense of the word.
Work to be done before this is something I would use includes
- Tests
- An interface to iterate over the cache (search other then name)
- Stable API
- Remove the few bits of lodash use to reduce weight.
- Remove dependence on https://github.com/brainflake/node-hubspot ( Note that I like this API, just a lot to drag in.)