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 +98 -3
- package/dist/tsc/main.d.ts +192 -36
- package/dist/tsc/main.js +287 -43
- package/dist/tsc/main.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# klawtil
|
|
1
|
+
# klawtil     
|
|
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 {
|
|
21
|
+
const { whiteList, isFalsy } = require("klawtil");
|
|
22
22
|
|
|
23
23
|
// ES6
|
|
24
|
-
import {
|
|
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
|
+

|
|
500
|
+
|
|
501
|
+
## Build
|
|
502
|
+
|
|
503
|
+
Tested on node versions 10, 12, 14 and 16
|
|
504
|
+
|
|
505
|
+

|
package/dist/tsc/main.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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}
|
|
286
|
-
* @param {String}
|
|
287
|
-
* @
|
|
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
|
|
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
|
|
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
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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}
|
|
376
|
-
* @param {String}
|
|
377
|
-
* @
|
|
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
|
-
|
|
380
|
-
const keys =
|
|
370
|
+
function objectPath(obj, path) {
|
|
371
|
+
const keys = path.split(".");
|
|
381
372
|
keys.forEach((key) => {
|
|
382
|
-
|
|
373
|
+
obj = obj[key];
|
|
383
374
|
});
|
|
384
|
-
return
|
|
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))
|
|
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
|
-
|
|
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
|
package/dist/tsc/main.js.map
CHANGED
|
@@ -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
|
|
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",
|