stock-symbol-lookup
v0.2.1
Published
A lookup service for stock symbols and company names.
Downloads
67
Maintainers
Readme
Stock Symbol Lookup
A promise based node service that looks up security names based on stock symbols or symbols based on security names.
by Nick Leoutsakos (https://github.com/nleoutsa)
TODO:
- Move away from FTP reliance so data can be loaded client side.
- Allow for sorting by trade volume or some other indicator (currently alphabetical).
Installation:
npm install stock-symbol-lookup --save
Include:
js:
var StockSymbolLookup = require('stock-symbol-lookup');
typescript:
import * as StockSymbolLookup from 'stock-symbol-lookup';
API:
loadData:
StockSymbolLookup.loadData()
.then((data) => {
// this can currently only be done server-side.
// data is now available to be searched inside or outside of this function.
});
setData:
StockSymbolLookup.setData(data)
.then((data) => {
// data is now available to be searched inside or outside of this function.
});
getData:
StockSymbolLookup.getData()
.then((data) => {
// get data after loadData (server-side only) or setData.
// data is now available to be searched inside or outside of this function.
});
data format:
data
is an object containing two arrays: data.symbols
and data.securities
:
data = {
symbols: [...],
securities: [...]
};
data.symbols
is an array containing 26 sub-arrays - one each for each letter of the English alphabet (This greatly speeds up filtering operations against symbols). Each sub-array contains all security objects for which the fist letter of the symbol matches the array index:
data.symbols = [
[
{
symbol:'AA',
securityName: 'Alcoa'
},
{
symbol:'AAPL',
securityName: 'Apple'
},
...
],
[
{
symbol:'BAC',
securityName: 'Bank of America'
},
...
],
...
];
data.securities
is an array of all security objects:
data.securities = [
{
symbol:'AA',
securityName: 'Alcoa'
},
{
symbol:'AAPL',
securityName: 'Apple'
},
{
symbol:'BAC',
securityName: 'Bank of America'
},
...
];
search:
Params:
- input: string
- string to be searched.
- maxEntries: number (optional)
- maximum number of entries to return.
- unique (optional)
- will only return securities that do not already appear in the list of returned symbols.
StockSymbolLookup.search(input, maxEntries, unique)
.then((data) => {
// data is an object.
// data.symbols contains the return values of searchBySymbol(input, maxEntries).
// data.securities contains the return values of searchBySecurity(input, maxEntries).
});
searchAll:
Params:
- input: string
- string to be searched.
- maxEntries: number (optional)
- maximum number of entries to return.
// searches by both symbol and security
StockSymbolLookup.searchAll(input, maxEntries)
.then((securities) => {
// securities is an array with max length of maxEntries.
// Each element of the array is an object representing one security.
// Symbol can be gotten via securities[INDEX].symbol.
// Security Name can be gotten via securities[INDEX].securityName.
});
searchBySymbol:
searchAll:
Params:
- input: string
- string to be searched.
- maxEntries: number (optional)
- maximum number of entries to return.
StockSymbolLookup.searchBySymbol(input, maxEntries)
.then((symbols) => {
// symbols is an array with max length of maxEntries.
// Each element of the array is an object representing one security.
// Security Name can be gotten via symbols[INDEX].securityName.
});
searchBySecurity:
searchAll:
Params:
- input: string
- string to be searched.
- maxEntries: number (optional)
- maximum number of entries to return.
StockSymbolLookup.searchBySecurity(input, maxEntries)
.then((securities) => {
// securities is an array with max length of maxEntries.
// Each element of the array is an object representing one security.
// Symbol can be gotten via securities[INDEX].symbol.
});