topkat-utils 1.2.49 → 1.2.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ObjectGeneric } from "./types";
1
+ import { ObjectGeneric } from './types';
2
2
  /**Eg: camelCase */
3
3
  export declare function camelCase(...wordBits: string[] | [string[]]): string;
4
4
  /**Eg: snake_case
@@ -18,7 +18,7 @@ export declare function titleCase(...wordBits: string[] | [string[]]): string;
18
18
  export declare function upperCase(...wordBits: string[] | [string[]]): string;
19
19
  /**Eg: lowercase undefined, null... => '' */
20
20
  export declare function lowerCase(...wordBits: string[] | [string[]]): string;
21
- export declare function capitalize1st(str?: string): string;
21
+ export declare function capitalize1st(str?: string, lowercaseTheRest?: boolean): string;
22
22
  export declare function camelCaseToWords(str: string): string[];
23
23
  /** GIVEN A STRING '{ blah;2}, ['nested,(what,ever)']' AND A SEPARATOR ",""
24
24
  * This will return the content separated by first level of separators
@@ -10,7 +10,7 @@ const getWordBits = (wb) => Array.isArray(wb[0]) ? wb[0] : wb;
10
10
  /**Eg: camelCase */
11
11
  function camelCase(...wordBits) {
12
12
  const wordBitsReal = getWordBits(wordBits);
13
- return wordBitsReal.filter(e => e).map((w, i) => i === 0 ? w : capitalize1st(w)).join('');
13
+ return wordBitsReal.filter(e => e).map((w, i) => i === 0 ? w : capitalize1st(w, true)).join('');
14
14
  }
15
15
  exports.camelCase = camelCase;
16
16
  /**Eg: snake_case
@@ -33,13 +33,13 @@ exports.kebabCase = kebabCase;
33
33
  /**Eg: PascalCase undefined, null... => '' */
34
34
  function pascalCase(...wordBits) {
35
35
  const wordBitsReal = getWordBits(wordBits);
36
- return wordBitsReal.filter(e => e).map((w, i) => capitalize1st(w)).join('');
36
+ return wordBitsReal.filter(e => e).map(w => capitalize1st(w, true)).join('');
37
37
  }
38
38
  exports.pascalCase = pascalCase;
39
39
  /**Eg: Titlecase undefined, null... => '' */
40
40
  function titleCase(...wordBits) {
41
41
  const wordBitsReal = getWordBits(wordBits);
42
- return capitalize1st(wordBitsReal.filter(e => e).map(w => w.trim()).join(''));
42
+ return capitalize1st(wordBitsReal.filter(e => e).map(w => w.trim()).join(''), true);
43
43
  }
44
44
  exports.titleCase = titleCase;
45
45
  /**Eg: UPPERCASE undefined, null... => '' */
@@ -54,7 +54,7 @@ function lowerCase(...wordBits) {
54
54
  return wordBitsReal.filter(e => e).map(w => w.trim().toLowerCase()).join('');
55
55
  }
56
56
  exports.lowerCase = lowerCase;
57
- function capitalize1st(str = '') { return str ? str[0].toUpperCase() + str.slice(1) : str; }
57
+ function capitalize1st(str = '', lowercaseTheRest = false) { return str ? str[0].toUpperCase() + (lowercaseTheRest ? str.toLowerCase() : str).slice(1) : str; }
58
58
  exports.capitalize1st = capitalize1st;
