@awesomeness-js/utils 1.0.24 → 1.1.2

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.
Files changed (90) hide show
  1. package/README.md +112 -86
  2. package/build/build.js +16 -11
  3. package/build/postBuild.js +8 -8
  4. package/eslint.config.js +90 -0
  5. package/index.js +108 -78
  6. package/package.json +26 -25
  7. package/schemas/schema1.js +5 -1
  8. package/schemas/schema2.js +5 -1
  9. package/schemas.js +3 -2
  10. package/src/build.js +88 -8
  11. package/src/clean/boolean.js +27 -17
  12. package/src/clean/integer.js +85 -69
  13. package/src/clean/number.js +103 -86
  14. package/src/clean/string.js +91 -67
  15. package/src/clean/timestamp.js +61 -45
  16. package/src/clean/uuid.js +38 -25
  17. package/src/collectImports.js +195 -0
  18. package/src/combineFiles.js +45 -36
  19. package/src/convertBytes.js +12 -7
  20. package/src/decrypt.js +17 -9
  21. package/src/each.js +26 -4
  22. package/src/eachAsync.js +35 -19
  23. package/src/encrypt.js +22 -17
  24. package/src/getAllFiles.js +56 -42
  25. package/src/ignoreFolder/ignoreMe.js +6 -2
  26. package/src/ignoreMe.js +4 -2
  27. package/src/isUUID.js +4 -0
  28. package/src/md5.js +5 -1
  29. package/src/password/check.js +7 -3
  30. package/src/password/hash.js +12 -7
  31. package/src/setLocalEnvs.js +16 -3
  32. package/src/shouldIgnore.js +99 -0
  33. package/src/thingType.js +62 -24
  34. package/src/toPennies.js +23 -5
  35. package/src/utils/buildExportsTree.js +45 -17
  36. package/src/utils/buildFileDataList.js +37 -18
  37. package/src/utils/clean.js +205 -120
  38. package/src/utils/extractJSDocComment.js +14 -7
  39. package/src/utils/generateFile.js +54 -18
  40. package/src/utils/generateFlatExportLines.js +40 -17
  41. package/src/utils/generateImportStatements.js +20 -8
  42. package/src/utils/generateNamedExports.js +55 -10
  43. package/src/utils/generateNamespaceCode.js +56 -24
  44. package/src/utils/generateNamespaceExportLines.js +27 -7
  45. package/src/utils/writeHotWrapper.js +42 -0
  46. package/src/uuid.js +9 -7
  47. package/src/validateSchema.js +95 -77
  48. package/test/collectImports.js +8 -0
  49. package/test/css/some.css +3 -0
  50. package/test/css/some.js +5 -0
  51. package/test/ignoreFolder/ignoreMe.js +3 -1
  52. package/test/ignoreFolder/ignoreMe2.js +3 -1
  53. package/test/ignoreFolder2/ignoreMe.js +6 -2
  54. package/test/js/abc.test.js +7 -3
  55. package/test/js/some.js +5 -0
  56. package/test/secret.test.js +1 -1
  57. package/tests/clean/array.test.js +122 -74
  58. package/tests/clean/boolean.test.js +18 -6
  59. package/tests/clean/integer.test.js +25 -9
  60. package/tests/clean/number.test.js +49 -13
  61. package/tests/clean/object.test.js +190 -119
  62. package/tests/clean/string.test.js +48 -17
  63. package/tests/clean/timestamp.test.js +12 -5
  64. package/tests/clean/uuid.test.js +13 -6
  65. package/tests/collectImports.test.js +66 -0
  66. package/tests/combineFiles.test.js +28 -26
  67. package/tests/convertBytes.test.js +8 -3
  68. package/tests/env.test.js +9 -3
  69. package/tests/example.test.js +7 -3
  70. package/tests/fileList.test.js +16 -12
  71. package/tests/hash-and-encrypt.test.js +13 -4
  72. package/tests/ignore.test.js +55 -0
  73. package/tests/md5.test.js +7 -2
  74. package/tests/namedExports.test.js +13 -0
  75. package/tests/uuid.test.js +10 -4
  76. package/tests/validateSchema.test.js +21 -9
  77. package/tsconfig.json +20 -16
  78. package/types/build.d.ts +5 -1
  79. package/types/collectImports.d.ts +6 -0
  80. package/types/index.d.ts +108 -78
  81. package/types/shouldIgnore.d.ts +1 -0
  82. package/types/utils/buildFileDataList.d.ts +5 -1
  83. package/types/utils/generateFile.d.ts +8 -1
  84. package/types/utils/generateFlatExportLines.d.ts +7 -1
  85. package/types/utils/generateImportStatements.d.ts +5 -1
  86. package/types/utils/generateNamedExports.d.ts +7 -1
  87. package/types/utils/generateNamespaceCode.d.ts +7 -1
  88. package/types/utils/generateNamespaceExportLines.d.ts +6 -1
  89. package/types/utils/writeHotWrapper.d.ts +4 -0
  90. package/src/utils/shouldIgnore.js +0 -43
