Notoriously Punctual Manatee
    Wondering what’s next for npm?Check out our public roadmap! »

    map-dest

    0.1.8 • Public • Published

    map-dest NPM version

    Map the destination path for a file based on the given source path and options.

    Install

    Install with npm

    $ npm i map-dest --save

    Usage

    var mapDest = require('map-dest');

    Table of contents

    docs

    src

    Returns an array when src is an array

    mapDest(['a.txt', 'b.txt'], 'dist');
    // [ { options: {}, src: 'a.txt', dest: 'dist/a.txt' },
    //   { options: {}, src: 'b.txt', dest: 'dist/b.txt' } ]

    dest

    Creates a dest when no dest argument is passed.

    mapDest('a/b/c.txt');
    // [{ options: {}, src: 'a/b/c.txt', dest: 'a/b/c.txt' }]

    When no dest is defined and src is an array, returns an array with generated dest paths.

    mapDest(['a.txt', 'b.txt']);
    // [ { options: {}, src: 'a.txt', dest: 'a.txt' },
    //   { options: {}, src: 'b.txt', dest: 'b.txt' } ]

    options

    options.flatten

    Flattens dest when no dest argument is passed:

    mapDest('a/b/c.txt', {flatten: true});
    // [{ options: { flatten: true }, src: 'a/b/c.txt', dest: 'c.txt' }]

    options.ext

    Replaces the destination extension with given ext:

    mapDest('a/b/c.txt', {ext: '.foo'});
    // [{ options: { ext: '.foo', extDot: 'first' },
    //   src: 'a/b/c.txt',
    //   dest: 'a/b/c.foo' }]

    options.cwd

    When cwd is defined it will be prepended to src:

    mapDest('a/b/c.txt', {cwd: 'one/two'});
    // [{ options: { cwd: 'one/two' },
    //   src: 'one/two/a/b/c.txt',
    //   dest: 'a/b/c.txt' }]

    Prepends cwd to src and flattens dest:

    mapDest('a/b/c.txt', {cwd: 'one/two', flatten: true});
    // [{ options: { cwd: 'one/two', flatten: true },
    //   src: 'one/two/a/b/c.txt',
    //   dest: 'c.txt' }]

    Expands tildes in cwd to make the path relative to the user's home directory:

    mapDest('a/b/c.txt', {cwd: '~/one/two'});
    // [{ options: { cwd: '/User/jonschlinkert/one/two', flatten: true },
    //   src: 'one/two/a/b/c.txt',
    //   dest: 'c.txt' }]

    Expands @ in cwd to make the path relative to global npm modules:

    mapDest('templates/base.hbs', {cwd: '@/boilerplate-h5bp'});
    // [ { options: { cwd: '/usr/local/lib/node_modules/boilerplate-h5bp' },
    //     src: '/usr/local/lib/node_modules/boilerplate-h5bp/templates/base.hbs',
    //     dest: 'templates/base.hbs' } ]

    options.destBase

    If destBase is defined it's prepended to generated dest.

    mapDest('a/b/c.txt', {destBase: 'one/two'});
    // [{ options: { destBase: 'one/two' },
    //   src: 'a/b/c.txt',
    //   dest: 'one/two/a/b/c.txt' }]

    If destBase is defined, it will be prepended to dest

    mapDest('a/b/c.txt', 'foo', {destBase: 'one/two'});
    // [{ options: { destBase: 'one/two' },
    //   src: 'a/b/c.txt',
    //   dest: 'one/two/foo/a/b/c.txt' }]

    options.rename

    A custom rename function can be used to modify the generated dest path.

    mapDest('a/b/c.md', {
      rename: function (dest, src, opts) {
        return 'dist/' + path.basename(src) + '.html';
      }
    });
    // [{ options: { rename: [Function] },
    //   src: 'a/b/c.md',
    //   dest: 'dist/c.html' }]

    Related projects

    Test coverage

    -----------|----------|----------|----------|----------|----------------|
    File       |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
    -----------|----------|----------|----------|----------|----------------|
     map-dest/ |      100 |      100 |      100 |      100 |                |
      index.js |      100 |      100 |      100 |      100 |                |
    -----------|----------|----------|----------|----------|----------------|
    All files  |      100 |      100 |      100 |      100 |                |
    -----------|----------|----------|----------|----------|----------------|
    

    Running tests

    Install dev dependencies:

    $ npm i -d && npm test

    Contributing

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

    Author

    Jon Schlinkert

    License

    Copyright © 2015 Jon Schlinkert Released under the MIT license.


    This file was generated by verb-cli on October 30, 2015.

    Install

    npm i map-dest

    DownloadsWeekly Downloads

    11

    Version

    0.1.8

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar