Neutered Paranoid Meerkat

    trie-d

    1.0.6 • Public • Published

    node-trie

    npm : trie-d

    npm version coverage build status downloads downloads monthly

    Simple trie data structure representation in javascript. Perfect for search on key-press.

    Features

    • Provides near match result for strings only.
    • Delimiter supports positive integer (count of characters), a regex or string.
    • Supports soft delete of strings (will not appear in the search result)
    • Supports add all , remove all and near match all. Accepts array of strings for processing the stated functionality.

    Usage

    Instantiation

    Following ways can be used to instantiate a Trie.

     const Trie = require('trie-d');
     const trie = new Trie(); // Without delimiter, splits string by each character.
     const trieWithRegDelimiter = new Trie ({delimiter : '/n'}); // Regex delimiter (should split string by new line)
     const trieWithCountDelimiter = new Trie({delimiter : 10}); // Count delimiter, splits string by number of 10 characters from start index.
     const trieWithCharacterDelimiter = new Trie({delimiter : 'c'}); // splits string at every instance of character `c`
    

    Addition of Elements

    Following ways can be used to add elements to a Trie

    // from previous referrences
    const inputs = ['abc', 'abcd', 'abcdef', 'abcdefgh', 'abcdefg', 'abcf', 'abcaad', 'ab', 'nabc','afg', 'naa', 'de', 'z'];
    trie.addAll(inputs); // add all functionality
    trieWithRegDelimiter.add("This is amazing.\n I am so happy!\n"); //single element addition.
    
    

    Searching of Elements

    Following methods can be used to search elements. Each element is delimited based on the trie's delimiter definition. The result is lexicographically sorted.

    // from previous referrences
    const result = trie.nearMatch('abc'); 
    // result = ['abc', 'abcd', 'abcdef', 'abcdefgh', 'abcdefg', 'abcf', 'abcaad'];
    
    const resultAll = trie.nearMatch(['abc', 'na']); // multi string search. The result is union of all key word's result. 
    // resultAll = ['abc', 'abcd', 'abcdef', 'abcdefgh', 'abcdefg', 'abcf', 'abcaad', 'naa', 'nabc'];
    

    Removal (soft delete) of Elements

    Soft-delete of strings, does not delete the string, but disables it from search.

    // from previous referrences
    
    const result = trie.nearMatch('abc'); 
    // result = ['abc', 'abcd', 'abcdef', 'abcdefgh', 'abcdefg', 'abcf', 'abcaad'];
    trie.remove('abc');
    const resultAfterRemoval = trie.nearMatch('abc');
    // resultAfterRemoval = ['abcd', 'abcdef', 'abcdefgh', 'abcdefg', 'abcf', 'abcaad']; // no word `abc`
    
    trie.removeAll(['abcd', 'abcf']); // multi removal.
    const resultPostMultiRemoval = trie.nearMatch('abc');
    // resultPostMultiRemoval = ['abcdef', 'abcdefgh', 'abcdefg', 'abcaad']; // no word `abcd` and `abcf`
    
    

    Installation

    npm install trie-d

    Test

    npm test

    Install

    npm i trie-d

    DownloadsWeekly Downloads

    1,024

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    38.7 kB

    Total Files

    14

    Last publish

    Collaborators

    • sushimmdutta