@@ -1,154 +1,202 @@
1
1
  // example.test.js
2
- import { expect, test } from 'vitest'
2
+ import {
3
+ expect, test
4
+ } from 'vitest';
3
5
  import utils from '../../index.js';
4
6
 
5
7
  const testStringArray = [ 'a', 'b', 'c' ];
6
8
  const testIntegerArray = [ 1, 2, 3, 4, 5 ];
7
- const testBooleanArray = [true, false, true, false];
9
+ const testBooleanArray = [ true, false, true, false ];
8
10
 
9
11
  const testArrayOfArraysOfIntegers = [
10
- testIntegerArray,
11
- testIntegerArray,
12
- testIntegerArray
12
+ testIntegerArray,
13
+ testIntegerArray,
14
+ testIntegerArray
13
15
  ];
14
16
 
15
17
  const testArrayOfArraysOfStrings = [
16
- testStringArray,
17
- testStringArray,
18
- testStringArray
18
+ testStringArray,
19
+ testStringArray,
20
+ testStringArray
19
21
  ];
20
22
 
21
23
  const schemaForStrings = {
22
- type: 'array',
23
- items: {
24
- type: 'string'
25
- }
24
+ type: 'array',
25
+ items: {
26
+ type: 'string'
27
+ }
26
28
  };
27
29
 
28
30
  const schemaForIntegers = {
29
- type: 'array',
30
- items: {
31
- type: 'integer'
32
- }
31
+ type: 'array',
32
+ items: {
33
+ type: 'integer'
34
+ }
33
35
  };
34
36
 
35
37
 
36
38
  const schemaForBooleans = {
37
- type: 'array',
38
- items: {
39
- type: 'boolean'
40
- }
39
+ type: 'array',
40
+ items: {
41
+ type: 'boolean'
42
+ }
41
43
  };
42
44
 
43
45
  const schemaForArrayOfArrays_integers = {
44
- type: 'array',
45
- items: {
46
- type: 'array',
47
- items: { type: 'integer' }
48
- }
46
+ type: 'array',
47
+ items: {
48
+ type: 'array',
49
+ items: { type: 'integer' }
50
+ }
49
51
  };
50
52
 
51
53
  const schemaForArrayOfArrays_strings = {
52
- type: 'array',
53
- items: {
54
- type: 'array',
55
- items: { type: 'string' }
56
- }
54
+ type: 'array',
55
+ items: {
56
+ type: 'array',
57
+ items: { type: 'string' }
58
+ }
57
59
  };
58
60
 
59
61
  const testObject = {
60
- stringProp: 'a string',
61
- integerProp: 42,
62
- numberProp: 3.14,
63
- booleanProp: true,
64
- timestampProp: new Date().toISOString(),
65
- uuidProp: utils.uuid(), // generate a valid UUID
62
+ stringProp: 'a string',
63
+ integerProp: 42,
64
+ numberProp: 3.14,
65
+ booleanProp: true,
66
+ timestampProp: new Date().toISOString(),
67
+ uuidProp: utils.uuid(), // generate a valid UUID
66
68
  };
67
69
 
68
70
  const arrayOfObjects = [
69
- { ...testObject },
70
- { ...testObject },
71
- { ...testObject }
71
+ { ...testObject },
72
+ { ...testObject },
73
+ { ...testObject }
72
74
  ];
73
75
 
