Skip to content

Working with the Node.js file system can be cumbersome. File-easy simplifies common file operations with a clean and easy-to-use API, making file management a breeze.

License

Notifications You must be signed in to change notification settings

ioncakephper/file-easy

Repository files navigation

file-easy

File utilities to speed up creating document files, setting default extension, and getting a slug from a string. file-easy provides a simple, lightweight, and easy-to-use set of functions for common file-related tasks. If you're tired of writing boilerplate code for handling filenames, creating text files, or generating URL-friendly slugs, file-easy simplifies these operations so you can focus on your core application logic. It's particularly well-suited for projects that frequently handle text files or need to sanitize filenames for web use. No more complex regex or manual string manipulation – just clean, efficient file handling.

npm npm License Build Status njsscan sarif Node.js CI CodeQL Advanced DeepScan grade

Installation

npm i file-easy

Usage

.slug()

const fileEasy = require('file-easy')

// getting a slug
let fn = 'source Filename';
let slug = fileEasy.slug(fn)
console.log('Slug:', slug)

Will show:

Slug: source-filename
const fileEasy = require('file-easy')

let names = [
    'Simple_File$Goes%Here',
    '%%Welcome**    Buddy%&^#$%'
];
names.forEach((name) => {
    console.log('Source: "', name, '" is:', fileEasy.slug(name))
})

Will show:

Source: " Simple_File$Goes%Here " is: " simple-file-goes-here
Source: " %%Welcome**    Buddy%&^#$% " is: " welcome-buddy

.setDefaultExtension()

const fileEasy = require('file-easy')

// f1 is filename.js (no extension in original, apply extension)
let f1 = fileEasy.setDefaultExtension('filename', '.js)

// f2 is filename.js (extension already exists)
let f2 = fileEasy.setDefaultExtension('filename.js', '.json')

// f3 is filename. (extension starts with . in original)
let f3 = fileEasy.setDefaultExtension('filename.', '.js')

.saveDocument()

const fileEasy = require('file-easy')

let filename = './docs/sample.txt'
let content = 'String to go in'

/**
 * Creates the `sample.txt` file in `./docs` folder
 * If path does not exist, it will create it (e.g. `./docs`)
 * The file is saved as a utf-8 format (standard format)
 */
fileEasy.saveDocument(filename, content)

Functions

saveDocument(filename, content)

Save content in a file using utf8 format.

setDefaultExtension(filename, extension)string

Append specified extension if needed.

slug(s)string

Convert a string into an identifier.

saveDocument(filename, content)

Save content in a file using utf8 format.

Kind: global function
Throws:

  • Error If input is invalid or if there was an error during the save process.
Param Type Description
filename string The filename to create. It can also include a path ending with the filename. Path will be created if not exists.
content string The content to place in the file.

setDefaultExtension(filename, extension) ⇒ string

Append specified extension if needed.

Kind: global function
Returns: string - filename with either existing or specified extension
Throws:

  • TypeError If filename or extension is not a string.
  • Error If extension is empty or doesn't start with a dot.
Param Type Description
filename string The filename to check for an existing extension.
extension string The extension to append if filename has no extension. It should start with a dot (e.g. .txt)

slug(s) ⇒ string

Convert a string into an identifier.

Kind: global function
Returns: string - The identifier string.

The following operations are performed on the string:

  1. Trim and convert to lower case.
  2. Remove diacritics (transliterate or remove non-ASCII characters).
  3. Replace spaces and special characters with hyphens, allowing underscores.
  4. Replace multiple hyphens with a single hyphen.
  5. Remove leading and trailing hyphens.
Param Type Description
s string The string to convert.

Author

Ion Gireada - shytiger[at]yahoo.com

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Working with the Node.js file system can be cumbersome. File-easy simplifies common file operations with a clean and easy-to-use API, making file management a breeze.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published