klawtil 0.0.6 → 0.9.0

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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # klawtil
1
+ # klawtil ![GitHub](https://img.shields.io/github/license/klawdyo/klawtil?style=flat-square) ![GitHub](https://img.shields.io/github/package-json/v/klawdyo/klawtil?style=flat-square) ![GitHub](https://img.shields.io/github/stars/klawdyo/klawtil?style=flat-square) ![GitHub](https://img.shields.io/github/repo-size/klawdyo/klawtil?style=flat-square) ![GitHub](https://img.shields.io/github/languages/code-size/klawdyo/klawtil?style=flat-square)
2
2
 
3
3
  Util functions library
4
4
 
@@ -18,10 +18,10 @@ npm install klawtil
18
18
 
19
19
  ```js
20
20
  // Modules
21
- const { isCPF, isCNPJ } = require("klawtil");
21
+ const { whiteList, isFalsy } = require("klawtil");
22
22
 
23
23
  // ES6
24
- import { isCPF, isCNPJ } from "klawtil";
24
+ import { whiteList, isFalsy } from "klawtil";
25
25
  ```
26
26
 
27
27
  ## Content Table
@@ -49,7 +49,9 @@ import { isCPF, isCNPJ } from "klawtil";
49
49
  - [objectPath](#objectPath)
50
50
  - [groupBy](#groupBy)
51
51
  - [prefixObjectKeys](#prefixObjectKeys)
52
+ - [objectFlat](#objectFlat)
52
53
  - [whiteList](#whiteList)
54
+ - [clearFalsy](#clearFalsy)
53
55
 
54
56
  [**String**](#String)
55
57
 
@@ -61,6 +63,7 @@ import { isCPF, isCNPJ } from "klawtil";
61
63
  - [insertAtPosition](#insertAtPosition)
62
64
  - [removeFromPosition](#removeFromPosition)
63
65
  - [applyMask](#applyMask)
66
+ - [applyVars](#applyVars)
64
67
 
65
68
  [**Random**](#Random)
66
69
 
@@ -306,6 +309,31 @@ prefixObjectKeys(original, "people.*.");
306
309
  // -> { 'people.*.name': 'ze', 'people.*.age': 23}
307
310
  ```
308
311
 
312
+ ### objectFlat
313
+
314
+ ```js
315
+ const obj = {
316
+ id: 1,
317
+ name: "claudio",
318
+ age: 39,
319
+ email: "email@mail.com",
320
+ address: {
321
+ street: "Monkey St.",
322
+ number: "599",
323
+ city: "Halalala",
324
+ zipcode: "9876543",
325
+ },
326
+ };
327
+
328
+ objectFlat(obj);
329
+ // ->
330
+ // {
331
+ // id: 1, name: 'claudio', age: 39, email: 'email@mail.com',
332
+ // 'address.street': 'Monkey St.', 'address.number': '599',
333
+ // 'address.city': 'Halalala', 'address.zipcode': '9876543'
334
+ // }
335
+ ```
336
+
309
337
  ### whiteList
310
338
 
311
339
  ```js
@@ -323,6 +351,13 @@ whiteList([address, address], ["id", "city_id"]);
323
351
  // -> [ { id: 1, city_id: '123' }, { id: 1, city_id: '123' } ]
324
352
  ```
325
353
 
354
+ ### clearFalsy
355
+
356
+ ```js
357
+ clearFalsy({ id: 1, age: "0", confirmed: "false", birth: "" }); // -> { id: 1 }
358
+ clearFalsy({ id: 1, age: "0", idade: "NaN", birth: "" }); // -> { id: 1 }
359
+ ```
360
+
326
361
  ## String
327
362
 
328
363
  ### slug
@@ -384,6 +419,54 @@ applyMask("59650000", "00.000-000"); // -> 59.650-000
384
419
  applyMask("99877665544", "(00) 0 0000-0000"); // -> (99) 8 7766-5544
385
420
  ```
386
421
 
422
+ ### applyVars
423
+
424
+ ```js
425
+ // Object with some random vars
426
+ const vars = {
427
+ id: 1,
428
+ name: "claudio",
429
+ age: 39,
430
+ email: "email@mail.com",
431
+ address: {
432
+ street: "Monkey St.",
433
+ number: "599",
434
+ city: "Halalala",
435
+ zipcode: "9876543",
436
+ },
437
+ };
438
+
439
+ applyVars("My name is :name and my email is :email.", vars);
440
+ // -> 'My name is claudio and my email is email@mail.com.'
441
+
442
+ applyVars("My name is {name} and my email is {email}.", vars, {
443
+ start: "{",
444
+ end: "}",
445
+ });
446
+ // -> 'My name is claudio and my email is email@mail.com.'
447
+
448
+ applyVars("My name is {{name}} and my email is {{email}}.", vars, {
449
+ start: "{{",
450
+ end: "}}",
451
+ });
452
+ // -> 'My name is claudio and my email is email@mail.com.'
453
+
454
+
455
+ applyVars(
456
+ "My name is :name and my address is :address.street, :address.zipcode",
457
+ vars
458
+ )
459
+ // -> "My name is claudio and my address is Monkey St., 9876543");
460
+
461
+
462
+ applyVars(
463
+ "My name is {name} and my address is {address.street}, {address.zipcode}",
464
+ vars,
465
+ { start: "{", end: "}" }
466
+ // -> "My name is claudio and my address is Monkey St., 9876543");
467
+
468
+ ```
469
+
387
470
  ## Random
388
471
 
389
472
  ### keyGenerator
@@ -408,3 +491,15 @@ randomNumber(4); // -> 831
408
491
  randomLetter(); // -> A
409
492
  randomLetter(); // -> S
410
493
  ```
494
+
495
+ ## Tests
496
+
497
+ 100% tested and 100% tests coverage
498
+
499
+ ![image](https://user-images.githubusercontent.com/100168/153757107-cbc3de9d-f601-487b-9a5d-4c2f4e74241f.png)
500
+
501
+ ## Build
502
+
503
+ Tested on node versions 10, 12, 14 and 16
504
+
505
+ ![image](https://user-images.githubusercontent.com/100168/153756200-57f2b7a9-28c2-4927-bd44-6e57674c07ab.png)
@@ -3,6 +3,14 @@
3
3
  * Funções soltas de cunho geral que servem em outros locais do app
4
4
  *
5
5
  ****************************************************/
6
+ /*************************************************************************
7
+ *
8
+ * TYPES
9
+ */
10
+ declare type ApplyVarsOptions = {
11
+ start: string;
12
+ end: string;
13
+ };
6
14
  /*************************************************************************
7
15
  *
8
16
  * COMPARAÇÃO DE VALORES
@@ -111,30 +119,21 @@ export declare const isNumeric: (value: any, forceType?: boolean) => boolean;
111
119
  * Verifica se o valor passado bate com algum dos tipos
112
120
  * http://tobyho.com/2011/01/28/checking-types-in-javascript/
113
121
  *
114
- * checkTypes( 1, String )
115
- * -> false
116
- * checkTypes( '1', String )
117
- * -> true
118
- * checkTypes( 1, Number )
119
- * -> true
120
- * checkTypes( '1', Number )
121
- * -> false
122
- * checkTypes( 1, [String, Number] )
123
- * -> true
124
- * checkTypes( 'a', [String, Number] )
125
- * -> true
126
- * checkTypes( {}, [String, Number] )
127
- * -> false
128
- * checkTypes( [], [String, Number] )
129
- * -> false
130
- * checkTypes( [], [String, Number, Array] )
131
- * -> true
132
- * checkTypes( {}, [String, Number, Array] )
133
- * -> false
134
- * checkTypes( {}, [String, Number, Array, Object] )
135
- * -> true
136
- *
122
+ * checkTypes( 1, String ) // -> false
123
+ * checkTypes( '1', String ) // -> true
124
+ * checkTypes( 1, Number ) // -> true
125
+ * checkTypes( '1', Number ) // -> false
126
+ * checkTypes( 1, [String, Number] ) // -> true
127
+ * checkTypes( 'a', [String, Number] ) // -> true
128
+ * checkTypes( {}, [String, Number] ) // -> false
129
+ * checkTypes( [], [String, Number] ) // -> false
130
+ * checkTypes( [], [String, Number, Array] ) // -> true
131
+ * checkTypes( {}, [String, Number, Array] ) // -> false
132
+ * checkTypes( {}, [String, Number, Array, Object] ) // -> true
137
133
  *
134
+ * @param {*} value
135
+ * @param {*|[*]} types
136
+ * @returns {Boolean}
138
137
  */
139
138
  export declare const checkTypes: (value: any, types: any | any[]) => boolean;
140
139
  /*************************************************************************
@@ -144,14 +143,14 @@ export declare const checkTypes: (value: any, types: any | any[]) => boolean;
144
143
  /**
145
144
  * Verifica se é um e-mail
146
145
  *
147
- expect(isEmail("claudio")).toBe(false);
148
- expect(isEmail("claudio@claudio.com")).toBe(true);
149
- expect(isEmail("")).toBe(false);
150
- expect(isEmail(null)).toBe(false);
151
- expect(isEmail(undefined)).toBe(false);
152
- expect(isEmail([])).toBe(false);
153
- expect(isEmail({})).toBe(false);
154
- expect(isEmail(123)).toBe(false);
146
+ * isEmail("claudio") // -> false
147
+ * isEmail("claudio@claudio.com") // -> true
148
+ * isEmail("") // -> false
149
+ * isEmail(null) // -> false
150
+ * isEmail(undefined) // -> false
151
+ * isEmail([]) // -> false
152
+ * isEmail({}) // -> false
153
+ * isEmail(123) // -> false
155
154
  *
156
155
  */
157
156
  export declare const isEmail: (value: any) => boolean;
@@ -282,11 +281,11 @@ export declare const intersect: (array1: any[], array2: any[]) => any[];
282
281
  * let obj = { a:'1', b:{ c:10, d:2, e:{ f:'4', g:'5', h:{ i:'6' } } } }
283
282
  * objectPath( obj , 'b.e.h.i' ); // -> '6'
284
283
  *
285
- * @param {Object} objObject
286
- * @param {String} strAddress Endereço no formato 'chave.subchave.outrasubchave'
287
- * @return {Mixed} Valor de acordo com o caminho
284
+ * @param {Object} obj
285
+ * @param {String} path Endereço no formato 'chave.subchave.outrasubchave'
286
+ * @returns {*} Valor de acordo com o caminho
288
287
  */
289
- export declare const objectPath: (objObject: any, strAddress: string) => any;
288
+ export declare function objectPath(obj: any, path: string): any;
290
289
  /********************
291
290
  * FUNÇÕES DE APOIO
292
291
  */
@@ -374,6 +373,10 @@ export declare const slug: (value: string) => string;
374
373
  /**
375
374
  * Converte um número passado para o formato do Real Brasileiro
376
375
  *
376
+ * https://stackoverflow.com/a/64909632/3240078
377
+ * NumberFormat use small non-breaking space (\u202f) for thousand separator
378
+ * and normal non-breaking space beforece currency (\xa0)
379
+ *
377
380
  * @example
378
381
  * currencyBR(12.34) // -> 'R$ 12,34'
379
382
  * currencyBR('12.34') // -> 'R$ 12,34'
@@ -417,7 +420,35 @@ export declare const upperFirst: (value: string) => string;
417
420
  * @param {Object} obj Objecto original
418
421
  * @param {String} prefix Prefixo que será aplicado
419
422
  */
420
- export declare const prefixObjectKeys: (obj: any, prefix?: string) => any;
423
+ export declare function prefixObjectKeys(obj: any, prefix?: string): any;
424
+ /**
425
+ * objectFlat()
426
+ * Recebe um objeto e o transforma em uma versão plana, com suas chaves
427
+ * multinível unidas por um ponto.
428
+ *
429
+ * @link https://stackoverflow.com/a/34514143/3240078
430
+ *
431
+ * @example
432
+ *
433
+ * const obj = {
434
+ * id: 1, name: 'claudio', age: 39, email: 'email@mail.com',
435
+ * address: {
436
+ * street': 'Monkey St.', number': '599', city': 'Halalala', zipcode': '9876543'
437
+ * }
438
+ * }
439
+ *
440
+ * objectFlat( obj )
441
+ * // ->
442
+ * {
443
+ * id: 1, name: 'claudio', age: 39, email: 'email@mail.com',
444
+ * 'address.street': 'Monkey St.', 'address.number': '599',
445
+ * 'address.city': 'Halalala', 'address.zipcode': '9876543'
446
+ * }
447
+ *
448
+ * @param {Object} obj
449
+ * @returns {Object}
450
+ */
451
+ export declare function objectFlat(obj: Record<string, any>): Record<string, any>;
421
452
  /**
422
453
  * Mantém somente as chaves do objeto que estão na lista branca
423
454
  *
@@ -447,3 +478,128 @@ export declare const prefixObjectKeys: (obj: any, prefix?: string) => any;
447
478
  * @param {Array} keys Lista de chaves permitidas
448
479
  */
449
480
  export declare const whiteList: (obj: any | any[], keys: any[]) => any;
481
+ /**
482
+ * Substitui os caracteres acentuados por semelhantes não acentuados respeitando
483
+ * maiúsculas e minúsculas
484
+ *
485
+ * @example
486
+ * removeAccent('Açu') // -> Acu
487
+ *
488
+ * @param value
489
+ * @returns
490
+ */
491
+ export declare const removeAccent: (value: string) => string;
492
+ /**
493
+ * randomNumber()
494
+ * Cria um número aleatório com o número de caracteres
495
+ *
496
+ * @example
497
+ * randomNumber(8, true) // -> 00083159
498
+ * randomNumber(4) // -> 831
499
+ *
500
+ * @param {Integer} length
501
+ * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos
502
+ * @returns {String}
503
+ */
504
+ export declare function randomNumber(length: number, forceLength?: boolean): number | string;
505
+ /**
506
+ * Limpa um número informado, retirando caracteres diferentes de números,
507
+ * preenchendo com zeros à esquerda se for menor que o tamanho exato e
508
+ * removendo uma parte do número se for maior que tamanho definido.
509
+ *
510
+ * 1) Retira caracteres não-numéricos
511
+ * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'
512
+ * 3) Remove caracteres à direita se 'value' for maior que 'length'
513
+ *
514
+ * @example
515
+ * clearNumber(12345-6, 6) // -> 123456
516
+ * clearNumber(12345678, 3) // -> 123
517
+ * clearNumber(12345, 10) // -> 0000001234
518
+ *
519
+ * @param {Number|String} value
520
+ * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
521
+ * @returns {String} Número com o tamanho exato
522
+ */
523
+ export declare function clearNumber(value: string | number, length?: number | null): string;
524
+ /**
525
+ * Limpa os valores falsy do objeto informado
526
+ *
527
+ * @example
528
+ * clearFalsy({ id:1, age:'0', idade: 'NaN', birth: '' }); // -> { id: 1 }
529
+ *
530
+ * @param {Object} value
531
+ * @returns {Object} Objeto sem os valores
532
+ */
533
+ export declare function clearFalsy(value: Record<string, any>): Record<string, any>;
534
+ /**
535
+ * insertAtPosition()
536
+ * Insere um conjunto de caracteres em um local específico de uma string
537
+ *
538
+ * @example
539
+ * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB
540
+ * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555
541
+ *
542
+ * @param {String} value Valor original
543
+ * @param {String|Number} insertValue Valor que será inserido
544
+ * @param {Number} position Posição que receberá o novo valor
545
+ * @returns {String}
546
+ *
547
+ */
548
+ export declare function insertAtPosition(value: string, insertValue: string | number, position: number): string;
549
+ /**
550
+ * removeFromPosition()
551
+ * Retira um conjunto de caracteres de um local específico de uma string
552
+ *
553
+ * @example
554
+ * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555
555
+ * removeFromPosition('AAACBBB', 3,4) // -> AAABBB
556
+ *
557
+ * @param {String|Number} value Valor original
558
+ * @param {String|Number} startPosition
559
+ * @param {String|Number} endPosition
560
+ * @returns {String}
561
+ *
562
+ */
563
+ export declare function removeFromPosition(value: string, startPosition: number, endPosition: number): string;
564
+ /**
565
+ * applyVars()
566
+ * Aplica variáveis a um texto
567
+ *
568
+ * @example
569
+ * const values = { id: 1, name: 'claudio', age: 39, email: 'email@mail.com' }
570
+ *
571
+ * applyVars('Olá, :name. Seu e-mail ainda é :email?', values)
572
+ * applyVars('Olá, {name}. Seu e-mail ainda é {email}?', values, { start: '{', end: '}' })
573
+ * applyVars('Olá, {{name}}. Seu e-mail ainda é {{email}}?', values, { start: '{{', end: '}}'})
574
+ *
575
+ * @param {String} text
576
+ * @param {Object} vars
577
+ * @param {ApplyVarsOptions} options
578
+ */
579
+ export declare function applyVars(value: string, vars: Record<string, any>, options?: Partial<ApplyVarsOptions>): string;
580
+ /**
581
+ * applyMask()
582
+ * Aplica uma máscara a uma string
583
+ *
584
+ * @example
585
+ * applyMask('59650000', '00.000-000') // -> 59.650-000
586
+ * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544
587
+ *
588
+ * @param {String|Number} value Valor original
589
+ * @param {String} mask
590
+ * @returns {String}
591
+ *
592
+ */
593
+ export declare function applyMask(value: string | number, mask: string): string;
594
+ /**
595
+ * randomLetter()
596
+ * Pega uma letra maiúscula aleatoriamente
597
+ *
598
+ * @example
599
+ * randomLetter() // -> A
600
+ * randomLetter() // -> S
601
+ *
602
+ * @returns {String}
603
+ */
604
+ export declare function randomLetter(): string;
605
+ export {};
package/dist/tsc/main.js CHANGED
@@ -9,7 +9,7 @@
9
9
  *
10
10
  ****************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.whiteList = exports.prefixObjectKeys = exports.upperFirst = exports.currencyBR = exports.slug = exports.keyGenerator = exports.groupBy = exports.objectPath = exports.intersect = exports.isTruthy = exports.isFalsy = exports.isTime = exports.isDateBR = exports.isDate = exports.isEmail = exports.checkTypes = exports.isNumeric = exports.isFloat = exports.isInteger = exports.isString = exports.isObject = exports.isArray = exports.empty = void 0;
12
+ exports.randomLetter = exports.applyMask = exports.applyVars = exports.removeFromPosition = exports.insertAtPosition = exports.clearFalsy = exports.clearNumber = exports.randomNumber = exports.removeAccent = exports.whiteList = exports.objectFlat = exports.prefixObjectKeys = exports.upperFirst = exports.currencyBR = exports.slug = exports.keyGenerator = exports.groupBy = exports.objectPath = exports.intersect = exports.isTruthy = exports.isFalsy = exports.isTime = exports.isDateBR = exports.isDate = exports.isEmail = exports.checkTypes = exports.isNumeric = exports.isFloat = exports.isInteger = exports.isString = exports.isObject = exports.isArray = exports.empty = void 0;
13
13
  /*************************************************************************
14
14
  *
15
15
  * COMPARAÇÃO DE VALORES
@@ -157,30 +157,21 @@ exports.isNumeric = isNumeric;
157
157
  * Verifica se o valor passado bate com algum dos tipos
158
158
  * http://tobyho.com/2011/01/28/checking-types-in-javascript/
159
159
  *
160
- * checkTypes( 1, String )
161
- * -> false
162
- * checkTypes( '1', String )
163
- * -> true
164
- * checkTypes( 1, Number )
165
- * -> true
166
- * checkTypes( '1', Number )
167
- * -> false
168
- * checkTypes( 1, [String, Number] )
169
- * -> true
170
- * checkTypes( 'a', [String, Number] )
171
- * -> true
172
- * checkTypes( {}, [String, Number] )
173
- * -> false
174
- * checkTypes( [], [String, Number] )
175
- * -> false
176
- * checkTypes( [], [String, Number, Array] )
177
- * -> true
178
- * checkTypes( {}, [String, Number, Array] )
179
- * -> false
180
- * checkTypes( {}, [String, Number, Array, Object] )
181
- * -> true
182
- *
160
+ * checkTypes( 1, String ) // -> false
161
+ * checkTypes( '1', String ) // -> true
162
+ * checkTypes( 1, Number ) // -> true
163
+ * checkTypes( '1', Number ) // -> false
164
+ * checkTypes( 1, [String, Number] ) // -> true
165
+ * checkTypes( 'a', [String, Number] ) // -> true
166
+ * checkTypes( {}, [String, Number] ) // -> false
167
+ * checkTypes( [], [String, Number] ) // -> false
168
+ * checkTypes( [], [String, Number, Array] ) // -> true
169
+ * checkTypes( {}, [String, Number, Array] ) // -> false
170
+ * checkTypes( {}, [String, Number, Array, Object] ) // -> true
183
171
  *
172
+ * @param {*} value
173
+ * @param {*|[*]} types
174
+ * @returns {Boolean}
184
175
  */
185
176
  const checkTypes = (value, types) => {
186
177
  // null ou undefined retornam false, independente do types
@@ -201,14 +192,14 @@ exports.checkTypes = checkTypes;
201
192
  /**
202
193
  * Verifica se é um e-mail
203
194
  *
204
- expect(isEmail("claudio")).toBe(false);
205
- expect(isEmail("claudio@claudio.com")).toBe(true);
206
- expect(isEmail("")).toBe(false);
207
- expect(isEmail(null)).toBe(false);
208
- expect(isEmail(undefined)).toBe(false);
209
- expect(isEmail([])).toBe(false);
210
- expect(isEmail({})).toBe(false);
211
- expect(isEmail(123)).toBe(false);
195
+ * isEmail("claudio") // -> false
196
+ * isEmail("claudio@claudio.com") // -> true
197
+ * isEmail("") // -> false
198
+ * isEmail(null) // -> false
199
+ * isEmail(undefined) // -> false
200
+ * isEmail([]) // -> false
201
+ * isEmail({}) // -> false
202
+ * isEmail(123) // -> false
212
203
  *
213
204
  */
214
205
  const isEmail = (value) => {
@@ -372,17 +363,17 @@ exports.intersect = intersect;
372
363
  * let obj = { a:'1', b:{ c:10, d:2, e:{ f:'4', g:'5', h:{ i:'6' } } } }
373
364
  * objectPath( obj , 'b.e.h.i' ); // -> '6'
374
365
  *
375
- * @param {Object} objObject
376
- * @param {String} strAddress Endereço no formato 'chave.subchave.outrasubchave'
377
- * @return {Mixed} Valor de acordo com o caminho
366
+ * @param {Object} obj
367
+ * @param {String} path Endereço no formato 'chave.subchave.outrasubchave'
368
+ * @returns {*} Valor de acordo com o caminho
378
369
  */
379
- const objectPath = (objObject, strAddress) => {
380
- const keys = strAddress.split(".");
370
+ function objectPath(obj, path) {
371
+ const keys = path.split(".");
381
372
  keys.forEach((key) => {
382
- objObject = objObject[key];
373
+ obj = obj[key];
383
374
  });
384
- return objObject;
385
- };
375
+ return obj;
376
+ }
386
377
  exports.objectPath = objectPath;
387
378
  /********************
388
379
  * FUNÇÕES DE APOIO
@@ -515,6 +506,10 @@ exports.slug = slug;
515
506
  /**
516
507
  * Converte um número passado para o formato do Real Brasileiro
517
508
  *
509
+ * https://stackoverflow.com/a/64909632/3240078
510
+ * NumberFormat use small non-breaking space (\u202f) for thousand separator
511
+ * and normal non-breaking space beforece currency (\xa0)
512
+ *
518
513
  * @example
519
514
  * currencyBR(12.34) // -> 'R$ 12,34'
520
515
  * currencyBR('12.34') // -> 'R$ 12,34'
@@ -529,7 +524,10 @@ const currencyBR = (value) => {
529
524
  return String(new Intl.NumberFormat("pt-BR", {
530
525
  style: "currency",
531
526
  currency: "BRL",
532
- }).format(+value)).replace(".", ",");
527
+ }).format(+value))
528
+ .replace(".", ",")
529
+ .replace(/[\xa0\u202f]/g, "");
530
+ // .replace(/\u202f/g, "");
533
531
  };
534
532
  exports.currencyBR = currencyBR;
535
533
  /**
@@ -582,7 +580,7 @@ exports.upperFirst = upperFirst;
582
580
  * @param {Object} obj Objecto original
583
581
  * @param {String} prefix Prefixo que será aplicado
584
582
  */
585
- const prefixObjectKeys = (obj, prefix = "") => {
583
+ function prefixObjectKeys(obj, prefix = "") {
586
584
  if (!prefix)
587
585
  return obj;
588
586
  const output = {};
@@ -590,8 +588,65 @@ const prefixObjectKeys = (obj, prefix = "") => {
590
588
  .map((key) => ({ key, prefixed: `${prefix}${key}` }))
591
589
  .forEach((item) => (output[item.prefixed] = obj[item.key]));
592
590
  return output;
593
- };
591
+ }
594
592
  exports.prefixObjectKeys = prefixObjectKeys;
593
+ /**
594
+ * objectFlat()
595
+ * Recebe um objeto e o transforma em uma versão plana, com suas chaves
596
+ * multinível unidas por um ponto.
597
+ *
598
+ * @link https://stackoverflow.com/a/34514143/3240078
599
+ *
600
+ * @example
601
+ *
602
+ * const obj = {
603
+ * id: 1, name: 'claudio', age: 39, email: 'email@mail.com',
604
+ * address: {
605
+ * street': 'Monkey St.', number': '599', city': 'Halalala', zipcode': '9876543'
606
+ * }
607
+ * }
608
+ *
609
+ * objectFlat( obj )
610
+ * // ->
611
+ * {
612
+ * id: 1, name: 'claudio', age: 39, email: 'email@mail.com',
613
+ * 'address.street': 'Monkey St.', 'address.number': '599',
614
+ * 'address.city': 'Halalala', 'address.zipcode': '9876543'
615
+ * }
616
+ *
617
+ * @param {Object} obj
618
+ * @returns {Object}
619
+ */
620
+ function objectFlat(obj) {
621
+ function traverseAndFlatten(currentNode, target, flattenedKey = undefined) {
622
+ for (const key in currentNode) {
623
+ // eslint-disable-next-line no-prototype-builtins
624
+ if (currentNode.hasOwnProperty(key)) {
625
+ let newKey;
626
+ if (flattenedKey === undefined) {
627
+ newKey = key;
628
+ }
629
+ else {
630
+ newKey = flattenedKey + "." + key;
631
+ }
632
+ const value = currentNode[key];
633
+ if (typeof value === "object") {
634
+ traverseAndFlatten(value, target, newKey);
635
+ }
636
+ else {
637
+ target[newKey] = value;
638
+ }
639
+ }
640
+ }
641
+ }
642
+ function flatten(obj) {
643
+ const flattenedObject = {};
644
+ traverseAndFlatten(obj, flattenedObject);
645
+ return flattenedObject;
646
+ }
647
+ return flatten(obj);
648
+ }
649
+ exports.objectFlat = objectFlat;
595
650
  /**
596
651
  * Mantém somente as chaves do objeto que estão na lista branca
597
652
  *
@@ -633,4 +688,193 @@ const whiteList = (obj, keys) => {
633
688
  return obj;
634
689
  };
635
690
  exports.whiteList = whiteList;
691
+ /**
692
+ * Substitui os caracteres acentuados por semelhantes não acentuados respeitando
693
+ * maiúsculas e minúsculas
694
+ *
695
+ * @example
696
+ * removeAccent('Açu') // -> Acu
697
+ *
698
+ * @param value
699
+ * @returns
700
+ */
701
+ const removeAccent = (value) => {
702
+ value = String(value);
703
+ const accents = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝŔÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŕ";
704
+ const noAccents = "AAAAAAACEEEEIIIIDNOOOOOOUUUUYRsBaaaaaaaceeeeiiiionoooooouuuuybyr";
705
+ let newValue = "";
706
+ for (let i = 0; i < value.length; i++) {
707
+ let troca = false;
708
+ for (let a = 0; a < accents.length; a++) {
709
+ if (value.substr(i, 1) == accents.substr(a, 1)) {
710
+ newValue += noAccents.substr(a, 1);
711
+ troca = true;
712
+ break;
713
+ }
714
+ }
715
+ if (troca == false) {
716
+ newValue += value.substr(i, 1);
717
+ }
718
+ }
719
+ return newValue;
720
+ };
721
+ exports.removeAccent = removeAccent;
722
+ /**
723
+ * randomNumber()
724
+ * Cria um número aleatório com o número de caracteres
725
+ *
726
+ * @example
727
+ * randomNumber(8, true) // -> 00083159
728
+ * randomNumber(4) // -> 831
729
+ *
730
+ * @param {Integer} length
731
+ * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos
732
+ * @returns {String}
733
+ */
734
+ function randomNumber(length, forceLength = false) {
735
+ const value = Math.floor(Math.random() * Math.pow(10, length));
736
+ if (forceLength)
737
+ return String(value).padStart(length, "0");
738
+ return +value;
739
+ }
740
+ exports.randomNumber = randomNumber;
741
+ /**
742
+ * Limpa um número informado, retirando caracteres diferentes de números,
743
+ * preenchendo com zeros à esquerda se for menor que o tamanho exato e
744
+ * removendo uma parte do número se for maior que tamanho definido.
745
+ *
746
+ * 1) Retira caracteres não-numéricos
747
+ * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'
748
+ * 3) Remove caracteres à direita se 'value' for maior que 'length'
749
+ *
750
+ * @example
751
+ * clearNumber(12345-6, 6) // -> 123456
752
+ * clearNumber(12345678, 3) // -> 123
753
+ * clearNumber(12345, 10) // -> 0000001234
754
+ *
755
+ * @param {Number|String} value
756
+ * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
757
+ * @returns {String} Número com o tamanho exato
758
+ */
759
+ function clearNumber(value, length = null) {
760
+ const clearedNumber = String(value).replace(/([^\d]+)/gi, "");
761
+ if (!length || clearedNumber.length === length)
762
+ return clearedNumber;
763
+ return clearedNumber.padStart(length, "0").substring(0, length);
764
+ }
765
+ exports.clearNumber = clearNumber;
766
+ /**
767
+ * Limpa os valores falsy do objeto informado
768
+ *
769
+ * @example
770
+ * clearFalsy({ id:1, age:'0', idade: 'NaN', birth: '' }); // -> { id: 1 }
771
+ *
772
+ * @param {Object} value
773
+ * @returns {Object} Objeto sem os valores
774
+ */
775
+ function clearFalsy(value) {
776
+ Object.keys(value).forEach((key) => {
777
+ if ((0, exports.isFalsy)(value[key]))
778
+ delete value[key];
779
+ });
780
+ return value;
781
+ }
782
+ exports.clearFalsy = clearFalsy;
783
+ /**
784
+ * insertAtPosition()
785
+ * Insere um conjunto de caracteres em um local específico de uma string
786
+ *
787
+ * @example
788
+ * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB
789
+ * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555
790
+ *
791
+ * @param {String} value Valor original
792
+ * @param {String|Number} insertValue Valor que será inserido
793
+ * @param {Number} position Posição que receberá o novo valor
794
+ * @returns {String}
795
+ *
796
+ */
797
+ function insertAtPosition(value, insertValue, position) {
798
+ return `${value.substring(0, position)}${insertValue}${value.substring(position)}`;
799
+ }
800
+ exports.insertAtPosition = insertAtPosition;
801
+ /**
802
+ * removeFromPosition()
803
+ * Retira um conjunto de caracteres de um local específico de uma string
804
+ *
805
+ * @example
806
+ * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555
807
+ * removeFromPosition('AAACBBB', 3,4) // -> AAABBB
808
+ *
809
+ * @param {String|Number} value Valor original
810
+ * @param {String|Number} startPosition
811
+ * @param {String|Number} endPosition
812
+ * @returns {String}
813
+ *
814
+ */
815
+ function removeFromPosition(value, startPosition, endPosition) {
816
+ return [value.slice(0, startPosition), value.slice(endPosition)].join("");
817
+ }
818
+ exports.removeFromPosition = removeFromPosition;
819
+ /**
820
+ * applyVars()
821
+ * Aplica variáveis a um texto
822
+ *
823
+ * @example
824
+ * const values = { id: 1, name: 'claudio', age: 39, email: 'email@mail.com' }
825
+ *
826
+ * applyVars('Olá, :name. Seu e-mail ainda é :email?', values)
827
+ * applyVars('Olá, {name}. Seu e-mail ainda é {email}?', values, { start: '{', end: '}' })
828
+ * applyVars('Olá, {{name}}. Seu e-mail ainda é {{email}}?', values, { start: '{{', end: '}}'})
829
+ *
830
+ * @param {String} text
831
+ * @param {Object} vars
832
+ * @param {ApplyVarsOptions} options
833
+ */
834
+ function applyVars(value, vars, options = {}) {
835
+ const { start = ":", end = "" } = options;
836
+ const flattened = objectFlat(vars);
837
+ return Object.keys(flattened).reduce((text, key) => text.replace(`${start}${key}${end}`, flattened[key]), value);
838
+ }
839
+ exports.applyVars = applyVars;
840
+ /**
841
+ * applyMask()
842
+ * Aplica uma máscara a uma string
843
+ *
844
+ * @example
845
+ * applyMask('59650000', '00.000-000') // -> 59.650-000
846
+ * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544
847
+ *
848
+ * @param {String|Number} value Valor original
849
+ * @param {String} mask
850
+ * @returns {String}
851
+ *
852
+ */
853
+ function applyMask(value, mask) {
854
+ const maskLen = clearNumber(mask).length;
855
+ let masked = clearNumber(value, maskLen);
856
+ const specialChars = ["/", "-", ".", "(", ")", " "];
857
+ for (let position = 0; position < mask.length; position += 1) {
858
+ const current = mask[position];
859
+ if (specialChars.includes(current))
860
+ masked = insertAtPosition(masked, current, position);
861
+ }
862
+ return masked;
863
+ }
864
+ exports.applyMask = applyMask;
865
+ /**
866
+ * randomLetter()
867
+ * Pega uma letra maiúscula aleatoriamente
868
+ *
869
+ * @example
870
+ * randomLetter() // -> A
871
+ * randomLetter() // -> S
872
+ *
873
+ * @returns {String}
874
+ */
875
+ function randomLetter() {
876
+ const idx = Math.floor(1 + Math.random() * 26);
877
+ return String.fromCharCode(idx + 64);
878
+ }
879
+ exports.randomLetter = randomLetter;
636
880
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klawtil",
3
- "version": "0.0.6",
3
+ "version": "0.9.0",
4
4
  "description": "Biblioteca de funções úteis",
5
5
  "author": "Cláudio Medeiros <contato@klawdyo.com>",
6
6
  "license": "MIT",
@@ -20,11 +20,14 @@
20
20
  "homepage": "https://github.com/klawdyo/utils#readme",
21
21
  "scripts": {
22
22
  "lint": "eslint src/ --ext .js,.jsx,.ts,.tsx",
23
- "test": "jest",
24
23
  "clean": "rm -rf dist build package",
25
24
  "ts-node": "ts-node",
25
+ "test": "jest",
26
+ "test:watch": "jest --watch",
27
+ "test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
26
28
  "docs": "typedoc --entryPoints src/main.ts",
27
- "build": "tsc -p tsconfig.json"
29
+ "build": "tsc -p tsconfig.json",
30
+ "prepublish": "yarn build && yarn docs"
28
31
  },
29
32
  "devDependencies": {
30
33
  "@types/jest": "^26.0.21",