74
76
  const objSchema = {
75
- type: 'object',
76
- properties: {
77
- stringProp: { type: 'string', required: true },
78
- integerProp: { type: 'integer', required: true },
79
- numberProp: { type: 'number', required: true },
80
- booleanProp: { type: 'boolean', required: true },
81
- timestampProp: { type: 'timestamp', required: true },
82
- uuidProp: { type: 'uuid', required: true },
83
- optionalStringProp: { type: 'string', required: false },
84
- optionalIntegerProp: { type: 'integer', required: false },
85
- optionalNumberProp: { type: 'number', required: false },
86
- optionalBooleanProp: { type: 'boolean', required: false },
87
- optionalTimestampProp: { type: 'timestamp', required: false },
88
- optionalUuidProp: { type: 'uuid', required: false }
89
- },
77
+ type: 'object',
78
+ properties: {
79
+ stringProp: {
80
+ type: 'string',
81
+ required: true
82
+ },
83
+ integerProp: {
84
+ type: 'integer',
85
+ required: true
86
+ },
87
+ numberProp: {
88
+ type: 'number',
89
+ required: true
90
+ },
91
+ booleanProp: {
92
+ type: 'boolean',
93
+ required: true
94
+ },
95
+ timestampProp: {
96
+ type: 'timestamp',
97
+ required: true
98
+ },
99
+ uuidProp: {
100
+ type: 'uuid',
101
+ required: true
102
+ },
103
+ optionalStringProp: {
104
+ type: 'string',
105
+ required: false
106
+ },
107
+ optionalIntegerProp: {
108
+ type: 'integer',
109
+ required: false
110
+ },
111
+ optionalNumberProp: {
112
+ type: 'number',
113
+ required: false
114
+ },
115
+ optionalBooleanProp: {
116
+ type: 'boolean',
117
+ required: false
118
+ },
119
+ optionalTimestampProp: {
120
+ type: 'timestamp',
121
+ required: false
122
+ },
123
+ optionalUuidProp: {
124
+ type: 'uuid',
125
+ required: false
126
+ }
127
+ },
90
128
  };
91
129
 
92
130
 
93
131
  const schemaForArrayOfObjects = {
94
- type: 'array',
95
- required: true,
96
- items: {
97
- ... objSchema,
98
- }
132
+ type: 'array',
133
+ required: true,
134
+ items: {
135
+ ... objSchema,
136
+ }
99
137
  };
100
138
 
101
139
  test('testStringArray', () => {
102
140
 
103
- const x = utils.clean.array(testStringArray, schemaForStrings);
104
- expect(x).toStrictEqual(testStringArray);
141
+ const x = utils.clean.array(testStringArray, schemaForStrings);
142
+
143
+ expect(x).toStrictEqual(testStringArray);
105
144
 
106
145
  });
107
146
 
108
147
  test('testIntegerArray', () => {
109
148
 
110
- const x = utils.clean.array(testIntegerArray, schemaForIntegers);
111
- expect(x).toStrictEqual(testIntegerArray);
149
+ const x = utils.clean.array(testIntegerArray, schemaForIntegers);
150
+
151
+ expect(x).toStrictEqual(testIntegerArray);
112
152
 
113
153
  });
114
154
 
115
155
  test('testBooleanArray', () => {
116
156
 
117
- const x = utils.clean.array(testBooleanArray, schemaForBooleans);
118
- expect(x).toStrictEqual(testBooleanArray);
157
+ const x = utils.clean.array(testBooleanArray, schemaForBooleans);
158
+
159
+ expect(x).toStrictEqual(testBooleanArray);
119
160
 
120
161
  });
121
162
 
122
163
  test('testBooleanArray but pass different schema', () => {
123
164
 
124
- expect(()=> utils.clean.array(testBooleanArray, { ... schemaForIntegers, required: true }) ).toThrow();
165
+ expect(()=> utils.clean.array(testBooleanArray, {
166
+ ... schemaForIntegers,
167
+ required: true
168
+ }) ).toThrow();
125
169
 
126
170
  });
127
171
 
128
172
  test('schemaForArrayOfArrays_integers', () => {
129
173
 
130
- const x = utils.clean.array(testArrayOfArraysOfIntegers, schemaForArrayOfArrays_integers);
131
- expect(x).toStrictEqual(testArrayOfArraysOfIntegers);
174
+ const x = utils.clean.array(testArrayOfArraysOfIntegers, schemaForArrayOfArrays_integers);
175
+
176
+ expect(x).toStrictEqual(testArrayOfArraysOfIntegers);
132
177
 
133
178
  });
134
179
 
