diff options
Diffstat (limited to 'node_modules/camelcase')
| -rw-r--r-- | node_modules/camelcase/index.js | 64 | ||||
| -rw-r--r-- | node_modules/camelcase/license | 21 | ||||
| -rw-r--r-- | node_modules/camelcase/package.json | 78 | ||||
| -rw-r--r-- | node_modules/camelcase/readme.md | 57 | 
4 files changed, 220 insertions, 0 deletions
diff --git a/node_modules/camelcase/index.js b/node_modules/camelcase/index.js new file mode 100644 index 0000000..c8492a2 --- /dev/null +++ b/node_modules/camelcase/index.js @@ -0,0 +1,64 @@ +'use strict'; + +function preserveCamelCase(str) { +	let isLastCharLower = false; +	let isLastCharUpper = false; +	let isLastLastCharUpper = false; + +	for (let i = 0; i < str.length; i++) { +		const c = str[i]; + +		if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) { +			str = str.substr(0, i) + '-' + str.substr(i); +			isLastCharLower = false; +			isLastLastCharUpper = isLastCharUpper; +			isLastCharUpper = true; +			i++; +		} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) { +			str = str.substr(0, i - 1) + '-' + str.substr(i - 1); +			isLastLastCharUpper = isLastCharUpper; +			isLastCharUpper = false; +			isLastCharLower = true; +		} else { +			isLastCharLower = c.toLowerCase() === c; +			isLastLastCharUpper = isLastCharUpper; +			isLastCharUpper = c.toUpperCase() === c; +		} +	} + +	return str; +} + +module.exports = function (str) { +	if (arguments.length > 1) { +		str = Array.from(arguments) +			.map(x => x.trim()) +			.filter(x => x.length) +			.join('-'); +	} else { +		str = str.trim(); +	} + +	if (str.length === 0) { +		return ''; +	} + +	if (str.length === 1) { +		return str.toLowerCase(); +	} + +	if (/^[a-z0-9]+$/.test(str)) { +		return str; +	} + +	const hasUpperCase = str !== str.toLowerCase(); + +	if (hasUpperCase) { +		str = preserveCamelCase(str); +	} + +	return str +		.replace(/^[_.\- ]+/, '') +		.toLowerCase() +		.replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase()); +}; diff --git a/node_modules/camelcase/license b/node_modules/camelcase/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/camelcase/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/camelcase/package.json b/node_modules/camelcase/package.json new file mode 100644 index 0000000..15706fc --- /dev/null +++ b/node_modules/camelcase/package.json @@ -0,0 +1,78 @@ +{ +  "_args": [ +    [ +      "camelcase@4.1.0", +      "/home/dstaesse/git/website" +    ] +  ], +  "_development": true, +  "_from": "camelcase@4.1.0", +  "_id": "camelcase@4.1.0", +  "_inBundle": false, +  "_integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", +  "_location": "/camelcase", +  "_phantomChildren": {}, +  "_requested": { +    "type": "version", +    "registry": true, +    "raw": "camelcase@4.1.0", +    "name": "camelcase", +    "escapedName": "camelcase", +    "rawSpec": "4.1.0", +    "saveSpec": null, +    "fetchSpec": "4.1.0" +  }, +  "_requiredBy": [ +    "/yargs-parser" +  ], +  "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", +  "_spec": "4.1.0", +  "_where": "/home/dstaesse/git/website", +  "author": { +    "name": "Sindre Sorhus", +    "email": "sindresorhus@gmail.com", +    "url": "sindresorhus.com" +  }, +  "bugs": { +    "url": "https://github.com/sindresorhus/camelcase/issues" +  }, +  "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar", +  "devDependencies": { +    "ava": "*", +    "xo": "*" +  }, +  "engines": { +    "node": ">=4" +  }, +  "files": [ +    "index.js" +  ], +  "homepage": "https://github.com/sindresorhus/camelcase#readme", +  "keywords": [ +    "camelcase", +    "camel-case", +    "camel", +    "case", +    "dash", +    "hyphen", +    "dot", +    "underscore", +    "separator", +    "string", +    "text", +    "convert" +  ], +  "license": "MIT", +  "name": "camelcase", +  "repository": { +    "type": "git", +    "url": "git+https://github.com/sindresorhus/camelcase.git" +  }, +  "scripts": { +    "test": "xo && ava" +  }, +  "version": "4.1.0", +  "xo": { +    "esnext": true +  } +} diff --git a/node_modules/camelcase/readme.md b/node_modules/camelcase/readme.md new file mode 100644 index 0000000..0610dc6 --- /dev/null +++ b/node_modules/camelcase/readme.md @@ -0,0 +1,57 @@ +# camelcase [](https://travis-ci.org/sindresorhus/camelcase) + +> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar` + + +## Install + +``` +$ npm install --save camelcase +``` + + +## Usage + +```js +const camelCase = require('camelcase'); + +camelCase('foo-bar'); +//=> 'fooBar' + +camelCase('foo_bar'); +//=> 'fooBar' + +camelCase('Foo-Bar'); +//=> 'fooBar' + +camelCase('--foo.bar'); +//=> 'fooBar' + +camelCase('__foo__bar__'); +//=> 'fooBar' + +camelCase('foo bar'); +//=> 'fooBar' + +console.log(process.argv[3]); +//=> '--foo-bar' +camelCase(process.argv[3]); +//=> 'fooBar' + +camelCase('foo', 'bar'); +//=> 'fooBar' + +camelCase('__foo__', '--bar'); +//=> 'fooBar' +``` + + +## Related + +- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module +- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com)  | 
