@nest-yalc-2/utils 1.0.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.
Files changed (148) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +9 -0
  3. package/package.json +29 -0
  4. package/src/__mocks__/enum.mock.ts +9 -0
  5. package/src/__tests__/class.helper.spec.ts +32 -0
  6. package/src/__tests__/command.helper.spec.ts +35 -0
  7. package/src/__tests__/config-manager.helper.spec.ts +93 -0
  8. package/src/__tests__/custom-validator.spec.ts +34 -0
  9. package/src/__tests__/data-structure.helper.spec.ts +30 -0
  10. package/src/__tests__/date.helper.spec.ts +78 -0
  11. package/src/__tests__/encryption.helper.spec.ts +45 -0
  12. package/src/__tests__/enum.helper.spec.ts +53 -0
  13. package/src/__tests__/env.helper.spec.ts +68 -0
  14. package/src/__tests__/error.helper.spec.ts +20 -0
  15. package/src/__tests__/faker-helper.spec.ts +187 -0
  16. package/src/__tests__/files.helper.spec.ts +22 -0
  17. package/src/__tests__/http.helper.spec.ts +15 -0
  18. package/src/__tests__/interval.helper.spec.ts +29 -0
  19. package/src/__tests__/math.helper.spec.ts +24 -0
  20. package/src/__tests__/nest.decorator.spec.ts +29 -0
  21. package/src/__tests__/nest.helper.spec.ts +26 -0
  22. package/src/__tests__/object-mapper.helper.spec.ts +167 -0
  23. package/src/__tests__/object-mapper.interceptor.spec.ts +104 -0
  24. package/src/__tests__/object.helper.spec.ts +181 -0
  25. package/src/__tests__/plugin.helper.spec.ts +85 -0
  26. package/src/__tests__/promise.helper.spec.ts +76 -0
  27. package/src/__tests__/returnValue.spec.ts +49 -0
  28. package/src/__tests__/rxjs.helper.spec.ts +79 -0
  29. package/src/__tests__/simple-mapper.interceptor.spec.ts +82 -0
  30. package/src/__tests__/tsconfig.json +3 -0
  31. package/src/__tests__/validator-helper.spec.ts +34 -0
  32. package/src/__tests__/zlib.helper.spec.ts +20 -0
  33. package/src/class.helper.d.ts +4 -0
  34. package/src/class.helper.js +19 -0
  35. package/src/class.helper.js.map +1 -0
  36. package/src/class.helper.ts +33 -0
  37. package/src/command.helper.d.ts +1 -0
  38. package/src/command.helper.js +16 -0
  39. package/src/command.helper.js.map +1 -0
  40. package/src/command.helper.ts +19 -0
  41. package/src/config-manager.helper.d.ts +12 -0
  42. package/src/config-manager.helper.js +60 -0
  43. package/src/config-manager.helper.js.map +1 -0
  44. package/src/config-manager.helper.ts +122 -0
  45. package/src/custom-validator.d.ts +3 -0
  46. package/src/custom-validator.js +13 -0
  47. package/src/custom-validator.js.map +1 -0
  48. package/src/custom-validator.ts +13 -0
  49. package/src/data-structure.helper.d.ts +1 -0
  50. package/src/data-structure.helper.js +13 -0
  51. package/src/data-structure.helper.js.map +1 -0
  52. package/src/data-structure.helper.ts +14 -0
  53. package/src/date.helper.d.ts +12 -0
  54. package/src/date.helper.js +47 -0
  55. package/src/date.helper.js.map +1 -0
  56. package/src/date.helper.ts +65 -0
  57. package/src/encryption.helper.d.ts +2 -0
  58. package/src/encryption.helper.js +58 -0
  59. package/src/encryption.helper.js.map +1 -0
  60. package/src/encryption.helper.ts +29 -0
  61. package/src/enum.helper.d.ts +8 -0
  62. package/src/enum.helper.js +21 -0
  63. package/src/enum.helper.js.map +1 -0
  64. package/src/enum.helper.ts +34 -0
  65. package/src/env.helper.d.ts +3 -0
  66. package/src/env.helper.js +23 -0
  67. package/src/env.helper.js.map +1 -0
  68. package/src/env.helper.ts +35 -0
  69. package/src/error.helper.d.ts +1 -0
  70. package/src/error.helper.js +12 -0
  71. package/src/error.helper.js.map +1 -0
  72. package/src/error.helper.ts +12 -0
  73. package/src/faker-helper.d.ts +16 -0
  74. package/src/faker-helper.js +73 -0
  75. package/src/faker-helper.js.map +1 -0
  76. package/src/faker-helper.ts +98 -0
  77. package/src/files.helper.d.ts +2 -0
  78. package/src/files.helper.js +13 -0
  79. package/src/files.helper.js.map +1 -0
  80. package/src/files.helper.ts +20 -0
  81. package/src/http.helper.d.ts +26 -0
  82. package/src/http.helper.js +84 -0
  83. package/src/http.helper.js.map +1 -0
  84. package/src/http.helper.ts +152 -0
  85. package/src/index.d.ts +21 -0
  86. package/src/index.js +38 -0
  87. package/src/index.js.map +1 -0
  88. package/src/index.ts +23 -0
  89. package/src/interval.helper.d.ts +5 -0
  90. package/src/interval.helper.js +16 -0
  91. package/src/interval.helper.js.map +1 -0
  92. package/src/interval.helper.ts +13 -0
  93. package/src/math.helper.d.ts +1 -0
  94. package/src/math.helper.js +8 -0
  95. package/src/math.helper.js.map +1 -0
  96. package/src/math.helper.ts +4 -0
  97. package/src/nest.decorator.d.ts +3 -0
  98. package/src/nest.decorator.js +10 -0
  99. package/src/nest.decorator.js.map +1 -0
  100. package/src/nest.decorator.ts +10 -0
  101. package/src/nestjs/nest.decorator.d.ts +3 -0
  102. package/src/nestjs/nest.decorator.js +10 -0
  103. package/src/nestjs/nest.decorator.js.map +1 -0
  104. package/src/nestjs/nest.decorator.ts +10 -0
  105. package/src/nestjs/nest.helper.d.ts +2 -0
  106. package/src/nestjs/nest.helper.js +7 -0
  107. package/src/nestjs/nest.helper.js.map +1 -0
  108. package/src/nestjs/nest.helper.ts +5 -0
  109. package/src/object-mapper.helper.d.ts +16 -0
  110. package/src/object-mapper.helper.js +47 -0
  111. package/src/object-mapper.helper.js.map +1 -0
  112. package/src/object-mapper.helper.ts +148 -0
  113. package/src/object-mapper.interceptor.d.ts +16 -0
  114. package/src/object-mapper.interceptor.js +36 -0
  115. package/src/object-mapper.interceptor.js.map +1 -0
  116. package/src/object-mapper.interceptor.ts +51 -0
  117. package/src/object.helper.d.ts +18 -0
  118. package/src/object.helper.js +91 -0
  119. package/src/object.helper.js.map +1 -0
  120. package/src/object.helper.ts +173 -0
  121. package/src/plugin.helper.d.ts +22 -0
  122. package/src/plugin.helper.js +26 -0
  123. package/src/plugin.helper.js.map +1 -0
  124. package/src/plugin.helper.ts +42 -0
  125. package/src/promise.helper.d.ts +13 -0
  126. package/src/promise.helper.js +71 -0
  127. package/src/promise.helper.js.map +1 -0
  128. package/src/promise.helper.ts +65 -0
  129. package/src/returnValue.d.ts +14 -0
  130. package/src/returnValue.js +17 -0
  131. package/src/returnValue.js.map +1 -0
  132. package/src/returnValue.ts +26 -0
  133. package/src/rxjs.helper.d.ts +7 -0
  134. package/src/rxjs.helper.js +33 -0
  135. package/src/rxjs.helper.js.map +1 -0
  136. package/src/rxjs.helper.ts +71 -0
  137. package/src/simple-mapper.interceptor.d.ts +7 -0
  138. package/src/simple-mapper.interceptor.js +29 -0
  139. package/src/simple-mapper.interceptor.js.map +1 -0
  140. package/src/simple-mapper.interceptor.ts +43 -0
  141. package/src/validator-helper.d.ts +2 -0
  142. package/src/validator-helper.js +22 -0
  143. package/src/validator-helper.js.map +1 -0
  144. package/src/validator-helper.ts +26 -0
  145. package/src/zlib.helper.d.ts +3 -0
  146. package/src/zlib.helper.js +25 -0
  147. package/src/zlib.helper.js.map +1 -0
  148. package/src/zlib.helper.ts +19 -0
