stock-symbol-lookup
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

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.
    });

Package Sidebar

Install

npm i stock-symbol-lookup

Weekly Downloads

9

Version

0.2.1

License

MIT

Last publish

Collaborators

  • nleoutsa