135
180
  test('schemaForArrayOfArrays_strings', () => {
136
181
 
137
- const x = utils.clean.array(testArrayOfArraysOfStrings, schemaForArrayOfArrays_strings);
138
- expect(x).toStrictEqual(testArrayOfArraysOfStrings);
182
+ const x = utils.clean.array(testArrayOfArraysOfStrings, schemaForArrayOfArrays_strings);
183
+
184
+ expect(x).toStrictEqual(testArrayOfArraysOfStrings);
139
185
 
140
186
  });
141
187
 
142
188
  test('schemaForArrayOfArrays_strings wrong type', () => {
143
189
 
144
- const x = utils.clean.array(testArrayOfArraysOfStrings, schemaForArrayOfArrays_integers);
145
- expect(x).toBe(null);
190
+ const x = utils.clean.array(testArrayOfArraysOfStrings, schemaForArrayOfArrays_integers);
191
+
192
+ expect(x).toBe(null);
146
193
 
147
194
  });
148
195
 
149
196
  test('schemaForArrayOfObjects', () => {
150
197
 
151
- const x = utils.clean.array(arrayOfObjects, schemaForArrayOfObjects);
152
- expect(x).toStrictEqual(arrayOfObjects);
198
+ const x = utils.clean.array(arrayOfObjects, schemaForArrayOfObjects);
199
+
200
+ expect(x).toStrictEqual(arrayOfObjects);
153
201
 
154
202
  });
@@ -1,5 +1,7 @@
1
1
  // example.test.js
2
- import { expect, test } from 'vitest'
2
+ import {
3
+ expect, test
4
+ } from 'vitest';
3
5
  import utils from '../../index.js';
4
6
 
5
7
  let x = true;
@@ -7,21 +9,31 @@ let y = false;
7
9
  let z = 1;
8
10
 
9
11
  test('boolean - true', () => {
10
- expect(utils.clean.boolean(x)).toBe(true);
12
+
13
+ expect(utils.clean.boolean(x)).toBe(true);
14
+
11
15
  });
12
16
 
13
17
  test('boolean - false', () => {
14
- expect(utils.clean.boolean(y)).toBe(false);
18
+
19
+ expect(utils.clean.boolean(y)).toBe(false);
20
+
15
21
  });
16
22
 
17
23
  test('boolean - number', () => {
18
- expect(utils.clean.boolean(z)).toBe(null);
24
+
25
+ expect(utils.clean.boolean(z)).toBe(null);
26
+
19
27
  });
20
28
 
21
29
  test('boolean - NOT to throw', () => {
22
- expect(() => utils.clean.boolean(y, { required: true })).not.toThrow();
30
+
31
+ expect(() => utils.clean.boolean(y, { required: true })).not.toThrow();
32
+
23
33
  });
24
34
 
25
35
  test('boolean - to throw', () => {
26
- expect(() => utils.clean.boolean(z, { required: true })).toThrow();
36
+
37
+ expect(() => utils.clean.boolean(z, { required: true })).toThrow();
38
+
27
39
  });
@@ -1,5 +1,7 @@
1
1
  // example.test.js
2
- import { expect, test } from 'vitest'
2
+ import {
3
+ expect, test
4
+ } from 'vitest';
3
5
  import utils from '../../index.js';
4
6
 
5
7
  let x = 1;
@@ -9,31 +11,45 @@ let z2 = '102.45';
9
11
  let z3 = 102.45;
10
12
 
11
13
  test('integer - 1', () => {
12
- expect(utils.clean.integer(x)).toBe(1);
14
+
15
+ expect(utils.clean.integer(x)).toBe(1);
16
+
13
17
  });
14
18
 
15
19
  test('integer - null', () => {
16
- expect(utils.clean.integer(y)).toBe(null);
20
+
21
+ expect(utils.clean.integer(y)).toBe(null);
22
+
17
23
  });
18
24
 
19
25
 
20
26
  test('integer as string - 102', () => {
21
- expect(utils.clean.integer(z)).toBe(102);
27
+
28
+ expect(utils.clean.integer(z)).toBe(102);
29
+
22
30
  });
23
31
 
24
32
  test('integer - NOT to throw - 102', () => {
25
- expect(() => utils.clean.integer(z, { required: true })).not.toThrow();
33
+
34
+ expect(() => utils.clean.integer(z, { required: true })).not.toThrow();
35
+
26
36
  });
27
37
 
