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

word-researcher

v1.0.5

Published

The package used to find a word inside a text using the KMP (Knuth–Morris–Pratt) algorithm

Downloads

5

Readme

Word researcher

The package aims to search a word inside a text. The tool is based on the KMP (Knuth–Morris–Pratt) algorithm.

The package came with many features like (findOne, findAll, history of search ...etc) and so many others, which some of them are already implemented, and the others will, soon.

Because of type's errors are the most common things developers encounter and deal with, I have used typescript to implement the package, which will make it more reliable to types.

Installation

Use the package manager npm

npm install word-researcher

or for yarn

yarn add word-researcher

Future features

For now, I've just created the find method, and the history of search. I am aiming to include other features rather than the ones mentioned above. The new features will be described down below :

  • Replacing the searched word in a text
  • Highlighting the searched word in text

Examples

here some examples about the tools provided by the package, I am going to listed them first with a simple description about what it is aiming to do, and then I will provide some examples clearifying their use, and how to combine them if it is possible.

This is the way how to import any tool :

    import { findOne, findAll, findAllWithSkip, history } from "word-researcher";

Description

@param text => string
@param word => string
@param options => Object
@returns position => number
@param text => string
@param word => string
@param options => Object
@returns position => number[]

The previous functionality may take options as an Object {}. The available options are described in the next section down below :

 options = {
    caseSensative: boolean,     # default => false
    skipXFirstResults: number,  # default => 0
    skipXLastResults: number,   # default => 0
 }

skipXFirstResults and skipXLastResults are only valid for findAllWithSkip method.

@param text => string
@param word => string
@param options => Object
@returns position => number[]
@param word => string
@param index => number
@returns => string
@returns => number

Note

each tool provided by this package is implemented independently of any other tool, it's up to the developers to use it the way they find it appropriate.

For example

The history and find tool are separately implemented and do not have any relation to each other, but the user is free to combine them.

import {findOne, history} from "word-researcher";

const text = "this is a new paragraph, it is used only for test";

# find the position of the word.
findOne(text, "is"); #result => 5
# and then store the word into the history
history.pushWord("is");