Synthetic string orchestra. Curated list of string manipulation curried functions
npm install mellotron> Synthetic string orchestra. Curated list of string manipulation curried functions
```
yarn add mellotron``
npm install mellotron
.
From lodash/capitalize
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The string to convert. | Optional |
##### Examples
`javascript
capitalize('united states');
// => 'United states'
`##### Returns
-
string Returns the capitalized string.concat([string='', string=''])
Concatenate the given strings.
From ramda/concat
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The first string to add. | Optional |
| string='' | string | The second string to add. | Optional |
##### Examples
`javascript
concat('ABC', 'DEF');
// => 'ABCDEF'const prefix = concat('cyber');
prefix('space');
// => 'cyberspace'
`##### Returns
-
string Returns the result of concatenating the given strings.contains(a, list)
Inserts the separator string between each element and concatenating all the elements into a single string.
From ramda/contains
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| a |
string | The item to compare against. | |
| list | string | The string to consider | |
##### Examples
`javascript
contains('á', 'Zárate')
// => trueconst taco = contains('salsa');
taco('Un taco sin salsa no es taco');
// => true
`##### Returns
-
boolean Returns true if an equivalent item is in list, false otherwise.deburr([string=''])
Deburrs string by converting letters to basic Latin letters and removing combining diacritical marks.
From lodash/deburr
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The string to deburr. | Optional |
##### Examples
`javascript
deburr('déjà vu');
// => 'deja vu'
`##### Returns
-
string Returns the deburred string.endsWith(target, string)
Checks if string ends with the given target string.
From lodash/endsWith
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| target |
string | The string to search for. | |
| string | string | The string to inspect. | |
##### Examples
`javascript
endsWith('c', 'abc');
// => trueconst endsWithR = endsWith('r');
endsWithR('bar');
// => true
`##### Returns
-
boolean Returns true if string ends with target, else false.format(template, values)
Values are interpolated on a template string.
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| template |
string | The `string` with placeholders. | |
| values | Array.<*> Object | Values to be interpolated | |
##### Examples
`javascript
// Allows creating templates:
const readMessages = format('{0}, you have {1} unread message{2}')
readMessages(['Holly', 2, 's'])
// => 'Holly, you have 2 unread messages'// Unmatched placeholders produce no output:
readMessages(['Steve', 1])
// => 'Steve, you have 1 unread message'
// Supports property access via dot notation
const bobby = { first: 'Bobby', last: 'Fischer' };
const garry = { first: 'Garry', last: 'Kasparov' };
format('{0.first} {0.last} vs. {1.first} {1.last}', [bobby, garry])
// => 'Bobby Fischer vs. Garry Kasparov'
// Supports property access via object property
const jamesBond = { firstname: 'James', lastname: 'Bond' };
format('The name is {lastname}. {firstname} {lastname}.', jamesBond)
// => 'The name is Bond. James Bond.'
`##### Returns
-
string Returns the result of replacing each {…} placeholder in the template string with its corresponding replacement.fromQuery(str[, sep='&', eq='=', options])
Parse a query string into an object.
From querystring/parse
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| str |
string | The URL query string to parse. | |
| sep='&' | string | The substring to delimit key and value pairs. | Optional |
| eq='=' | string | The substring to delimit keys and values. | Optional |
| options | Object | | Optional |
##### Examples
`javascript
fromQuery('foo=1&foo=2&foo=3');
// => { foo: ['1', '2', '3' ] }fromQuery('foo:1|foo:2|foo:3', '|', ':');
// => { foo: ['1', '2', '3' ] }
`##### Returns
-
Object Returns the parsed URL query string (str) into a collection of key and value pairs.fromURL(urlString[, parseQueryString=false, slashesDenoteHost=false])
Parse a query string into an object. Leading ? or # are ignored, so you can pass location.search or location.hash directly.
From url/parse
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| urlString |
string | The URL string to parse. | |
| parseQueryString=false | boolean | The query property will be set to an object returned by the querystring module's parse() method if `true`. | Optional |
| slashesDenoteHost=false | boolean | The first token after the literal string // and preceding the next / will be interpreted as the host if `true`. | Optional |
##### Examples
`javascript
fromURL('https://www.dgmlive.com/kingcrimson/?album=discipline#track-1');
// =>
// {
// protocol: 'https:',
// slashes: true,
// auth: null,
// host: 'www.dgmlive.com',
// port: null,
// hostname: 'www.dgmlive.com',
// hash: '#track-1',
// search: '?album=discipline',
// query: 'album=discipline',
// pathname: '/kingcrimson/',
// path: '/kingcrimson/?album=discipline',
// href: 'https://www.dgmlive.com/kingcrimson/?album=discipline#track-1'
// }
`##### Returns
-
Object Returns the parsed URL into a collection of key and value pairs.isString(val)
See if an object is an instance of the String constructor.
From ramda/is
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| val |
string | The value to test. | |
##### Examples
`javascript
isString('s');
// => trueisString(new String(''));
// => true
`##### Returns
-
boolean Returns if the value is a String.isURL(string)
Parse a query string into an object. Leading ? or # are ignored, so you can pass location.search or location.hash directly.
From url/parse
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string |
string | The URL string to validate. | |
##### Examples
`javascript
isURL('http://symbolics.com');
// => trueisURL('http://')
// => false
isURL('bbn.com')
// => false
`##### Returns
-
Object Returns true if string is a URL, false otherwise.join(separator, xs)
Inserts the separator string between each element and concatenating all the elements into a single string.
From ramda/join
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| separator |
string | The string used to separate the elements. | |
| xs | string | The elements to join into a string. | |
##### Examples
`javascript
join(' ', ['a', 2, 3.4]);
// => 'a 2 3.4'const piper = join('|');
piper(['Pied', 'Piper', 'of', 'Hamelin']);
// => 'Pied|Piper|of|Hamelin'
`##### Returns
-
string Returns the string made by concatenating xs with separator.leftPad(length, string)
Pads string on the left side if it's shorter than length. Padding characters are truncated if they exceed length.
From lodash/padStart
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| length |
number | The padding length. | |
| string | string | The string to pad. | |
##### Examples
`javascript
leftPad(6, 'abc');
// => ' abc'
`##### Returns
-
string Returns the padded string.length(s)
Count visual length of javascript string.
From charcount
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| s |
string | The string to count. | |
##### Examples
`javascript
length('🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒');
// => 12
`##### Returns
-
number Returns length of the string.match(rx, str)
Tests a regular expression against a string.
From ramda/match
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| rx |
string | A regular expression or a substring to match. | |
| str | string | The string to match against. | |
##### Examples
`javascript
match(/([a-z]a)/g, 'bananas');
// => ['ba', 'na', 'na']
`##### Returns
-
Array The list of matches or empty array.pad(length, string)
Pads string on the left and right sides if it's shorter than length. Padding characters are truncated if they can't be evenly divided by length.
From lodash/pad
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| length |
number | The padding length. | |
| string | string | The string to pad. | |
##### Examples
`javascript
pad(8, 'abc');
// => ' abc '
`##### Returns
-
string Returns the padded string.replace(regex, replacement, str)
Inserts the separator string between each element and concatenating all the elements into a single string.
From ramda/replace
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| regex |
string | A regular expression or a substring to match. | |
| replacement | string | The string to replace the matches with. | |
| str | string | The String to do the search and replacement in. | |
##### Examples
`javascript
replace(/foo/g, 'bar', 'foo foo foo');
// => 'bar bar bar'const censor = replace('the night', 'some time');
censor("Let's spend the night together")
// => "Let's spend some time together"
`##### Returns
-
string Returns the resulted string.reverse(list)
Reverse a string.
From ramda/reverse
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| list |
string | The string to reverse. | |
##### Examples
`javascript
reverse('stressed');
// => 'desserts'
`##### Returns
-
string Returns a new string with the characters in reverse order.rightPad(length, string)
Pads string on the right side if it's shorter than length. Padding characters are truncated if they exceed length.
From lodash/padEnd
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| length |
number | The padding length. | |
| string | string | The string to pad. | |
##### Examples
`javascript
rightPad(6, 'abc');
// => 'abc '
`##### Returns
-
string Returns the padded string.slugify([string=''])
Converts string to kebab case.
From lodash/kebabCase
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The string to convert. | Optional |
##### Examples
`javascript
slugify('This, That and the Other! An Outré Collection');
// => 'this-that-and-the-other-an-outre-collection'
`##### Returns
-
string Returns the kebab cased string.split(sep, str)
Splits a string into an array of strings based on the given separator.
From ramda/split
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| sep |
string | The pattern. | |
| str | string | The string to separate into an array. | |
##### Examples
`javascript
const path = split('/');
path('/usr/local/bin/node');
// => ['', 'usr', 'local', 'bin', 'node']
`##### Returns
-
Array Returns the resulting array.startsWith(target, string)
Checks if string starts with the given target string.
From lodash/startsWith
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| target |
string | The string to search for. | |
| string | string | The string to inspect. | |
##### Examples
`javascript
startsWith('a', 'abc');
// => trueconst startsWithM = startsWith('M');
startsWithM('Mellotron');
// => true
`##### Returns
-
boolean Returns true if string starts with target, else false.test(pattern, str)
Determines whether a given string matches a given regular expression.
From ramda/test
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| pattern |
string | A regular expression or a substring to match. | |
| str | string | The string to match against. | |
##### Examples
`javascript
test(/^x/, 'xyz');
// => truetest(/^y/, 'xyz');
// => false
`##### Returns
-
boolean The result of the test.toLower(str)
Convert to lower case.
From ramda/toLower
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| str |
string | The string to lower case. | |
##### Examples
`javascript
toLower('XYZ');
// => 'xyz'
`##### Returns
-
string Returns the lower case version of str.toQuery(str[, sep='&', eq='=', options])
Stringify an object into a query string, sorting the keys.
From querystring/stringify
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| str |
string | The URL query string to parse. | |
| sep='&' | string | The substring to delimit key and value pairs. | Optional |
| eq='=' | string | The substring to delimit keys and values. | Optional |
| options | Object | | Optional |
##### Examples
`javascript
toQuery({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// => 'foo=bar&baz=qux&baz=quux&corge='toQuery({ foo: 'bar', baz: 'qux' }, '|', ':');
// => foo:bar|baz:qux'
`##### Returns
-
Object Returns the parsed URL query string (str) into a collection of key and value pairs.toString(val)
Convert to string.
From ramda/toString
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| val |
string | The value to convert. | |
##### Examples
`javascript
toString(42);
// => '42'toString([1, 2, 3]);
//=> '[1, 2, 3]'
toString({ foo: 1, bar: 2, baz: 3 });
//=> '{"bar": 2, "baz": 3, "foo": 1}'
`##### Returns
-
string Returns the string representation of the given valuetoUpper(str)
Convert to upper case.
From ramda/toUpper
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| str |
string | The string to upper case. | |
##### Examples
`javascript
toUpper('abc');
// => 'ABC'
`##### Returns
-
string Returns the upper case version of str.toURL(urlObject)
Convert an url object to URL.
From url/format
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| urlObject |
Object string | A URL object (as returned by url.parse() or constructed otherwise). If a string, it is converted to an object by passing it to url.parse(). | |
##### Examples
`javascript
toURL({
protocol: 'https',
host: 'www.dgmlive.com',
hash: '#track-1',
query: { album: 'discipline' },
pathname: '/kingcrimson'
})
// => "https://www.dgmlive.com/kingcrimson?album=discipline#track-1"
`##### Returns
-
string Returns the resulted URL.trim(str)
Removes (strips) whitespace from both ends of the string.
From ramda/trim
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| str |
string | The string to trim. | |
##### Examples
`javascript
trim(' xyz ');
// => 'xyz'
`##### Returns
-
string Returns the trimmed version of str.trimLeft([string=''])
Removes leading whitespace or specified characters from string.
From lodash/trimStart
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The string to trim. | Optional |
##### Examples
`javascript
trimStart(' abc ');
// => 'abc '
`##### Returns
-
string Returns the trimmed string.trimRight([string=''])
Removes trailing whitespace or specified characters from string.
From lodash/trimEnd
##### Parameters
| Name | Type | Description | |
| ---- | ---- | ----------- | -------- |
| string='' |
string | The string to trim. | Optional |
##### Examples
`javascript
trimRight(' abc ');
// => ' abc'
`##### Returns
-
string` Returns the trimmed string.