diginext-utils 2.1.8 → 2.1.9

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 (46) hide show
  1. package/README.md +162 -162
  2. package/package.json +1 -1
  3. package/src/Checker.ts +29 -29
  4. package/src/EventDispatcher.ts +62 -62
  5. package/src/FileUpload.ts +66 -66
  6. package/src/Slug.ts +365 -365
  7. package/src/Timer.ts +7 -7
  8. package/src/Validation.ts +36 -36
  9. package/src/array.ts +285 -285
  10. package/src/color.ts +87 -87
  11. package/src/console/enableConsole.ts +8 -8
  12. package/src/console/index.ts +17 -17
  13. package/src/console/log.ts +39 -39
  14. package/src/device/browser.ts +29 -29
  15. package/src/device/camera.ts +207 -207
  16. package/src/device/index.ts +230 -230
  17. package/src/device/os.ts +29 -29
  18. package/src/file/createDir.ts +14 -14
  19. package/src/file/fileMove.ts +32 -32
  20. package/src/file/findFilesByExt.ts +46 -46
  21. package/src/file/index.ts +7 -7
  22. package/src/images/index.ts +3 -3
  23. package/src/images/loadImage.ts +16 -16
  24. package/src/images/resize.ts +35 -35
  25. package/src/images/upload.ts +24 -24
  26. package/src/index.ts +39 -39
  27. package/src/json.ts +29 -29
  28. package/src/math/diffDate.ts +10 -10
  29. package/src/math/index.ts +90 -90
  30. package/src/math/positiveNumber.ts +12 -12
  31. package/src/name/en.ts +27 -27
  32. package/src/name/index.ts +8 -8
  33. package/src/name/vi.ts +23 -23
  34. package/src/object.ts +72 -72
  35. package/src/permission/index.ts +6 -6
  36. package/src/permission/requestCamera.ts +43 -43
  37. package/src/permission/requestDeviceOrientationControl.ts +33 -33
  38. package/src/response/index.ts +45 -45
  39. package/src/string/formatNumber.ts +12 -12
  40. package/src/string/generatePassword.ts +18 -18
  41. package/src/string/generateUUID.ts +37 -37
  42. package/src/string/getTextBetweenCharByIndex.ts +20 -20
  43. package/src/string/indexesOf.ts +15 -15
  44. package/src/string/makeDaySlug.ts +40 -40
  45. package/src/string/random.ts +33 -33
  46. package/src/string/trimNull.ts +16 -16