28
38
  test('integer - to throw', () => {
29
- expect(() => utils.clean.integer(y, { required: true })).toThrow();
39
+
40
+ expect(() => utils.clean.integer(y, { required: true })).toThrow();
41
+
30
42
  });
31
43
 
32
44
  test('integer - to throw - "102.45"', () => {
33
- expect(() => utils.clean.integer(z2, { required: true })).toThrow();
45
+
46
+ expect(() => utils.clean.integer(z2, { required: true })).toThrow();
47
+
34
48
  });
35
49
 
36
50
  test('integer - to throw - 102.45', () => {
37
- console.log(utils.clean.integer(z3));
38
- expect(() => utils.clean.integer(z3, { required: true })).toThrow();
51
+
52
+ console.log(utils.clean.integer(z3));
53
+ expect(() => utils.clean.integer(z3, { required: true })).toThrow();
54
+
39
55
  });
@@ -1,5 +1,7 @@
1
1
  // example.test.js
2
- import { expect, test } from 'vitest'
2
+ import {
3
+ expect, test
4
+ } from 'vitest';
3
5
  import utils from '../../index.js';
4
6
 
5
7
  let x = 1;
@@ -9,41 +11,75 @@ let z2 = '102.45';
9
11
  let bad = 'bad';
10
12
 
11
13
  test('number - 1', () => {
12
- expect(utils.clean.number(x)).toBe(1);
14
+
15
+ expect(utils.clean.number(x)).toBe(1);
16
+
13
17
  });
14
18
 
15
19
  test('number - 1.2', () => {
16
- expect(utils.clean.number(y)).toBe(1.2);
20
+
21
+ expect(utils.clean.number(y)).toBe(1.2);
22
+
17
23
  });
18
24
 
19
25
  test('number as string - 102', () => {
20
- expect(utils.clean.number(z)).toBe(102);
26
+
27
+ expect(utils.clean.number(z)).toBe(102);
28
+
21
29
  });
22
30
 
23
31
  test('number - string to 102', () => {
24
- expect(utils.clean.number(z, { required: true })).toBe(102);
32
+
33
+ expect(utils.clean.number(z, { required: true })).toBe(102);
34
+
25
35
  });
26
36
 
27
37
  test('number - string to 102.45', () => {
28
- console.log(utils.clean.number(z2));
29
- expect(utils.clean.number(z2, { required: true })).toBe(102.45);
38
+
39
+ console.log(utils.clean.number(z2));
40
+ expect(utils.clean.number(z2, { required: true })).toBe(102.45);
41
+
30
42
  });
31
43
 
32
44
  test('number as string - bad to null', () => {
33
- expect(utils.clean.number(bad)).toBe(null);
45
+
46
+ expect(utils.clean.number(bad)).toBe(null);
47
+
34
48
  });
35
49
 
36
50
  test('number as string - bad to throw', () => {
37
- expect(()=> utils.clean.number(bad, { required: true }) ).toThrow();
51
+
52
+ expect(()=> utils.clean.number(bad, { required: true }) ).toThrow();
53
+
38
54
  });
39
55
 
40
56
  test('number is too high', () => {
41
- expect(()=> utils.clean.number(100, { min: 1, max: 10, required: true }) ).toThrow();
42
- expect(()=> utils.clean.number(100.11, { min: 1, max: 100.1, required: true }) ).toThrow();
57
+
58
+ expect(()=> utils.clean.number(100, {
59
+ min: 1,
60
+ max: 10,
61
+ required: true
62
+ }) ).toThrow();
63
+ expect(()=> utils.clean.number(100.11, {
64
+ min: 1,
65
+ max: 100.1,
66
+ required: true
67
+ }) ).toThrow();
68
+
43
69
  });
44
70
 
45
71
  test('number is too low', () => {
46
- expect(()=> utils.clean.number(0, { min: 1, max: 10, required: true }) ).toThrow();
47
- expect(()=> utils.clean.number(1.2, { min: 1.3, max: 10, required: true }) ).toThrow();
72
+
73
+ expect(()=> utils.clean.number(0, {
74
+ min: 1,
75
+ max: 10,
76
+ required: true
77
+ }) ).toThrow();
78
+ expect(()=> utils.clean.number(1.2, {
79
+ min: 1.3,
80
+ max: 10,
81
+ required: true
82
+ }) ).toThrow();
83
+
48
84
  });
49
85