{"id":22867349,"url":"https://github.com/strdr4605/mockingcase","last_synced_at":"2025-09-10T00:16:35.919Z","repository":{"id":57163096,"uuid":"158371716","full_name":"strdr4605/mockingcase","owner":"strdr4605","description":"node package that converts a string to mOcKiNgCaSe","archived":false,"fork":false,"pushed_at":"2021-09-25T05:59:18.000Z","size":1470,"stargazers_count":77,"open_issues_count":1,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-05T19:19:03.021Z","etag":null,"topics":["converts","converts-string","defaultoptions","hacktoberfest","javascript","meme","npm","package","spongebob"],"latest_commit_sha":null,"homepage":"https://npm.im/@strdr4605/mockingcase","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strdr4605.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-20T10:30:53.000Z","updated_at":"2024-11-30T05:48:59.000Z","dependencies_parsed_at":"2022-09-01T00:20:31.748Z","dependency_job_id":null,"html_url":"https://github.com/strdr4605/mockingcase","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strdr4605%2Fmockingcase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strdr4605%2Fmockingcase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strdr4605%2Fmockingcase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strdr4605%2Fmockingcase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strdr4605","download_url":"https://codeload.github.com/strdr4605/mockingcase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252561062,"owners_count":21768063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["converts","converts-string","defaultoptions","hacktoberfest","javascript","meme","npm","package","spongebob"],"created_at":"2024-12-13T12:27:17.876Z","updated_at":"2025-05-05T19:19:13.154Z","avatar_url":"https://github.com/strdr4605.png","language":"JavaScript","readme":"# mockingcase [![Build Status](https://travis-ci.org/strdr4605/mockingcase.svg?branch=master)](https://travis-ci.org/strdr4605/mockingcase) [![Hits-of-Code](https://hitsofcode.com/github/strdr4605/mockingcase)](https://hitsofcode.com/view/github/strdr4605/mockingcase) [![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fstrdr4605%2Fmockingcase\u0026count_bg=%2379C83D\u0026title_bg=%23555555\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=hits\u0026edge_flat=false)](https://hits.seeyoufarm.com)\n\n\n\n\u003e Convert a string to mOcKiNgCaSe.\n\nRead more on wikipedia [Studly caps](https://en.wikipedia.org/wiki/Studly_caps).\n\n\u003cimg align=\"right\" width=\"300\" src=\"https://raw.githubusercontent.com/strdr4605/mockingcase/master/mOcKiNgsPoNgEbOb.png\" alt=\"mocking spongebob\" /\u003e\n\nInspired by the meme [Mocking Spongebob](https://knowyourmeme.com/memes/mocking-spongebob) and http://dannypage.github.io/spongebob.html\n\n## Install\n\n```bash\nnpm install @strdr4605/mockingcase --save\n```\n\n## Usage\n\n```js\nconst mockingcase = require('@strdr4605/mockingcase');\n// es6 - import mockingcase from '@strdr4605/mockingcase';\n//  ts - import * as mockingcase from '@strdr4605/mockingcase';\n//  ts - import mockingcase = require('@strdr4605/mockingcase');\n\nmockingcase('foo-bar');\n//=\u003e 'fOo-bAr'\n\nmockingcase('aa', {random: false});\n//=\u003e 'aA'\n\nmockingcase('aa', {random: true});\n//=\u003e 'aa'\n//=\u003e 'aA'\n//=\u003e 'Aa'\n//=\u003e 'AA'\n\nmockingcase('42foo!bar');\n//=\u003e '42fOo!bAr'\n\nmockingcase('aa123', {onlyLetters: true});\n//=\u003e 'aA'\n\nmockingcase('a13%$a', {onlyLetters: true});\n//=\u003e 'aA'\n\nmockingcase('foo bar', {firstUpper: true});\n//=\u003e 'FoO BaR'\n\nmockingcase('foo', {firstUpper: true, random: true});\n//=\u003e 'Foo'\n//=\u003e 'FOo'\n//=\u003e 'FoO'\n//=\u003e 'FOO'\n\nmockingcase('abcdef', {upper: /[bdf]/});\n//=\u003e 'aBcDeF'\n\nmockingcase('ABCDEF', {lower: 'bcd'});\n//=\u003e 'abcdeF'\n```\n\n## API\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [mockingcase(input, [options]) ⇒ \u003ccode\u003estring\u003c/code\u003e](#mockingcase)\n- [mockingcase.overrideString() ⇒ \u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase.overrideString)\n- [String.prototype.toMockingCase([options]) ⇒ \u003ccode\u003estring\u003c/code\u003e](#String.prototype.toMockingCase)\n- [mockingcase.config(defaultOptions) ⇒ \u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase.config)\n- [mockingcase.log(input, [options])](#mockingcase.log)\n- [mockingcase.overrideConsole([options]) ⇒ \u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase.overrideConsole)\n- [Options](#Options)\n- [Browser Usage](#mockingcase.browserUsage)\n\n## Functions\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#mockingcase\"\u003emockingcase(input, [options])\u003c/a\u003e ⇒ \u003ccode\u003estring\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003cp\u003eConverts the input string(s) to mOcKiNgCaSe.\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\n## Typedefs\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#Options\"\u003eOptions\u003c/a\u003e : \u003ccode\u003eObject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003cp\u003eOptions for mockingcase\u003c/p\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\n\u003ca name=\"mockingcase\"\u003e\u003c/a\u003e\n\n## mockingcase(input, [options]) ⇒ \u003ccode\u003estring\u003c/code\u003e [:arrow_up:](#api)\nConverts the input string(s) to mOcKiNgCaSe.\n\n**Kind**: global function \n**Returns**: \u003ccode\u003estring\u003c/code\u003e - string in mOcKiNgCaSe  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| input | \u003ccode\u003estring\u003c/code\u003e \\| \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e |  | String(s) to be converted. |\n| [options] | [\u003ccode\u003eOptions\u003c/code\u003e](#Options) | \u003ccode\u003e{random: false,  onlyLetters: false, firstUpper: false, upper: '', lower: ''}\u003c/code\u003e | Conversion options. |\n\n```js\nmockingcase('foo-bar');\n//=\u003e 'fOo-bAr'\n\nmockingcase('aa', {random: false});\n//=\u003e 'aA'\n\nmockingcase('aa', {random: true});\n//=\u003e 'aa'\n//=\u003e 'aA'\n//=\u003e 'Aa'\n//=\u003e 'AA'\n\nmockingcase('42foo!bar');\n//=\u003e '42fOo!bAr'\n\nmockingcase('aa123', {onlyLetters: true});\n//=\u003e 'aA'\n\nmockingcase('a13%$a', {onlyLetters: true});\n//=\u003e 'aA'\n\nmockingcase('foo bar', {firstUpper: true});\n//=\u003e 'FoO BaR'\n\nmockingcase('foo bar', {firstUpper: true, lower: /[fb]/});\n//=\u003e 'foO baR'\n\nmockingcase('foo bar', {firstUpper: true, upper: /[oa]/});\n//=\u003e 'FOO BAR'\n\nmockingcase('foo', {firstUpper: true, random: true});\n//=\u003e 'Foo'\n//=\u003e 'FOo'\n//=\u003e 'FoO'\n//=\u003e 'FOO'\n\nmockingcase(['foo','bar']);\n//=\u003e 'fOoBaR'\n\nmockingcase(undefined);\n//=\u003e Error \"An input is required\"\n```\n\u003chr\u003e\n\n\u003ca name=\"mockingcase.overrideString\"\u003e\u003c/a\u003e\n\n### mockingcase.overrideString() ⇒ \u003ccode\u003emockingcase\u003c/code\u003e [:arrow_up:](#api)\nCreates `String.prototype.toMockingCase()`.\n\n**Kind**: static method of [\u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase)  \n**Returns**: mockingcase  \n\n```js\nmockingcase.overrideString();\n\n'foo_bar'.toMockingCase();\n//=\u003e 'fOo_bAr'\n\n'foo_bar'.toMockingCase({firstUpper: true});\n//=\u003e 'FoO_BaR'\n```\n\u003chr\u003e\n\n\u003ca name=\"String.prototype.toMockingCase\"\u003e\u003c/a\u003e\n\n### String.prototype.toMockingCase([options]) ⇒ \u003ccode\u003estring\u003c/code\u003e [:arrow_up:](#api)\nConverts `this` string to mOcKiNgCaSe.\n\n**NOTE**: this function is created by invoking `mockingcase.overrideString()`.\n\n**Kind**: prototype  \n**Returns**: \u003ccode\u003estring\u003c/code\u003e - local string in mOcKiNgCaSe  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| input | \u003ccode\u003estring\u003c/code\u003e \\| \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e |  | String(S) to be converted. |\n| [options] | [\u003ccode\u003eOptions\u003c/code\u003e](#Options) | \u003ccode\u003e{random: false,  onlyLetters: false, firstUpper: false, upper: '', lower: ''}\u003c/code\u003e | Conversion options. |\n\n```js\n'foo_bar'.toMockingCase();\n//=\u003e 'fOo_bAr'\n\n'foo_bar'.toMockingCase({firstUpper: true});\n//=\u003e 'FoO_BaR'\n```\n\u003chr\u003e\n\n\u003ca name=\"mockingcase.config\"\u003e\u003c/a\u003e\n\n### mockingcase.config(defaultOptions) ⇒ \u003ccode\u003emockingcase\u003c/code\u003e [:arrow_up:](#api)\nOutputs a mockingcase with default options.\n\n**Kind**: static method of [\u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase)  \n**Returns**: mockingcase with default options  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| defaultOptions | [\u003ccode\u003eOptions\u003c/code\u003e](#Options) | \u003ccode\u003e{random: false,  onlyLetters: false, firstUpper: false, upper: '', lower: ''}\u003c/code\u003e | Conversion options. |\n\n\n```js\nconst mockingcase = require('@strdr4605/mockingcase').config({onlyLetters: true, firstUpper: true});\n// const mOcKiNgCaSe = mOcKiNgCaSe.config({onlyLetters: true, firstUpper: true});\n\nmockingcase('foo bar42');\n//=\u003e 'FoO BaR'\n\nmockingcase('foo bar42', {onlyLetters: false, firstUpper: false});\n//=\u003e 'fOo bAr42'\n```\n\u003chr\u003e\n\n\u003ca name=\"mockingcase.log\"\u003e\u003c/a\u003e\n\n### mockingcase.log(input, [options]) [:arrow_up:](#api)\nOutputs a message to the console in mOcKiNgCaSe.\n\n**Kind**: static method of [\u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase)\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| input | \u003ccode\u003estring\u003c/code\u003e \\| \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e |  | String(S) to be converted. |\n| [options] | [\u003ccode\u003eOptions\u003c/code\u003e](#Options) | \u003ccode\u003e{random: false,  onlyLetters: false, firstUpper: false, upper: '', lower: ''}\u003c/code\u003e | Conversion options. |\n\n```js\nmockingcase.log('foo bar');\n// console.log('fOo bAr');\n```\n\n\u003ca name=\"mockingcase\"\u003e\u003c/a\u003e\n\n\u003chr\u003e\n\n\u003ca name=\"mockingcase.overrideConsole\"\u003e\u003c/a\u003e\n\n### mockingcase.overrideConsole([options]) ⇒ \u003ccode\u003emockingcase\u003c/code\u003e [:arrow_up:](#api)\nOverrides console.log input to print the input mOcKiNgCaSe.\n\n**Kind**: static method of [\u003ccode\u003emockingcase\u003c/code\u003e](#mockingcase)  \n**Returns**: \u003ccode\u003efunction\u003c/code\u003e - mockingcase function  \n**See**: mockingcase  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [options] | [\u003ccode\u003eOptions\u003c/code\u003e](#Options) | \u003ccode\u003e{random: false,  onlyLetters: false, firstUpper: false, upper: '', lower: ''}\u003c/code\u003e | Conversion options. |\n\n```js\nconst mockingcase = require('@strdr4605/mockingcase').overrideConsole();\nconsole.log('foobar')\n// =\u003e 'fOoBaR'\nmockingcase('foobar');\n// =\u003e 'fOoBaR'\n```\n\u003chr\u003e\n\n\u003ca name=\"Options\"\u003e\u003c/a\u003e\n\n## Options : \u003ccode\u003eObject\u003c/code\u003e [:arrow_up:](#api)\nOptions for mockingcase\n\n**Kind**: global typedef  \n**Properties**\n\n| Name | Type | Default | Description |\n| --- | --- | --- | --- |\n| [random] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003efalse\u003c/code\u003e | If case conversion should be randomized. |\n| [onlyLetters] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003efalse\u003c/code\u003e | If non letters characters should be removed. |\n| [firstUpper] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003efalse\u003c/code\u003e | 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. |\n| [upper] | \u003ccode\u003estring\u003c/code\u003e \\| \u003ccode\u003eRegExp\u003c/code\u003e | \u003ccode\u003e''\u003c/code\u003e | Characters or substring set to change to uppercase, `upper` has higher priority that `lower`. |\n| [lower] | \u003ccode\u003estring\u003c/code\u003e \\| \u003ccode\u003eRegExp\u003c/code\u003e | \u003ccode\u003e''\u003c/code\u003e | Characters or substring set to change to lowercase. |\n\n\u003chr\u003e\n\n\u003ca name=\"mockingcase.browserUsage\"\u003e\u003c/a\u003e\n\n## Browser Usage [:arrow_up:](#api)\nmOcKiNgCaSe 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:\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n  \u003ctitle\u003emockingcase\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003c/body\u003e\n\u003cscript src=\"https://unpkg.com/@strdr4605/mockingcase@1.10.3/src/mockingcase.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  const output = mockingcase('foo-bar');\n  console.log(output);\n  const output2 = mockingcase('foo-bar');\n  console.log(output2);\n\u003c/script\u003e\n\u003c/html\u003e\n```\n### Self Hosting\nTo 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.\n\n### CDN Usage\nSimply pull in one of the following JS files below.\n\n|Name|Link|\n|-|-|\n|unpkg.com|https://unpkg.com/@strdr4605/mockingcase|\n|JSDelivr.com|https://cdn.jsdelivr.net/npm/@strdr4605/mockingcase|\n\n**See also [Mockingcase bindings for ReasonML](https://redex.github.io/package/unpublished/strdr4605/bs-mockingcase)**\n\n\u003ca href=\"https://www.buymeacoffee.com/strdr4605\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\"  target=\"_blank\"\u003e\u003c/a\u003e\n","funding_links":["https://www.buymeacoffee.com/strdr4605"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrdr4605%2Fmockingcase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrdr4605%2Fmockingcase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrdr4605%2Fmockingcase/lists"}