New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dirp

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dirp

A key-value in-memory store using tokenized path as a key.

0.6.0
latest
npm
Version published
Weekly downloads
77
Maintainers
1
Weekly downloads
 
Created
Source

dirp

dirp - a key-value in-memory store using tokenized path as a key.

Features

  • Internally manages values in a tree structure:
    • unset() can remove all values under the same path (performance)
    • Sharing upstream paths saves memory size (efficiency)
  • Accessing non-existing path returns undefined (safety)

Installation

$ npm install dirp --save

Examples

var capitals = require('dirp').create();
capitals.set('us.alabama', 'montgomery');
capitals.set('us.california', 'sacramento');
capitals.set('jp.tokyo', 'shinjuku');
capitals.set('jp.osaka', 'osaka');
 
console.log(capitals.get('us.alabama'));
// montgomery
 
console.log(capitals.get('us.california'));
// sacramento
 
console.log(capitals.raw());
// { us: { alabama: 'montgomery', california: 'sacramento' },
//   jp: { tokyo: 'shinjuku', osaka: 'osaka' } }

console.log(capitals.get('us.tokyo')); // incorrect
// undefined
 
capitals.unset('us'); // clear all data at paths that start with 'us' 
console.log(capitals.raw());
// { jp: { tokyo: 'shinjuku', osaka: 'osaka' } }

API

Module Methods

create (creates a new instance of "Dirp"(an internal class))
create() => instance {Dirp}
create(delimiter) => instance {Dirp}
create(delimiter, data) => instance {Dirp}
create(data) => instance {Dirp}
    delimiter {string} Path delimiter. Defaults to '.'
    data {object} Data to be imported.
  • e.g. "products.users.name", "app/lib/test", "country:state:city" ...
  • For data, see import section below.

Instance Methods

set (sets the path to a value)
set(path, value) => {boolean}
    path {string} Path to a value
    value {any} Arbitrary value
    returns true on success
get (gets a value at the path)
get(path) => {any}
    path {string} Path to a value
  • undefined is returned if the path is not a leaf.
unset (unsets value at the path)
unset(path) => {boolean}
    path {string} Path to be unset
    returns true on success
exists (tests if the path exists)
exists(path) => {boolean}
    path {string} Path to be tested
raw (returns a raw data {object})
raw() => {object}
  • This returns a direct reference to the internal data. Any modification to the object will affect the source.
clone (returns a new instance of Dirp with a deep-copy of its raw data)
clone() => {Dirp}
  • It only deep-copies stringifiable data. If a value passed to set() contains a getter/setter, or properties that are not enumerable, those would be ignored. (Note: this may change in the future)
import (imports data into derp)
import(data) => {void}
    data {object} Object to be imported. e.g { 'user.name': 'foo', 'user.age': 27 } // a list of `path`:`value` pairs.
  • Throws if the data is not a valid object.
export (returns exported object)
export() => {object}
    data {object} Exported object with a list of `path`:`value` pairs.

Keywords

directory

FAQs

Package last updated on 14 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts