0.1.0 • Published 6 months ago

detawks v0.1.0

Weekly downloads
-
License
Unlicense
Repository
github
Last release
6 months ago

Detawks Logo

Detawks

A Node.js adaptation of detox, tailored with personal preferences for file naming. The primary motivation was to facilitate the installation of a detox setup using yarn.

Defawlt Features

  • Replaces spaces with dashes (because dashes are great!)
  • Removes underscores.
  • Converts filenames to lowercase.
  • Transforms most accented characters to their unaccented counterparts, probably
  • Eliminates most punctuation.

NOW WITH CUSTOMIZABILITY in .rc format!

  • Specify a sequence of functions to apply to a string. Right now, you can only specify the absurd ones I've written, but I'll add more and maybe they'll even make sense.
  • Specify a list of files and directories to ignore, glob-style.
  • Comma-delimited, please Example configuration:
IGNORES = node_modules, .git, .DS_Store
SEQUENCE = toString, trim, doSwaps, toParamCase, lowerCase, maxChars, minChars, fallbackToRandom

Sequence Functions:

  • toParamCase: Converts a string to param case, transforming spaces and special characters to hyphens and converting all letters to lowercase.
  • removeInvalidChars: Removes characters that aren't lowercase letters, numbers, spaces, or hyphens.
  • toString: Ensures the input is of string type.
  • trim: Strips leading and trailing whitespace.
  • lowerCase: Converts the string to lowercase.
  • replaceWhiteSpace: Replaces all whitespace with a specified character (default is hyphen).
  • maxChars: Truncates the string to a specified maximum length.
  • minChars: Removes a specified number of characters from the start (default is 3).
  • removeConsecutiveDashes: Replaces consecutive dashes with a single dash.
  • removeConsecutiveDashesAtStartEnd: Removes consecutive dashes at the start and end of the string.
  • fallbackToRandom: If the string is empty, it returns a random string generated using Math.random() and toString(36).

Look at slugify.js to see the rats' nest of code that makes this work.

And that's how I made converting strings to ASCII too complicated!

Usage

Execute the command:

detawks <options> <glob / directory / file> 

Options

  • -s: Silent mode (no console logs for new file names).
  • -d: Dry run (shows potential file renames without executing them).
  • -r: Overwrite mode (renames files automatically without prompting).
  • -f: Includes directories in the operation. e.g. renames those too.
  • -m: Specifies max depth for operations.

Acknowledgements

Special thanks to this contributor: https://gist.github.com/codeguy/6684588

0.1.0

6 months ago

0.0.3

10 months ago