https://github.com/ioncakephper/file-easy
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.
https://github.com/ioncakephper/file-easy
file-default-extension file-helpers file-manipulation file-utils file-write filename-slug save-files
Last synced: 16 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/ioncakephper/file-easy
- Owner: ioncakephper
- License: mit
- Created: 2020-10-22T09:07:08.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-08T00:46:42.000Z (5 months ago)
- Last Synced: 2025-04-14T07:07:19.803Z (16 days ago)
- Topics: file-default-extension, file-helpers, file-manipulation, file-utils, file-write, filename-slug, save-files
- Language: JavaScript
- Homepage:
- Size: 80.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
[](https://www.npmjs.com/package/file-easy)
[](https://www.npmjs.com/package/file-easy)
[](LICENSE)
[](https://github.com/ioncakephper/file-easy/actions/workflows/node.js.yml)
[](https://github.com/ioncakephper/file-easy/actions/workflows/njsscan.yml)
[](https://github.com/ioncakephper/file-easy/actions/workflows/node.js.yml)
[](https://github.com/ioncakephper/file-easy/actions/workflows/codeql.yml)
[](https://deepscan.io/dashboard#view=project&tid=15501&pid=18710&bid=463828)## Installation
```bash
npm i file-easy
```## Usage
### `.slug()`
```javascript
const fileEasy = require('file-easy')// getting a slug
let fn = 'source Filename';
let slug = fileEasy.slug(fn)
console.log('Slug:', slug)
```Will show:
```bash
Slug: source-filename
``````javascript
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:
```bash
Source: " Simple_File$Goes%Here " is: " simple-file-goes-here
Source: " %%Welcome** Buddy%&^#$% " is: " welcome-buddy
```### `.setDefaultExtension()`
```javascript
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()`
```javascript
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](https://github.com/ioncakephper) - shytiger[at]yahoo.com
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.