npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

stock-symbol-lookup

v0.2.1

Published

A lookup service for stock symbols and company names.

Downloads

42

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