JSPM

memoize-path

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q42710F
  • License MIT

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

Package Exports

  • memoize-path

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (memoize-path) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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');

var cwd = memo(process.cwd());
// cwd is a function, since a string was passed
var foo = cwd('foo');
var bar = cwd('bar');
var baz = cwd('baz');

var qux = foo('a/b/c');
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

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
  • 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.