Provides prototype extensions for native JS modules
npm install @anmiles/prototypesProvides prototype extensions for native JS modules
----
npm install @anmiles/prototypes- Number.prototype.case - select russian case of countable entity by count
- Number.prototype.pad - add leading or trailing zeros to number to fit specified number of digits
- String.prototype.toUpperFirstLetter - make first letter uppercase
- String.prototype.toLowerFirstLetter - make first letter lowercase
- String.prototype.htmlEscape - escape HTML-sensitive string
- String.prototype.urlEscape - escape string to make it URL-safe
- String.prototype.regexEscape - escape regular expression
- String.prototype.beautify - unify similar special symbols
- String.prototype.toFilename - convert string into a valid filename
- Array.prototype.unique - remove duplicates from array
- Array.prototype.equals - compare two arrays item-by-item
- Array.prototype.indexFieldOf - indexOf by value of nested key
- Array.prototype.sum - sum all values in array
- Array.prototype.sort - sort array by values of nested keys in various directions
- Array.prototype.forEachAsync - asynchronous version of Array.prototype.forEach
- Array.prototype.mapAsync - asynchronous version of Array.prototype.map
- Array.prototype.toTuple - cast array to the tuple with fixed amount of elements
- Map.prototype.forEachAsync - asynchronous version of Map.prototype.forEach
- Map.prototype.getOrCreate - gets value by key or creates if not exists
- Object.fill - fill object with default values generated by keys
- Object.typedKeys - get typed keys of an object
- Object.typedEntries - get typed entries of an object
- Error.parse - return an Error object with a message parsed from input of any supported type (or serialized input if not supported)
- fs.ensureDir - check and if dir exists and is a directory; optionally create if not exists
- fs.ensureFile - check if file exists and is a file; optionally create if not exists
- fs.readJSON - read and parse JSON from file
- fs.writeJSON - write JSON to file
- fs.getJSON - get JSON from file with falling back and validation
- fs.getJSONAsync - asynchronously get JSON from file with asynchronous falling back and asynchronous validation
- fs.readTSV - read and parse TSV from file
- fs.writeTSV - write TSV to file
- fs.joinPath - join two portions of file path using specified or default separator and return the path as typed as possible
- fs.recurse - recursively traverse directory for specified depth and apply callbacks for files (with optionally specified extension), directories and links
- fs.size - recursively calculates get directory size
Also joinPath and recurse functions are introduced in fs.posix and fs.win32 namespaces.
Path separator is explicitly specified and cannot be directly passed there.
- fs.posix.joinPath and fs.posix.recurse use '/' separator regardless of path.sep in runtime
- fs.win32.joinPath and fs.win32.recurse use '\\' separator regardless of path.sep in runtime
Inspired by path.posix and path.win32.
- string value
- `begin .-'"~!@#$%^&*?:;,_=+/\|()[]{}<> <>%27²½áßÈіíž©§€₤∑א雨https://A-_/?b[c]&(1)end`
- query string value
- begin .-'"~!@$%^*:;,_=+\|()[]{}<>%27²½áßÈіíž©§€₤∑א雨https://A-_/bcend`
- url
- https://example.com/begin.-'"~!@#$%^&*?:;,_=+/\|()[]{}<> <>%27²½áßÈіíž©§€₤∑א雨end`
- email
- test.-'~!#$%^&*?_=+/|{} <>%27іž€₤∑א雨@example.com``