source: trip-planner-front/node_modules/yargs-parser/build/lib/string-utils.js@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/**
2 * @license
3 * Copyright (c) 2016, Contributors
4 * SPDX-License-Identifier: ISC
5 */
6export function camelCase(str) {
7 // Handle the case where an argument is provided as camel case, e.g., fooBar.
8 // by ensuring that the string isn't already mixed case:
9 const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();
10 if (!isCamelCase) {
11 str = str.toLowerCase();
12 }
13 if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {
14 return str;
15 }
16 else {
17 let camelcase = '';
18 let nextChrUpper = false;
19 const leadingHyphens = str.match(/^-+/);
20 for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {
21 let chr = str.charAt(i);
22 if (nextChrUpper) {
23 nextChrUpper = false;
24 chr = chr.toUpperCase();
25 }
26 if (i !== 0 && (chr === '-' || chr === '_')) {
27 nextChrUpper = true;
28 }
29 else if (chr !== '-' && chr !== '_') {
30 camelcase += chr;
31 }
32 }
33 return camelcase;
34 }
35}
36export function decamelize(str, joinString) {
37 const lowercase = str.toLowerCase();
38 joinString = joinString || '-';
39 let notCamelcase = '';
40 for (let i = 0; i < str.length; i++) {
41 const chrLower = lowercase.charAt(i);
42 const chrString = str.charAt(i);
43 if (chrLower !== chrString && i > 0) {
44 notCamelcase += `${joinString}${lowercase.charAt(i)}`;
45 }
46 else {
47 notCamelcase += chrString;
48 }
49 }
50 return notCamelcase;
51}
52export function looksLikeNumber(x) {
53 if (x === null || x === undefined)
54 return false;
55 // if loaded from config, may already be a number.
56 if (typeof x === 'number')
57 return true;
58 // hexadecimal.
59 if (/^0x[0-9a-f]+$/i.test(x))
60 return true;
61 // don't treat 0123 as a number; as it drops the leading '0'.
62 if (/^0[^.]/.test(x))
63 return false;
64 return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
65}
Note: See TracBrowser for help on using the repository browser.