vfile-rename

vfile utility to rename the path parts of a file

Usage no npm install needed!

<script type="module">
  import vfileRename from 'https://cdn.skypack.dev/vfile-rename';
</script>

README

vfile-rename

Build Coverage Downloads Size Sponsors Backers Chat

Rename a vfile.

Install

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

npm:

npm install vfile-rename

Use

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

API

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

Parameters
  • renames (string, Function, Spec, or Array.<rename>, optional)
Returns

The given file.

convert(renames)

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

Parameters
  • renames (string, Function, Spec, or Array.<rename>, optional)
Returns

A move.

move(file)

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

  • If there is no bound rename (it’s null or undefined), makes sure file is a VFile
  • If the bound rename is a normal string starting with a dot (.), sets file.extname
  • Otherwise, if the bound rename is a normal string, sets file.basename
  • If the bound test is an array, all renames in it are performed
  • Otherwise, if the bound rename is an object, renames according to the Spec

Spec

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.

Contribute

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.

License

MIT © Titus Wormer