Nuanced Pumpkin Mavens

    filenamify
    TypeScript icon, indicating that this package has built-in type declarations

    5.1.1 • Public • Published

    filenamify

    Convert a string to a valid safe filename

    On Unix-like systems, / is reserved. On Windows, <>:"/\|?* along with trailing periods are reserved.

    Install

    npm install filenamify

    Usage

    import filenamify from 'filenamify';
    
    filenamify('<foo/bar>');
    //=> 'foo!bar'
    
    filenamify('foo:"bar"', {replacement: '🐴'});
    //=> 'foo🐴bar'

    API

    filenamify(string, options?)

    Convert a string to a valid filename.

    filenamifyPath(path, options?)

    Convert the filename in a path a valid filename and return the augmented path.

    import {filenamifyPath} from 'filenamify';
    
    filenamifyPath('foo:bar');
    //=> 'foo!bar'

    options

    Type: object

    replacement

    Type: string
    Default: '!'

    String to use as replacement for reserved filename characters.

    Cannot contain: < > : " / \ | ? *

    maxLength

    Type: number
    Default: 100

    Truncate the filename to the given length.

    Only the base of the filename is truncated, preserving the extension. If the extension itself is longer than maxLength, you will get a string that is longer than maxLength, so you need to check for that if you allow arbitrary extensions.

    Systems generally allow up to 255 characters, but we default to 100 for usability reasons.

    Browser-only import

    You can also import filenamify/browser, which only imports filenamify and not filenamifyPath, which relies on path being available or polyfilled. Importing filenamify this way is therefore useful when it is shipped using webpack or similar tools, and if filenamifyPath is not needed.

    import filenamify from 'filenamify/browser';
    
    filenamify('<foo/bar>');
    //=> 'foo!bar'

    Related

    Install

    npm i filenamify

    DownloadsWeekly Downloads

    3,449,482

    Version

    5.1.1

    License

    MIT

    Unpacked Size

    8.31 kB

    Total Files

    9

    Last publish

    Collaborators

    • sindresorhus