Convert a string to mOcKiNgCaSe
> Convert a string to mOcKiNgCaSe.
Read more on wikipedia Studly caps.

Inspired by the meme Mocking Spongebob and http://dannypage.github.io/spongebob.html
``bash`
npm install @strdr4605/mockingcase --save
`js
const mockingcase = require('@strdr4605/mockingcase');
// es6 - import mockingcase from '@strdr4605/mockingcase';
// ts - import * as mockingcase from '@strdr4605/mockingcase';
// ts - import mockingcase = require('@strdr4605/mockingcase');
mockingcase('foo-bar');
//=> 'fOo-bAr'
mockingcase('aa', {random: false});
//=> 'aA'
mockingcase('aa', {random: true});
//=> 'aa'
//=> 'aA'
//=> 'Aa'
//=> 'AA'
mockingcase('42foo!bar');
//=> '42fOo!bAr'
mockingcase('aa123', {onlyLetters: true});
//=> 'aA'
mockingcase('a13%$a', {onlyLetters: true});
//=> 'aA'
mockingcase('foo bar', {firstUpper: true});
//=> 'FoO BaR'
mockingcase('foo', {firstUpper: true, random: true});
//=> 'Foo'
//=> 'FOo'
//=> 'FoO'
//=> 'FOO'
mockingcase('abcdef', {upper: /[bdf]/});
//=> 'aBcDeF'
mockingcase('ABCDEF', {lower: 'bcd'});
//=> 'abcdeF'
`
- [mockingcase(input, [options]) ⇒ string](#mockingcase)
- mockingcase.overrideString() ⇒ mockingcase
- [String.prototype.toMockingCase([options]) ⇒ string](#String.prototype.toMockingCase)
- mockingcase.config(defaultOptions) ⇒ mockingcase
- [mockingcase.log(input, [options])](#mockingcase.log)
- [mockingcase.overrideConsole([options]) ⇒ mockingcase](#mockingcase.overrideConsole)
- Options
- Browser Usage
stringConverts the input string(s) to mOcKiNgCaSe.
ObjectOptions for mockingcase
string :arrow_up:Kind: global function
Returns: string - string in mOcKiNgCaSe
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| input | string \| Array.<string> | | String(s) to be converted. |
| [options] | Options | {random: false, onlyLetters: false, firstUpper: false, upper: '', lower: ''} | Conversion options. |
`js
mockingcase('foo-bar');
//=> 'fOo-bAr'
mockingcase('aa', {random: false});
//=> 'aA'
mockingcase('aa', {random: true});
//=> 'aa'
//=> 'aA'
//=> 'Aa'
//=> 'AA'
mockingcase('42foo!bar');
//=> '42fOo!bAr'
mockingcase('aa123', {onlyLetters: true});
//=> 'aA'
mockingcase('a13%$a', {onlyLetters: true});
//=> 'aA'
mockingcase('foo bar', {firstUpper: true});
//=> 'FoO BaR'
mockingcase('foo bar', {firstUpper: true, lower: /[fb]/});
//=> 'foO baR'
mockingcase('foo bar', {firstUpper: true, upper: /[oa]/});
//=> 'FOO BAR'
mockingcase('foo', {firstUpper: true, random: true});
//=> 'Foo'
//=> 'FOo'
//=> 'FoO'
//=> 'FOO'
mockingcase(['foo','bar']);
//=> 'fOoBaR'
mockingcase(undefined);
//=> Error "An input is required"
`
.Kind: static method of mockingcase
Returns: mockingcase
`js
mockingcase.overrideString();'foo_bar'.toMockingCase();
//=> 'fOo_bAr'
'foo_bar'.toMockingCase({firstUpper: true});
//=> 'FoO_BaR'
`
$3
Converts this string to mOcKiNgCaSe.NOTE: this function is created by invoking
mockingcase.overrideString().Kind: prototype
Returns: string - local string in mOcKiNgCaSe
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| input | string \| Array.<string> | | String(S) to be converted. |
| [options] | Options | {random: false, onlyLetters: false, firstUpper: false, upper: '', lower: ''} | Conversion options. |
`js
'foo_bar'.toMockingCase();
//=> 'fOo_bAr''foo_bar'.toMockingCase({firstUpper: true});
//=> 'FoO_BaR'
`
$3
Outputs a mockingcase with default options.Kind: static method of mockingcase
Returns: mockingcase with default options
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| defaultOptions | Options | {random: false, onlyLetters: false, firstUpper: false, upper: '', lower: ''} | Conversion options. |
`js
const mockingcase = require('@strdr4605/mockingcase').config({onlyLetters: true, firstUpper: true});
// const mOcKiNgCaSe = mOcKiNgCaSe.config({onlyLetters: true, firstUpper: true});mockingcase('foo bar42');
//=> 'FoO BaR'
mockingcase('foo bar42', {onlyLetters: false, firstUpper: false});
//=> 'fOo bAr42'
`
$3
Outputs a message to the console in mOcKiNgCaSe.Kind: static method of mockingcase
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| input | string \| Array.<string> | | String(S) to be converted. |
| [options] | Options | {random: false, onlyLetters: false, firstUpper: false, upper: '', lower: ''} | Conversion options. |
`js
mockingcase.log('foo bar');
// console.log('fOo bAr');
`
$3
Overrides console.log input to print the input mOcKiNgCaSe.Kind: static method of mockingcase
Returns: function - mockingcase function
See: mockingcase
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| [options] | Options | {random: false, onlyLetters: false, firstUpper: false, upper: '', lower: ''} | Conversion options. |
`js
const mockingcase = require('@strdr4605/mockingcase').overrideConsole();
console.log('foobar')
// => 'fOoBaR'
mockingcase('foobar');
// => 'fOoBaR'
`
Options : Object :arrow_up:
Options for mockingcaseKind: global typedef
Properties
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| [random] | boolean | false | If case conversion should be randomized. |
| [onlyLetters] | boolean | false | If non letters characters should be removed. |
| [firstUpper] | boolean | false | If the first letter should be capitalized instead of the second when converting to mOcKiNgCaSe (e.g. MoCkInGcAsE). When combined with options.random, the first letter of the random string will be capitalized. |
| [upper] | string \| RegExp | '' | Characters or substring set to change to uppercase,
upper has higher priority that lower. |
| [lower] | string \| RegExp | '' | Characters or substring set to change to lowercase. |
Browser Usage :arrow_up:
mOcKiNgCaSe can be used in a node environment, as well as in the browser. You can serve it yourself, or pull it from a CDN. For example:
`html
mockingcase
`
$3
To host mockingcase yourself simply put src/mockingcase.js` wherever your static content (like CSS stylesheets) are kept. You can also download a minified file from one of the CDNs below.|Name|Link|
|-|-|
|unpkg.com|https://unpkg.com/@strdr4605/mockingcase|
|JSDelivr.com|https://cdn.jsdelivr.net/npm/@strdr4605/mockingcase|
See also Mockingcase bindings for ReasonML