@@ -1,45 +1,45 @@
1
- import _ from "lodash";
2
- import { logRes } from "../console/log";
3
-
4
- export const getResponse = () => {
5
- return { status: 0, messages: [], data: {} };
6
- };
7
-
8
- export const getSuccessResponse = (data: any, message?: string) => {
9
- return { status: 1, messages: message ? [message] : [], data: data };
10
- };
11
-
12
- export const getFailedResponse = (...messages: any[]) => {
13
- if (!messages) messages = ["What's do you want?"];
14
- return { status: 0, error: true, messages: [...messages], data: {} };
15
- };
16
-
17
- export const Response = {
18
- send: (res: any, data: any = {}) => {
19
- if (res.locals.logEnabled) logRes(res, data);
20
- if (data.error) return Response.failed(res, data.error);
21
- return Response.succeed(res, data);
22
- },
23
- succeed: (res: any, data: any = {}) => {
24
- if (res.locals.logEnabled) logRes(res, data);
25
- return res.status(200).json(getSuccessResponse(data));
26
- },
27
- failed: (res: any, ...messages: string[]) => {
28
- if (res.locals.logEnabled) logRes(res, ...messages);
29
- return res.status(200).json(getFailedResponse(...messages));
30
- },
31
- rejected: (res: any, message?: string) => {
32
- const msg = message ? message : "Permissions denied.";
33
- if (res.locals.logEnabled) logRes(res, { message: msg });
34
- return res.status(403).json(getFailedResponse(msg));
35
- },
36
- ignore: (res: any, message?: string) => {
37
- const msg = message ? message : "What do you want?";
38
- if (res.locals.logEnabled) logRes(res, { statusCode: 404, message: msg });
39
- return res.status(200).json(getFailedResponse(msg));
40
- },
41
- };
42
-
43
- const response = { getResponse, getSuccessResponse, getFailedResponse, Response };
44
-
45
- export default response;
1
+ import _ from "lodash";
2
+ import { logRes } from "../console/log";
3
+
4
+ export const getResponse = () => {
5
+ return { status: 0, messages: [], data: {} };
6
+ };
7
+
8
+ export const getSuccessResponse = (data: any, message?: string) => {
9
+ return { status: 1, messages: message ? [message] : [], data: data };
10
+ };
11
+
12
+ export const getFailedResponse = (...messages: any[]) => {
13
+ if (!messages) messages = ["What's do you want?"];
14
+ return { status: 0, error: true, messages: [...messages], data: {} };
15
+ };
16
+
17
+ export const Response = {
18
+ send: (res: any, data: any = {}) => {
19
+ if (res.locals.logEnabled) logRes(res, data);
20
+ if (data.error) return Response.failed(res, data.error);
21
+ return Response.succeed(res, data);
22
+ },
23
+ succeed: (res: any, data: any = {}) => {
24
+ if (res.locals.logEnabled) logRes(res, data);
25
+ return res.status(200).json(getSuccessResponse(data));
26
+ },
27
+ failed: (res: any, ...messages: string[]) => {
28
+ if (res.locals.logEnabled) logRes(res, ...messages);
29
+ return res.status(200).json(getFailedResponse(...messages));
30
+ },
31
+ rejected: (res: any, message?: string) => {
32
+ const msg = message ? message : "Permissions denied.";
33
+ if (res.locals.logEnabled) logRes(res, { message: msg });
34
+ return res.status(403).json(getFailedResponse(msg));
35
+ },
36
+ ignore: (res: any, message?: string) => {
37
+ const msg = message ? message : "What do you want?";
38
+ if (res.locals.logEnabled) logRes(res, { statusCode: 404, message: msg });
39
+ return res.status(200).json(getFailedResponse(msg));
40
+ },
41
+ };
42
+
43
+ const response = { getResponse, getSuccessResponse, getFailedResponse, Response };
44
+
45
+ export default response;
@@ -1,12 +1,12 @@
1
- import { toInt } from "../object";
2
-
3
- /**
4
- * Format the input number with commas
5
- * @example 1000000 -> 1,000,000
6
- */
7
- export function formatNumber(num: number, prefix = "$") {
8
- const numRound = Math.round((toInt(num) + Number.EPSILON) * 100) / 100;
9
- return Number.isNaN(numRound) ? "0" : "" + numRound.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, prefix + "1,");
10
- }
11
-
12
- export default formatNumber;
1
+ import { toInt } from "../object";
2
+
3
+ /**
4
+ * Format the input number with commas
5
+ * @example 1000000 -> 1,000,000
6
+ */
7
+ export function formatNumber(num: number, prefix = "$") {
8
+ const numRound = Math.round((toInt(num) + Number.EPSILON) * 100) / 100;
9
+ return Number.isNaN(numRound) ? "0" : "" + numRound.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, prefix + "1,");
10
+ }
11
+
12
+ export default formatNumber;
@@ -1,18 +1,18 @@
1
- import { numeric, punctuation, randomStringByLength, textLowCase } from "./random";
2
-
3
- /**
4
- * random password
5
- * - if hard = true -> random punctuation inside
6
- * @param {*} length
7
- * @param {Boolean} hard
8
- * @returns
9
- */
10
- export function generatePassword(length = 6, hard = true) {
11
- if (!Number.isFinite(length)) length = 6;
12
- if (length <= 0) length = 6;
13
- let pass = randomStringByLength(length, textLowCase + textLowCase.toUpperCase() + numeric);
14
- if (hard) pass = pass.replace(pass[Math.floor(pass.length / 2)], randomStringByLength(1, punctuation));
15
- return pass;
16
- }
17
-
18
- export default generatePassword;
1
+ import { numeric, punctuation, randomStringByLength, textLowCase } from "./random";
2
+
3
+ /**
4
+ * random password
5
+ * - if hard = true -> random punctuation inside
6
+ * @param {*} length
7
+ * @param {Boolean} hard
8
+ * @returns
9
+ */
10
+ export function generatePassword(length = 6, hard = true) {
11
+ if (!Number.isFinite(length)) length = 6;
12
+ if (length <= 0) length = 6;
13
+ let pass = randomStringByLength(length, textLowCase + textLowCase.toUpperCase() + numeric);
14
+ if (hard) pass = pass.replace(pass[Math.floor(pass.length / 2)], randomStringByLength(1, punctuation));
15
+ return pass;
16
+ }
17
+
18
+ export default generatePassword;
@@ -1,37 +1,37 @@
1
- //prettier-ignore
2
- const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];
3
-
4
- export function generateUUID() {
5
- // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
-
7
- const d0 = (Math.random() * 0xffffffff) | 0;
8
- const d1 = (Math.random() * 0xffffffff) | 0;
9
- const d2 = (Math.random() * 0xffffffff) | 0;
10
- const d3 = (Math.random() * 0xffffffff) | 0;
11
- const uuid =
12
- _lut[d0 & 0xff] +
13
- _lut[(d0 >> 8) & 0xff] +
14
- _lut[(d0 >> 16) & 0xff] +
15
- _lut[(d0 >> 24) & 0xff] +
16
- "-" +
17
- _lut[d1 & 0xff] +
18
- _lut[(d1 >> 8) & 0xff] +
19
- "-" +
20
- _lut[((d1 >> 16) & 0x0f) | 0x40] +
21
- _lut[(d1 >> 24) & 0xff] +
22
- "-" +
23
- _lut[(d2 & 0x3f) | 0x80] +
24
- _lut[(d2 >> 8) & 0xff] +
25
- "-" +
26
- _lut[(d2 >> 16) & 0xff] +
27
- _lut[(d2 >> 24) & 0xff] +
28
- _lut[d3 & 0xff] +
29
- _lut[(d3 >> 8) & 0xff] +
30
- _lut[(d3 >> 16) & 0xff] +
31
- _lut[(d3 >> 24) & 0xff];
32
-
33
- // .toLowerCase() here flattens concatenated strings to save heap memory space.
34
- return uuid.toLowerCase();
35
- }
36
-
37
- export default generateUUID;
1
+ //prettier-ignore
2
+ const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];
3
+
4
+ export function generateUUID() {
5
+ // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
+
7
+ const d0 = (Math.random() * 0xffffffff) | 0;
8
+ const d1 = (Math.random() * 0xffffffff) | 0;
9
+ const d2 = (Math.random() * 0xffffffff) | 0;
10
+ const d3 = (Math.random() * 0xffffffff) | 0;
11
+ const uuid =
12
+ _lut[d0 & 0xff] +
13
+ _lut[(d0 >> 8) & 0xff] +
14
+ _lut[(d0 >> 16) & 0xff] +
15
+ _lut[(d0 >> 24) & 0xff] +
16
+ "-" +
17
+ _lut[d1 & 0xff] +
18
+ _lut[(d1 >> 8) & 0xff] +
19
+ "-" +
20
+ _lut[((d1 >> 16) & 0x0f) | 0x40] +
21
+ _lut[(d1 >> 24) & 0xff] +
22
+ "-" +
23
+ _lut[(d2 & 0x3f) | 0x80] +
24
+ _lut[(d2 >> 8) & 0xff] +
25
+ "-" +
26
+ _lut[(d2 >> 16) & 0xff] +
27
+ _lut[(d2 >> 24) & 0xff] +
28
+ _lut[d3 & 0xff] +
29
+ _lut[(d3 >> 8) & 0xff] +
30
+ _lut[(d3 >> 16) & 0xff] +
31
+ _lut[(d3 >> 24) & 0xff];
32
+
33
+ // .toLowerCase() here flattens concatenated strings to save heap memory space.
34
+ return uuid.toLowerCase();
35
+ }
36
+
37
+ export default generateUUID;
@@ -1,20 +1,20 @@
1
- import indexesOf from "string/indexesOf";
2
-
3
- export default function getTextBetweenCharByIndex(str: string, char: any, index: Number) {
4
- const arr = indexesOf(str, char);
5
-
6
- let start = 0,
7
- end = 0;
8
-
9
- for (let i = 0; i < arr.length; i++) {
10
- const _index = arr[i];
11
-
12
- if (index > _index) {
13
- start = _index;
14
- end = arr[i + 1];
15
- }
16
- }
17
-
18
- const result = str.substring(start + 1, end);
19
- return result;
20
- }
1
+ import indexesOf from "string/indexesOf";
2
+
3
+ export default function getTextBetweenCharByIndex(str: string, char: any, index: Number) {
4
+ const arr = indexesOf(str, char);
5
+
6
+ let start = 0,
7
+ end = 0;
8
+
9
+ for (let i = 0; i < arr.length; i++) {
10
+ const _index = arr[i];
11
+
12
+ if (index > _index) {
13
+ start = _index;
14
+ end = arr[i + 1];
15
+ }
16
+ }
17
+
18
+ const result = str.substring(start + 1, end);
19
+ return result;
20
+ }
@@ -1,15 +1,15 @@
1
- export default function indexesOf(str: string, regex: any) {
2
- let match: any,
3
- indexes = {} as any;
4
-
5
- const list = [];
6
-
7
- regex = new RegExp(regex);
8
-
9
- while ((match = regex.exec(str))) {
10
- if (!indexes[match[0]]) indexes[match[0]] = [];
11
- list.push(match.index);
12
- }
13
-
14
- return list;
15
- }
1
+ export default function indexesOf(str: string, regex: any) {
2
+ let match: any,
3
+ indexes = {} as any;
4
+
5
+ const list = [];
6
+
7
+ regex = new RegExp(regex);
8
+
9
+ while ((match = regex.exec(str))) {
10
+ if (!indexes[match[0]]) indexes[match[0]] = [];
11
+ list.push(match.index);
12
+ }
13
+
14
+ return list;
15
+ }
@@ -1,40 +1,40 @@
1
- import dayjs from "dayjs";
2
-
3
- type DaySlugOptions = {
4
- /**
5
- * @default ""
6
- */
7
- prefix?: string;
8
- /**
9
- * @default ""
10
- */
11
- surfix?: string;
12
- /**
13
- * @default true
14
- */
15
- useDate?: boolean;
16
- /**
17
- * @default true
18
- */
19
- useTime?: boolean;
20
- /**
21
- * @default "-"
22
- */
23
- divider?: string;
24
- };
25
-
26
- /**
27
- * Format the input number with commas
28
- * @example 1000000 -> 1,000,000
29
- */
30
- export function makeDaySlug(options: DaySlugOptions = {}) {
31
- const { prefix = "", surfix = "", divider = "-", useDate = true, useTime = true } = options;
32
-
33
- let mainStr = "";
34
- if (useDate) mainStr += dayjs().format(`YYYY${divider}MM${divider}DD`);
35
- if (useTime) mainStr += (mainStr == "" ? "" : divider) + dayjs().format(`HH${divider}mm${divider}ss`);
36
-
37
- return prefix + (prefix ? divider : "") + mainStr + (surfix ? divider : "") + surfix;
38
- }
39
-
40
- export default { makeDaySlug };
1
+ import dayjs from "dayjs";
2
+
3
+ type DaySlugOptions = {
4
+ /**
5
+ * @default ""
6
+ */
7
+ prefix?: string;
8
+ /**
9
+ * @default ""
10
+ */
11
+ surfix?: string;
12
+ /**
13
+ * @default true
14
+ */
15
+ useDate?: boolean;
16
+ /**
17
+ * @default true
18
+ */
19
+ useTime?: boolean;
20
+ /**
21
+ * @default "-"
22
+ */
23
+ divider?: string;
24
+ };
25
+
26
+ /**
27
+ * Format the input number with commas
28
+ * @example 1000000 -> 1,000,000
29
+ */
30
+ export function makeDaySlug(options: DaySlugOptions = {}) {
31
+ const { prefix = "", surfix = "", divider = "-", useDate = true, useTime = true } = options;
32
+
33
+ let mainStr = "";
34
+ if (useDate) mainStr += dayjs().format(`YYYY${divider}MM${divider}DD`);
35
+ if (useTime) mainStr += (mainStr == "" ? "" : divider) + dayjs().format(`HH${divider}mm${divider}ss`);
36
+
37
+ return prefix + (prefix ? divider : "") + mainStr + (surfix ? divider : "") + surfix;
38
+ }
39
+
40
+ export default { makeDaySlug };
@@ -1,33 +1,33 @@
1
- export const textLowCase = "abcdefghijklmnopqrstuvwxyz";
2
- export const numeric = "0123456789";
3
- export const punctuation = "!@#$%^&*()_+~|}{[];?><,./-=";
4
- export const allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_\`abcdefghijklmnopqrstuvwxyz{|}`;
5
-
6
- /**
7
- * allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_\`abcdefghijklmnopqrstuvwxyz{|}`;
8
- */
9
- export const randAllCharacterByLength = (length = 0) => {
10
- return randomStringByLength(length, allCharacter);
11
- };
12
-
13
- export const randomStringByLength = (length: number, str = textLowCase) => {
14
- let result = "";
15
-
16
- for (let i = 0; i < length; i++) {
17
- result += str.charAt(Math.floor(Math.random() * str.length));
18
- }
19
- return result;
20
- };
21
-
22
- export const randomStringAndNumberByLength = (length: number, str = `${textLowCase}${numeric}`) => {
23
- let result = "";
24
-
25
- for (let i = 0; i < length; i++) {
26
- result += str.charAt(Math.floor(Math.random() * str.length));
27
- }
28
- return result;
29
- };
30
-
31
- const random = { randAllCharacterByLength, randomStringByLength, randomStringAndNumberByLength };
32
-
33
- export default random;
1
+ export const textLowCase = "abcdefghijklmnopqrstuvwxyz";
2
+ export const numeric = "0123456789";
3
+ export const punctuation = "!@#$%^&*()_+~|}{[];?><,./-=";
4
+ export const allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_\`abcdefghijklmnopqrstuvwxyz{|}`;
5
+
6
+ /**
7
+ * allCharacter = `đĐaáàảãạăắằẳẵặâấầẩẫậeéèẻẽẹêếềểễệoóòỏõọôốồổỗộơớờởỡợiíìỉĩịuúùủũụưứừửữựyýỳỷỹỵAÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬEÉÈẺẼẸÊẾỀỂỄỆOÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢIÍÌỈĨỊUÚÙỦŨỤƯỨỪỬỮỰYÝỲ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_\`abcdefghijklmnopqrstuvwxyz{|}`;
8
+ */
9
+ export const randAllCharacterByLength = (length = 0) => {
10
+ return randomStringByLength(length, allCharacter);
11
+ };
12
+
13
+ export const randomStringByLength = (length: number, str = textLowCase) => {
14
+ let result = "";
15
+
16
+ for (let i = 0; i < length; i++) {
17
+ result += str.charAt(Math.floor(Math.random() * str.length));
18
+ }
19
+ return result;
20
+ };
21
+
22
+ export const randomStringAndNumberByLength = (length: number, str = `${textLowCase}${numeric}`) => {
23
+ let result = "";
24
+
25
+ for (let i = 0; i < length; i++) {
26
+ result += str.charAt(Math.floor(Math.random() * str.length));
27
+ }
28
+ return result;
29
+ };
30
+
31
+ const random = { randAllCharacterByLength, randomStringByLength, randomStringAndNumberByLength };
32
+
33
+ export default random;
@@ -1,16 +1,16 @@
1
- import trim from "lodash/trim";
2
-
3
- export function trimNull(str: string) {
4
- if (!str) return "";
5
- str = str.toString();
6
- str = str.replace(/\0/g, "");
7
-
8
- while (str.indexOf(" ") >= 0) {
9
- str = str.replaceAll(" ", " ");
10
- }
11
- str = trim(str);
12
-
13
- return str;
14
- }
15
-
16
- export default trimNull;
1
+ import trim from "lodash/trim";
2
+
3
+ export function trimNull(str: string) {
4
+ if (!str) return "";
5
+ str = str.toString();
6
+ str = str.replace(/\0/g, "");
7
+
8
+ while (str.indexOf(" ") >= 0) {
9
+ str = str.replaceAll(" ", " ");
10
+ }
11
+ str = trim(str);
12
+
13
+ return str;
14
+ }
15
+
16
+ export default trimNull;