@@ -0,0 +1,43 @@
1
+ import {
2
+ CallHandler,
3
+ ExecutionContext,
4
+ Injectable,
5
+ NestInterceptor,
6
+ } from '@nestjs/common';
7
+ import { Observable, map } from 'rxjs';
8
+
9
+ /**
10
+ *
11
+ * @param Dto
12
+ * @param transformer used to transform the data before mapping it to the DTO.
13
+ * This is useful when the data is not in the correct format to be mapped to the DTO.
14
+ * @returns
15
+ */
16
+ export function buildSimpleMapperInterceptor<T, R>(
17
+ Dto: new (data: T) => R,
18
+ options?: {
19
+ transformer?: (data: T) => T;
20
+ callback?: { (inputData: any, outputData: any): any };
21
+ },
22
+ ): new () => NestInterceptor<T, R> {
23
+ @Injectable()
24
+ class SimpleMapper implements NestInterceptor<T, R> {
25
+ intercept(
26
+ _context: ExecutionContext,
27
+ next: CallHandler<T>,
28
+ ): Observable<any> {
29
+ return next.handle().pipe(
30
+ map((data) => {
31
+ const tData = options?.transformer?.(data) ?? data;
32
+ const mappedData = Array.isArray(tData)
33
+ ? tData.map((d) => new Dto(d))
34
+ : new Dto(tData);
35
+
36
+ return options?.callback?.(data, mappedData) ?? mappedData;
37
+ }),
38
+ );
39
+ }
40
+ }
41
+
42
+ return SimpleMapper;
43
+ }
@@ -0,0 +1,2 @@
1
+ export declare function stringIsInEnumOrThrow<T extends Record<string, string | number>>(toCheck: string, enumName: T, message?: string): boolean;
2
+ export declare function stringIsInEnum<T extends Record<string, string | number>>(toCheck: string, enumName: T): boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringIsInEnumOrThrow = stringIsInEnumOrThrow;
4
+ exports.stringIsInEnum = stringIsInEnum;
5
+ const errors_1 = require("@nest-yalc-2/errors");
6
+ function stringIsInEnumOrThrow(toCheck, enumName, message) {
7
+ if (stringIsInEnum(toCheck, enumName)) {
8
+ return true;
9
+ }
10
+ const err = message ? message : `${errors_1.ErrorsEnum.INVALID_VALUE} ${toCheck}`;
11
+ throw new Error(err);
12
+ }
13
+ function stringIsInEnum(toCheck, enumName) {
14
+ for (const enumProperty of Object.values(enumName)) {
15
+ if (typeof enumProperty === 'string' &&
16
+ enumProperty.toLowerCase() === toCheck.toLowerCase()) {
17
+ return true;
18
+ }
19
+ }
20
+ return false;
21
+ }
22
+ //# sourceMappingURL=validator-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator-helper.js","sourceRoot":"","sources":["validator-helper.ts"],"names":[],"mappings":";;AAEA,sDAQC;AAED,wCAaC;AAzBD,gDAAiD;AAEjD,SAAgB,qBAAqB,CAEnC,OAAe,EAAE,QAAW,EAAE,OAAgB;IAC9C,IAAI,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,mBAAU,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;IACzE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,cAAc,CAC5B,OAAe,EACf,QAAW;IAEX,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,IACE,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EACpD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { ErrorsEnum } from '@nest-yalc-2/errors';
2
+
3
+ export function stringIsInEnumOrThrow<
4
+ T extends Record<string, string | number>,
5
+ >(toCheck: string, enumName: T, message?: string): boolean {
6
+ if (stringIsInEnum(toCheck, enumName)) {
7
+ return true;
8
+ }
9
+ const err = message ? message : `${ErrorsEnum.INVALID_VALUE} ${toCheck}`;
10
+ throw new Error(err);
11
+ }
12
+
13
+ export function stringIsInEnum<T extends Record<string, string | number>>(
14
+ toCheck: string,
15
+ enumName: T,
16
+ ): boolean {
17
+ for (const enumProperty of Object.values(enumName)) {
18
+ if (
19
+ typeof enumProperty === 'string' &&
20
+ enumProperty.toLowerCase() === toCheck.toLowerCase()
21
+ ) {
22
+ return true;
23
+ }
24
+ }
25
+ return false;
26
+ }
@@ -0,0 +1,3 @@
1
+ import { InputType } from 'zlib';
2
+ export declare const inflate: (input: string) => string;
3
+ export declare const deflate: (input: InputType) => Buffer | InputType;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deflate = exports.inflate = void 0;
4
+ const zlib_1 = require("zlib");
5
+ const inflate = (input) => {
6
+ try {
7
+ const inflated = (0, zlib_1.inflateSync)(Buffer.from(input, 'base64')).toString();
8
+ return inflated;
9
+ }
10
+ catch (error) {
11
+ return input;
12
+ }
13
+ };
14
+ exports.inflate = inflate;
15
+ const deflate = (input) => {
16
+ try {
17
+ const deflated = (0, zlib_1.deflateSync)(input);
18
+ return deflated;
19
+ }
20
+ catch (error) {
21
+ return input;
22
+ }
23
+ };
24
+ exports.deflate = deflate;
25
+ //# sourceMappingURL=zlib.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlib.helper.js","sourceRoot":"","sources":["zlib.helper.ts"],"names":[],"mappings":";;;AAAA,+BAA2D;AAEpD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB;AAEK,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAsB,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB"}
@@ -0,0 +1,19 @@
1
+ import { inflateSync, deflateSync, InputType } from 'zlib';
2
+
3
+ export const inflate = (input: string) => {
4
+ try {
5
+ const inflated = inflateSync(Buffer.from(input, 'base64')).toString();
6
+ return inflated;
7
+ } catch (error) {
8
+ return input;
9
+ }
10
+ };
11
+
12
+ export const deflate = (input: InputType): Buffer | InputType => {
13
+ try {
14
+ const deflated = deflateSync(input);
15
+ return deflated;
16
+ } catch (error) {
17
+ return input;
18
+ }
19
+ };