Socket
Book a DemoInstallSign in
Socket

memoize-path

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

memoize-path

Easily create reusable, stackable file paths from memoized path segments.

latest
Source
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

memoize-path NPM version NPM downloads Build Status

Easily create reusable, stackable file paths from memoized path segments.

Install

Install with npm:

$ npm install memoize-path --save

Usage

A function is returned when a string is passed on the arguments. Otherwise the memoized value is returned either when the function is called (the memoized value is also exposed on the function's .path property);

Example

var memo = require('memoize-path');

/**
 * When a string is passed, a function is returned
 */

var cwd = memo(process.cwd()); 

// use `cwd`
var foo = cwd('foo');
var bar = cwd('bar');
var baz = cwd('baz');

// use `foo`
var qux = foo('a/b/c');
// use `qux`
var fez = qux('x/y/z');

/**
 * Get a memoized path by calling the function
 */

console.log(cwd());
//=> /User/dev/memo-path
console.log(foo());
//=> /User/dev/memo-path/foo
console.log(bar());
//=> /User/dev/memo-path/bar
console.log(baz());
//=> /User/dev/memo-path/baz
console.log(qux());
//=> /User/dev/memo-path/foo/a/b/c
console.log(fez());
//=> /User/dev/memo-path/foo/a/b/c/x/y/z

/**
 * The memoized path is also exposed on the function's `.path` property
 */

console.log(cwd.path);
//=> /User/dev/memo-path
console.log(foo.path);
//=> /User/dev/memo-path/foo
console.log(bar.path);
//=> /User/dev/memo-path/bar
console.log(baz.path);
//=> /User/dev/memo-path/baz
console.log(qux.path);
//=> /User/dev/memo-path/foo/a/b/c
console.log(fez.path);
//=> /User/dev/memo-path/foo/a/b/c/x/y/z

/**
 * The parent directory is exposed as `.parent`
 */

console.log(cwd.path);
//=> /User/dev
console.log(foo.path);
//=> /User/dev/memo-path
console.log(bar.path);
//=> /User/dev/memo-path
console.log(baz.path);
//=> /User/dev/memo-path
console.log(qux.path);
//=> /User/dev/memo-path/foo/a/b/c
console.log(fez.path);
//=> /User/dev/memo-path/foo/a/b/c/x/y/z

You might also be interested in these projects:

  • is-absolute: Returns true if a file path is absolute. | homepage
  • is-relative: Returns true if the path appears to be relative. | homepage
  • micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just… more | homepage
  • parse-filepath: Parse a filepath into an object. Falls back on the native node.js path.parse method if… more | homepage
  • relative: Get the relative filepath from path A to path B. Calculates from file-to-directory, file-to-file, directory-to-file,… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with verb:

$ npm install verb && npm run docs

Or, if verb is installed globally:

$ verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.

This file was generated by verb, v, on March 27, 2016.

Keywords

memoize

FAQs

Package last updated on 28 Mar 2016

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