.
This commit is contained in:
		
							
								
								
									
										76
									
								
								qwen/nodejs/node_modules/camelcase/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								qwen/nodejs/node_modules/camelcase/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
const preserveCamelCase = string => {
 | 
			
		||||
	let isLastCharLower = false;
 | 
			
		||||
	let isLastCharUpper = false;
 | 
			
		||||
	let isLastLastCharUpper = false;
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < string.length; i++) {
 | 
			
		||||
		const character = string[i];
 | 
			
		||||
 | 
			
		||||
		if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {
 | 
			
		||||
			string = string.slice(0, i) + '-' + string.slice(i);
 | 
			
		||||
			isLastCharLower = false;
 | 
			
		||||
			isLastLastCharUpper = isLastCharUpper;
 | 
			
		||||
			isLastCharUpper = true;
 | 
			
		||||
			i++;
 | 
			
		||||
		} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {
 | 
			
		||||
			string = string.slice(0, i - 1) + '-' + string.slice(i - 1);
 | 
			
		||||
			isLastLastCharUpper = isLastCharUpper;
 | 
			
		||||
			isLastCharUpper = false;
 | 
			
		||||
			isLastCharLower = true;
 | 
			
		||||
		} else {
 | 
			
		||||
			isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;
 | 
			
		||||
			isLastLastCharUpper = isLastCharUpper;
 | 
			
		||||
			isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return string;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const camelCase = (input, options) => {
 | 
			
		||||
	if (!(typeof input === 'string' || Array.isArray(input))) {
 | 
			
		||||
		throw new TypeError('Expected the input to be `string | string[]`');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	options = Object.assign({
 | 
			
		||||
		pascalCase: false
 | 
			
		||||
	}, options);
 | 
			
		||||
 | 
			
		||||
	const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;
 | 
			
		||||
 | 
			
		||||
	if (Array.isArray(input)) {
 | 
			
		||||
		input = input.map(x => x.trim())
 | 
			
		||||
			.filter(x => x.length)
 | 
			
		||||
			.join('-');
 | 
			
		||||
	} else {
 | 
			
		||||
		input = input.trim();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (input.length === 0) {
 | 
			
		||||
		return '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (input.length === 1) {
 | 
			
		||||
		return options.pascalCase ? input.toUpperCase() : input.toLowerCase();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const hasUpperCase = input !== input.toLowerCase();
 | 
			
		||||
 | 
			
		||||
	if (hasUpperCase) {
 | 
			
		||||
		input = preserveCamelCase(input);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	input = input
 | 
			
		||||
		.replace(/^[_.\- ]+/, '')
 | 
			
		||||
		.toLowerCase()
 | 
			
		||||
		.replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase())
 | 
			
		||||
		.replace(/\d+(\w|$)/g, m => m.toUpperCase());
 | 
			
		||||
 | 
			
		||||
	return postProcess(input);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = camelCase;
 | 
			
		||||
// TODO: Remove this for the next major release
 | 
			
		||||
module.exports.default = camelCase;
 | 
			
		||||
		Reference in New Issue
	
	Block a user