59
59
  function camelCaseToWords(str) {
60
60
  return str ? str.trim().replace(/([A-Z])/g, '-$1').toLowerCase().split('-') : [];
@@ -168,7 +168,7 @@ function convertAccentedCharacters(str, config = {}) {
168
168
  }
169
169
  exports.convertAccentedCharacters = convertAccentedCharacters;
170
170
  let generatedTokens = []; // cache to avoid collision
171
- let lastTs = new Date().getTime();
171
+ let lastTs = Date.now();
172
172
  /** minLength 8 if unique
173
173
  * @param {Number} length default: 20
174
174
  * @param {Boolean} unique default: true. Generate a real unique token base on the date. min length will be min 8 in this case
@@ -176,19 +176,21 @@ let lastTs = new Date().getTime();
176
176
  * NOTE: to generate a mongoDB Random Id, use the params: 24, true, 'hexadecimal'
177
177
  */
178
178
  function generateToken(length = 20, unique = true, mode = 'alphanumeric') {
179
- let charConvNumeric = mode === 'alphanumeric' ? 36 : 16;
179
+ const charConvNumeric = mode === 'alphanumeric' ? 36 : 16;
180
180
  if (unique && length < 8)
181
181
  length = 8;
182
182
  let token;
183
183
  let tokenTs;
184
184
  do {
185
- tokenTs = (new Date()).getTime();
185
+ tokenTs = Date.now();
186
186
  token = unique ? tokenTs.toString(charConvNumeric) : '';
187
187
  while (token.length < length)
188
188
  token += Math.random().toString(charConvNumeric).substr(2, 1); // char alphaNumeric aléatoire
189
189
  } while (generatedTokens.includes(token));
190
- if (lastTs < tokenTs)
190
+ if (lastTs < tokenTs) {
191
191
  generatedTokens = []; // reset generated token on new timestamp because cannot collide
192
+ lastTs = Date.now();
193
+ }
192
194
  generatedTokens.push(token);
193
195
  return token;
194
196
  }
@@ -237,7 +239,8 @@ function nbOccurenceInString(baseString, searchedString, allowOverlapping = fals
237
239
  return baseString.length + 1;
238
240
  let n = 0;
239
241
  let pos = 0;
240
- let step = allowOverlapping ? 1 : searchedString.length;
242
+ const step = allowOverlapping ? 1 : searchedString.length;
243
+ // eslint-disable-next-line no-constant-condition
241
244
  while (true) {
242
245
  pos = baseString.indexOf(searchedString, pos);
243
246
  if (pos >= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/string-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/string-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topkat-utils",
3
- "version": "1.2.49",
3
+ "version": "1.2.50",
4
4
  "type": "commonjs",
5
5
  "types": "index.ts",
6
6
  "main": "dist",
@@ -1,16 +1,16 @@
1
1
  //----------------------------------------
2
2
  // STRING UTILS
3
3
  //----------------------------------------
4
- import { err500IfEmptyOrNotSet } from "./error-utils"
5
- import { ObjectGeneric } from "./types"
6
- import { isset } from "./isset"
4
+ import { err500IfEmptyOrNotSet } from './error-utils'
5
+ import { ObjectGeneric } from './types'
6
+ import { isset } from './isset'
7
7
 
8
8
  const getWordBits = (wb: string[] | [string[]]): string[] => Array.isArray(wb[0]) ? wb[0] : wb as any
9
9
 
10
10
  /**Eg: camelCase */
11
11
  export function camelCase(...wordBits: string[] | [string[]]): string {
12
12
  const wordBitsReal = getWordBits(wordBits)
13
- return wordBitsReal.filter(e => e).map((w, i) => i === 0 ? w : capitalize1st(w)).join('')
13
+ return wordBitsReal.filter(e => e).map((w, i) => i === 0 ? w : capitalize1st(w, true)).join('')
14
14
  }
15
15
 
16
16
  /**Eg: snake_case
@@ -31,13 +31,13 @@ export function kebabCase(...wordBits: string[] | [string[]]): string {
31
31
  /**Eg: PascalCase undefined, null... => '' */
32
32
  export function pascalCase(...wordBits: string[] | [string[]]): string {
33
33
  const wordBitsReal = getWordBits(wordBits)
34
- return wordBitsReal.filter(e => e).map((w, i) => capitalize1st(w)).join('')
34
+ return wordBitsReal.filter(e => e).map(w => capitalize1st(w, true)).join('')
35
35
  }
36
36
 
37
37
  /**Eg: Titlecase undefined, null... => '' */
38
38
  export function titleCase(...wordBits: string[] | [string[]]): string {
39
39
  const wordBitsReal = getWordBits(wordBits)
40
- return capitalize1st(wordBitsReal.filter(e => e).map(w => w.trim()).join(''))
40
+ return capitalize1st(wordBitsReal.filter(e => e).map(w => w.trim()).join(''), true)
41
41
  }
42
42
 
43
43
  /**Eg: UPPERCASE undefined, null... => '' */
@@ -52,7 +52,7 @@ export function lowerCase(...wordBits: string[] | [string[]]): string {
52
52
  return wordBitsReal.filter(e => e).map(w => w.trim().toLowerCase()).join('')
53
53
  }
54
54
 
55
- export function capitalize1st(str = ''): string { return str ? str[0].toUpperCase() + str.slice(1) : str }
55
+ export function capitalize1st(str = '', lowercaseTheRest = false): string { return str ? str[0].toUpperCase() + (lowercaseTheRest ? str.toLowerCase() : str).slice(1) : str }
56
56
 
57
57
  export function camelCaseToWords(str: string): string[] {
58
58
  return str ? str.trim().replace(/([A-Z])/g, '-$1').toLowerCase().split('-') : []
@@ -155,32 +155,35 @@ export function convertAccentedCharacters(str : string, config: { removeNumbers?
155
155
  .replace(/[ÔÖ]/g, 'O')
156
156
  .replace(/[ùúû]/g, 'u')
157
157
  .replace(/[ÙÚÛ]/g, 'U')
158
- if (config.removeNumbers === true) output = output.replace(/\d+/g, '');
159
- if (config.removeSpecialChars === true) output = output.replace(/[^A-Za-z0-9 ]/g, '');
160
- if (config.removeSpaces === true) output = output.replace(/\s+/g, '');
161
- return output;
158
+ if (config.removeNumbers === true) output = output.replace(/\d+/g, '')
159
+ if (config.removeSpecialChars === true) output = output.replace(/[^A-Za-z0-9 ]/g, '')
160
+ if (config.removeSpaces === true) output = output.replace(/\s+/g, '')
161
+ return output
162
162
  }
163
163
 
164
164
 
165
165
  let generatedTokens: string[] = [] // cache to avoid collision
166
- let lastTs = new Date().getTime()
167
- /** minLength 8 if unique
166
+ let lastTs = Date.now()
167
+ /** minLength 8 if unique
168
168
  * @param {Number} length default: 20
169
169
  * @param {Boolean} unique default: true. Generate a real unique token base on the date. min length will be min 8 in this case
170
170
  * @param {string} mode one of ['alphanumeric', 'hexadecimal']
171
171
  * NOTE: to generate a mongoDB Random Id, use the params: 24, true, 'hexadecimal'
172
172
  */
173
173
  export function generateToken(length = 20, unique = true, mode: 'alphanumeric' | 'hexadecimal' = 'alphanumeric') {
174
- let charConvNumeric = mode === 'alphanumeric' ? 36 : 16
174
+ const charConvNumeric = mode === 'alphanumeric' ? 36 : 16
175
175
  if (unique && length < 8) length = 8
176
176
  let token
177
177
  let tokenTs
178
178
  do {
179
- tokenTs = (new Date()).getTime()
179
+ tokenTs = Date.now()
180
180
  token = unique ? tokenTs.toString(charConvNumeric) : ''
181
181
  while (token.length < length) token += Math.random().toString(charConvNumeric).substr(2, 1) // char alphaNumeric aléatoire
182
182
  } while (generatedTokens.includes(token))
183
- if (lastTs < tokenTs) generatedTokens = [] // reset generated token on new timestamp because cannot collide
183
+ if (lastTs < tokenTs) {
184
+ generatedTokens = [] // reset generated token on new timestamp because cannot collide
185
+ lastTs = Date.now()
186
+ }
184
187
  generatedTokens.push(token)
185
188
  return token
186
189
  }
@@ -217,9 +220,9 @@ export type MiniTemplaterOptions = {
217
220
  valueWhenContentUndefined: string
218
221
  }
219
222
  /** Replace variables in a string like: `Hello {{userName}}!`
220
- * @param {String} content
223
+ * @param {String} content
221
224
  * @param {Object} varz object with key => value === toReplace => replacer
222
- * @param {Object} options
225
+ * @param {Object} options
223
226
  * * valueWhenNotSet => replacer for undefined values. Default: ''
224
227
  * * regexp => must be 'g' and first capturing group matching the value to replace. Default: /{{\s*([^}]*)\s*}}/g
225
228
  */
@@ -243,14 +246,15 @@ export function nbOccurenceInString(baseString: string, searchedString:string, a
243
246
 
244
247
  let n = 0
245
248
  let pos = 0
246
- let step = allowOverlapping ? 1 : searchedString.length
249
+ const step = allowOverlapping ? 1 : searchedString.length
247
250
 
251
+ // eslint-disable-next-line no-constant-condition
248
252
  while (true) {
249
- pos = baseString.indexOf(searchedString, pos);
253
+ pos = baseString.indexOf(searchedString, pos)
250
254
  if (pos >= 0) {
251
- ++n;
252
- pos += step;
253
- } else break;
255
+ ++n
256
+ pos += step
257
+ } else break
254
258
  }
255
- return n;
259
+ return n
256
260
  }