Project: vfile/vfile-rename

Package: vfile-rename@2.0.0

  1. Dependents: 0
  2. vfile utility to rename the path parts of a file
  1. util 143
  2. utility 139
  3. file 34
  4. virtual 19
  5. vfile 17
  6. vfile-util 15
  7. check 11
  8. move 3


Build Coverage Downloads Size Sponsors Backers Chat

Rename a vfile.


This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.


npm install vfile-rename


import {toVFile as vfile} from 'to-vfile'
import {rename} from 'vfile-rename'

var file = vfile('readme.md')
file.path // => readme.md

// Set extname:
rename(file, '.html')
file.path // => readme.html

// Set basename:
rename(file, 'main.md')
file.path // => main.md

// Set path properties:
rename(file, {stem: 'index'})
file.path // => index.md

// Change path properties:
rename(file, {stem: {suffix: '.bak'}})
file.path // => index.bak.md

// All together:
rename(file, ['readme.md', '.htm', {stem: 'index', extname: {suffix: 'l'}}])
file.path // => index.html


This package exports the following identifiers: rename, convert. There is no default export.

rename(file, renames)

Renames the given file with renames.

Converts renames to a move, and calls that move with file. If you’re doing a lot of renames, use convert (rename.convert or require('vfile-rename/convert') directly).


The given file.


Create a function (the move) from renames, that when given a file changes its path properties.


A move.


When given something, returns a vfile from that, and changes its path properties.


A spec is an object describing path properties to values. For each property in spec, if its value is string, the value of the path property on the given file is set. If the value is object, it can have a prefix or suffix key, the value of the path property on the given file is prefixed and/or suffixed.

Note that only allowed path properties can be set, other properties are thrown for.


See contributing.md in vfile/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.


MIT © Titus Wormer