randex 0.7.0 → 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,11 +1,11 @@
1
1
  # randex
2
2
 
3
+ TypeScript library to random most common things like filename, username, email, name, full name, etc.
4
+
3
5
  <a href="https://www.npmjs.com/package/randex">
4
6
  <img src="https://nodei.co/npm/randex.png?mini=true">
5
7
  </a>
6
8
 
7
- TypeScript library for random thing like string, username, email, name, etc.
8
-
9
9
  ## Usage
10
10
 
11
11
  Installation:
@@ -30,7 +30,7 @@ Deeps:
30
30
 
31
31
  ## random
32
32
 
33
- Basic function for construct random thing.
33
+ Basic function to construct random things.
34
34
 
35
35
  ```ts
36
36
  import { random } from "randex";
@@ -117,13 +117,46 @@ Randoms file name.
117
117
  ```ts
118
118
  import { randomFileName } from "randex";
119
119
 
120
+ // default
120
121
  randomFileName({
121
122
  extension: "txt",
122
123
  });
123
-
124
124
  // td1TX31eOB.txt
125
+
126
+ // defined extension
127
+ randomFileName({
128
+ extension: "txt",
129
+ });
130
+ // or short:
131
+ randomFileName("txt");
132
+ // HkmOjqHC6.txt
133
+
134
+ // defined file name length and extension length
135
+ randomFileName({
136
+ fileNameLength: [7, 10],
137
+ extensionLength: 5,
138
+ });
139
+ // or short:
140
+ randomFileName([7, 10], 5);
141
+ // 1SJVkHSBjq.tejuw
142
+
143
+ // defined file name length and extension
144
+ randomFileName({
145
+ fileNameLength: 8,
146
+ extension: "xml",
147
+ });
148
+ // or short:
149
+ randomFileName(8, "xml");
150
+ // JyCsuN5kD.xml
125
151
  ```
126
152
 
153
+ Options:
154
+ | Name | Type| Description|
155
+ | ------------------------ | ---- |------------ |
156
+ |fileNameLength|[RandexLength](#randexlength) | Length of file name (not including extension). Default: [3,10] |
157
+ |extensionLength|[RandexLength](#randexlength) | Length of extension (not including file name) chars. Default: [2,5] |
158
+ |extension| `string`| File extension. |
159
+
127
160
  ## randomUsername
128
161
 
129
162
  Randoms username.
@@ -151,7 +184,7 @@ randomUsername([2, 5]);
151
184
  Options:
152
185
  | Name | Type| Description|
153
186
  | ------------------------ | ---- |------------ |
154
- |length|[RandexLength](#randexlength) | Length of chars. Default: min - 6, max - 10 chars. |
187
+ |length|[RandexLength](#randexlength) | Length of chars. Default: [6,10] |
155
188
 
156
189
  ## randomEmail
157
190
 
@@ -160,10 +193,45 @@ Randoms an email.
160
193
  ```ts
161
194
  import { randomEmail } from "randex";
162
195
 
196
+ // default
163
197
  randomEmail();
164
198
  // stv4ox27sevt@mqsyin.fil
199
+
200
+ // defined prefix length
201
+ randomEmail({
202
+ prefixLength: 8,
203
+ });
204
+ // or shot:
205
+ randomEmail(8);
206
+ // epzn3hbz@vu.xsp
207
+
208
+ // defined prefix, low domain and hight domain length
209
+ randomEmail({
210
+ prefixLength: 8,
211
+ lowDomainLength: 4,
212
+ hightDomainLength: 2,
213
+ });
214
+ // or shot:
215
+ randomEmail(8, 4, 2);
216
+ // 8p0bjoua@fcsa.gr
217
+
218
+ // defined domain
219
+ randomEmail({
220
+ domain: "test.com",
221
+ });
222
+ // or shot:
223
+ randomEmail("test.com");
224
+ // efnmo1r5@test.com
165
225
  ```
166
226
 
227
+ Options:
228
+ | Name | Type| Description|
229
+ | ------------------------ | ---- |------------ |
230
+ |prefixLength|[RandexLength](#randexlength) | Length of email prefix (chars before `@`). Default: [6, 10] |
231
+ |hightDomainLength|[RandexLength](#randexlength) | Length of hight domain part (example: test.<b>com</b>). Default: [1,6] |
232
+ |lowDomainLength|[RandexLength](#randexlength) | Length of low domain part (example: <b>test</b>.com). Default: [4,2] |
233
+ |domain| `string`| Defined domain. |
234
+
167
235
  ## randomName
168
236
 
169
237
  Randoms a name of the person, city, place, restaurant, ect.
@@ -203,7 +271,7 @@ randomName("french", 10);
203
271
  Options:
204
272
  | Name | Type| Description|
205
273
  | ------------------------ | ---- |------------ |
206
- |length|[RandexLength](#randexlength) | Length of chars. Default: min - 2, max - 10 chars|
274
+ |length|[RandexLength](#randexlength) | Length of chars. Default: [2,10] |
207
275
  |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet. Default: `english` |
208
276
 
209
277
  ## randomFullName
@@ -221,8 +289,8 @@ randomFullName();
221
289
  Options:
222
290
  | Name | Type| Description|
223
291
  | ------------------------ | ---- |------------ |
224
- |firstLength|[RandexLength](#randexlength) | First name length of chars. Default: min - 2, max - 10 chars |
225
- |secondLength|[RandexLength](#randexlength) | Second name length of chars. Default: min - 2, max - 10 chars |
292
+ |firstLength|[RandexLength](#randexlength) | First name length of chars. Default: [2, 10] |
293
+ |secondLength|[RandexLength](#randexlength) | Second name length of chars. Default: [2,10] |
226
294
  |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet. Default: `english` |
227
295
 
228
296
  ## Customization
@@ -1,5 +1,11 @@
1
1
  import { RandexSet, RandexLength } from "../interfaces";
2
2
  export declare class RandexSetUtil {
3
+ static readonly defaultFileNameLength: RandexLength;
4
+ static readonly defaultExtensionLength: RandexLength;
5
+ static readonly fileNameExtraChars = "";
6
+ static readonly defaultEmailPrefixLength: RandexLength;
7
+ static readonly defaultHightDomainEmailLength: RandexLength;
8
+ static readonly defaultLowDomainEmailLength: RandexLength;
3
9
  private static toSingleRange;
4
10
  private static toAlphabetCase;
5
11
  private static toAlphabetRange;
package/lib/basic/set.js CHANGED
@@ -94,6 +94,12 @@ var RandexSetUtil = /** @class */ (function () {
94
94
  }
95
95
  return result;
96
96
  };
97
+ RandexSetUtil.defaultFileNameLength = [3, 10];
98
+ RandexSetUtil.defaultExtensionLength = [2, 5];
99
+ RandexSetUtil.fileNameExtraChars = ""; //"-_.";
100
+ RandexSetUtil.defaultEmailPrefixLength = [6, 10];
101
+ RandexSetUtil.defaultHightDomainEmailLength = [1, 6];
102
+ RandexSetUtil.defaultLowDomainEmailLength = [2, 4];
97
103
  return RandexSetUtil;
98
104
  }());
99
105
  exports.RandexSetUtil = RandexSetUtil;
@@ -1 +1,16 @@
1
- export declare function randomEmail(): string;
1
+ import { RandexLength } from "../interfaces";
2
+ interface BasicEmailOptions {
3
+ prefixLength?: RandexLength;
4
+ }
5
+ interface DomainLengthEmailOptions {
6
+ hightDomainLength?: RandexLength;
7
+ lowDomainLength?: RandexLength;
8
+ }
9
+ interface DomainEmailOptions {
10
+ domain?: string;
11
+ }
12
+ export type RandexEmailOptions = BasicEmailOptions & (DomainLengthEmailOptions | DomainEmailOptions);
13
+ export declare function randomEmail(options?: RandexEmailOptions): any;
14
+ export declare function randomEmail(prefixLength: RandexLength, lowDomainLength?: RandexLength, hightDomainLength?: RandexLength): any;
15
+ export declare function randomEmail(domain: string): any;
16
+ export {};
@@ -2,14 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.randomEmail = void 0;
4
4
  var basic_1 = require("../basic");
5
- function randomEmail() {
6
- return ((0, basic_1.random)(["english", "l"], [[["english", "l"], "number"], 10], ["english", "l"]) +
7
- "@" +
8
- (0, basic_1.random)(["english", "l"], [["english", "l"], "-", [0, 5]], ["english", "l"]) +
9
- "." +
10
- (0, basic_1.random)([
11
- ["english", "l"],
12
- [2, 4],
13
- ]));
5
+ var set_1 = require("../basic/set");
6
+ var type_1 = require("../basic/type");
7
+ function randomEmail(p1, p2, p3) {
8
+ var prefixLength = set_1.RandexSetUtil.defaultEmailPrefixLength;
9
+ var hightDomainLength = set_1.RandexSetUtil.defaultHightDomainEmailLength;
10
+ var lowDomainLength = set_1.RandexSetUtil.defaultLowDomainEmailLength;
11
+ var domain = "";
12
+ if (type_1.RandexTypeParser.isLength(p1)) {
13
+ prefixLength = p1;
14
+ if (type_1.RandexTypeParser.isLength(p2)) {
15
+ lowDomainLength = p2;
16
+ }
17
+ if (type_1.RandexTypeParser.isLength(p3)) {
18
+ hightDomainLength = p3;
19
+ }
20
+ }
21
+ else if (typeof p1 === "string") {
22
+ domain = p1;
23
+ }
24
+ else if (typeof p1 === "object") {
25
+ if (p1.prefixLength) {
26
+ prefixLength = p1.prefixLength;
27
+ }
28
+ if (p1.hightDomainLength) {
29
+ hightDomainLength = p1.hightDomainLength;
30
+ }
31
+ if (p1.lowDomainLength) {
32
+ lowDomainLength = p1.lowDomainLength;
33
+ }
34
+ if (p1.domain) {
35
+ domain = p1.domain;
36
+ }
37
+ }
38
+ if (!domain) {
39
+ domain = (0, basic_1.random)([["english", "l"], lowDomainLength]) + "." + (0, basic_1.random)([["english", "l"], hightDomainLength]);
40
+ }
41
+ return (0, basic_1.random)([[["english", "l"], "number"], prefixLength]) + "@" + domain;
14
42
  }
15
43
  exports.randomEmail = randomEmail;
@@ -1,4 +1,16 @@
1
- export interface RandomFileNameOptions {
1
+ import { RandexLength } from "../interfaces";
2
+ interface BasicFileNameOptions {
3
+ fileNameLength?: RandexLength;
4
+ }
5
+ interface ExtensionLengthFileNameOptions {
6
+ extensionLength?: RandexLength;
7
+ }
8
+ interface ExtensionFileNameOptions {
2
9
  extension?: string;
3
10
  }
4
- export declare function randomFileName(options?: RandomFileNameOptions): string;
11
+ export type RandexFileNameOptions = BasicFileNameOptions & (ExtensionFileNameOptions | ExtensionLengthFileNameOptions);
12
+ export declare function randomFileName(options?: RandexFileNameOptions): any;
13
+ export declare function randomFileName(fileNameLength: RandexLength, extensionLength?: RandexLength): any;
14
+ export declare function randomFileName(fileNameLength: RandexLength, extension: string): any;
15
+ export declare function randomFileName(extension: string): any;
16
+ export {};
@@ -2,16 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.randomFileName = void 0;
4
4
  var basic_1 = require("../basic");
5
- function randomFileName(options) {
6
- var extension = (options || {}).extension;
7
- return ((0, basic_1.random)([["english", "number"], "_.", [5, 10]]) +
5
+ var set_1 = require("../basic/set");
6
+ var type_1 = require("../basic/type");
7
+ function randomFileName(p1, p2) {
8
+ var fileNameLength = set_1.RandexSetUtil.getLength(1, set_1.RandexSetUtil.defaultFileNameLength, set_1.RandexSetUtil.defaultFileNameLength);
9
+ var extensionLength = set_1.RandexSetUtil.defaultExtensionLength;
10
+ var extension = "";
11
+ if (type_1.RandexTypeParser.isLength(p1)) {
12
+ fileNameLength = p1;
13
+ if (type_1.RandexTypeParser.isLength(p2)) {
14
+ extensionLength = p2;
15
+ }
16
+ else if (typeof p2 === "string") {
17
+ extension = p2;
18
+ }
19
+ }
20
+ else if (typeof p1 === "string") {
21
+ extension = p1;
22
+ }
23
+ else if (typeof p1 === "object") {
24
+ if (p1.fileNameLength) {
25
+ fileNameLength = p1.fileNameLength;
26
+ }
27
+ if (p1.extensionLength) {
28
+ extensionLength = p1.extensionLength;
29
+ }
30
+ if (p1.extension) {
31
+ extension = p1.extension;
32
+ }
33
+ }
34
+ if (!extension) {
35
+ extension = (0, basic_1.random)([["english", "l"], extensionLength]);
36
+ }
37
+ return ((0, basic_1.random)([["english", "number"], set_1.RandexSetUtil.fileNameExtraChars, fileNameLength]) +
8
38
  (0, basic_1.random)(["english", "number"]) +
9
39
  "." +
10
- (extension
11
- ? extension
12
- : (0, basic_1.random)([
13
- ["english", "l"],
14
- [2, 5],
15
- ])));
40
+ (extension ? extension.replace(/^\./, "") : (0, basic_1.random)([["english", "l"], extensionLength])));
16
41
  }
17
42
  exports.randomFileName = randomFileName;
@@ -1,12 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var set_1 = require("../basic/set");
3
4
  var email_1 = require("../custom/email");
4
5
  var test_util_1 = require("./test-util");
6
+ var r = set_1.RandexSetUtil;
7
+ function splitEmail(email) {
8
+ var _a = email.split("@"), prefix = _a[0], domain = _a[1];
9
+ var _b = domain.split("."), lowDomain = _b[0], hightDomain = _b[1];
10
+ return [prefix, domain, lowDomain, hightDomain];
11
+ }
12
+ function testEmail(options) {
13
+ var email = options.email, _a = options.prefixLength, prefixLength = _a === void 0 ? r.defaultEmailPrefixLength : _a, _b = options.hightDomainLength, hightDomainLength = _b === void 0 ? r.defaultHightDomainEmailLength : _b, _c = options.lowDomainLength, lowDomainLength = _c === void 0 ? r.defaultLowDomainEmailLength : _c, emailDomain = options.domain;
14
+ var _d = splitEmail(email), prefix = _d[0], domain = _d[1], lowDomain = _d[2], hightDomain = _d[3];
15
+ // // last char only english
16
+ test_util_1.TestUtil.testInSet(prefix, [["english", "l"], "number"], prefixLength);
17
+ if (emailDomain) {
18
+ expect(emailDomain).toBe(domain);
19
+ }
20
+ else {
21
+ test_util_1.TestUtil.testInSet(lowDomain, ["english"], lowDomainLength);
22
+ test_util_1.TestUtil.testInSet(hightDomain, ["english"], hightDomainLength);
23
+ }
24
+ }
5
25
  describe("randomEmail", function () {
6
26
  it("simple", function () {
7
- for (var i = 0; i < 100; i++) {
8
- var value = (0, email_1.randomEmail)();
9
- expect(test_util_1.TestUtil.isEmailValid(value)).toBeTruthy();
10
- }
27
+ test_util_1.TestUtil.loop(function () {
28
+ var email = (0, email_1.randomEmail)();
29
+ testEmail({ email: email });
30
+ });
31
+ });
32
+ it("options: prefixLength", function () {
33
+ var prefixLength = [10, 15];
34
+ test_util_1.TestUtil.loop(function () {
35
+ var email = (0, email_1.randomEmail)({ prefixLength: prefixLength });
36
+ testEmail({ email: email, prefixLength: prefixLength });
37
+ email = (0, email_1.randomEmail)(prefixLength);
38
+ testEmail({ email: email, prefixLength: prefixLength });
39
+ });
40
+ });
41
+ it("options: hightDomainLength, lowDomainLength", function () {
42
+ var hightDomainLength = 8;
43
+ var lowDomainLength = 12;
44
+ test_util_1.TestUtil.loop(function () {
45
+ var email = (0, email_1.randomEmail)({ hightDomainLength: hightDomainLength, lowDomainLength: lowDomainLength });
46
+ testEmail({ email: email, hightDomainLength: hightDomainLength, lowDomainLength: lowDomainLength });
47
+ email = (0, email_1.randomEmail)(r.defaultEmailPrefixLength, lowDomainLength, hightDomainLength);
48
+ testEmail({ email: email, hightDomainLength: hightDomainLength, lowDomainLength: lowDomainLength, prefixLength: r.defaultEmailPrefixLength });
49
+ });
50
+ });
51
+ it("options: domain", function () {
52
+ var domain = "delta.com";
53
+ test_util_1.TestUtil.loop(function () {
54
+ var email = (0, email_1.randomEmail)({ domain: domain });
55
+ testEmail({ email: email, domain: domain });
56
+ email = (0, email_1.randomEmail)(domain);
57
+ testEmail({ email: email, domain: domain });
58
+ });
11
59
  });
12
60
  });
@@ -1,12 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var set_1 = require("../basic/set");
3
4
  var filename_1 = require("../custom/filename");
4
5
  var test_util_1 = require("./test-util");
6
+ var r = set_1.RandexSetUtil;
7
+ function splitFileName(fullFileName) {
8
+ var matches = fullFileName.match(/\.[a-z]+$/);
9
+ var extension = (matches === null || matches === void 0 ? void 0 : matches[0]) || "";
10
+ var fileName = fullFileName.replace(extension, "");
11
+ extension = extension.replace(/^\./, "");
12
+ return [fileName, extension];
13
+ }
14
+ function testFileName(options) {
15
+ var fullFileName = options.fullFileName, _a = options.fileNameLength, fileNameLength = _a === void 0 ? r.defaultFileNameLength : _a, _b = options.extensionLength, extensionLength = _b === void 0 ? r.defaultExtensionLength : _b, extension = options.extension;
16
+ var _c = splitFileName(fullFileName), fileName = _c[0], fileExtension = _c[1];
17
+ // last char only english
18
+ test_util_1.TestUtil.testInSet(fileName[fileName.length - 1], ["english", "number"], 1);
19
+ test_util_1.TestUtil.testInSetRange(fileName, ["english", "number"], r.fileNameExtraChars, fileNameLength);
20
+ if (extension) {
21
+ expect(extension).toBe(fileExtension);
22
+ }
23
+ else {
24
+ test_util_1.TestUtil.testInSet(fileExtension, "english", extensionLength);
25
+ }
26
+ }
5
27
  describe("randomFileName", function () {
6
28
  it("simple", function () {
7
- for (var i = 0; i < 100; i++) {
8
- var value = (0, filename_1.randomFileName)();
9
- expect(test_util_1.TestUtil.isFileNameValid(value)).toBeTruthy();
10
- }
29
+ test_util_1.TestUtil.loop(function () {
30
+ var fullFileName = (0, filename_1.randomFileName)();
31
+ testFileName({ fullFileName: fullFileName });
32
+ });
33
+ });
34
+ it("params: fileNameLength", function () {
35
+ var fileNameLength = [10, 15];
36
+ test_util_1.TestUtil.loop(function () {
37
+ var fullFileName = (0, filename_1.randomFileName)({ fileNameLength: fileNameLength });
38
+ testFileName({ fullFileName: fullFileName, fileNameLength: fileNameLength });
39
+ fullFileName = (0, filename_1.randomFileName)(fileNameLength);
40
+ testFileName({ fullFileName: fullFileName, fileNameLength: fileNameLength });
41
+ });
42
+ });
43
+ it("params: extensionLength", function () {
44
+ var extensionLength = [10, 15];
45
+ test_util_1.TestUtil.loop(function () {
46
+ var fullFileName = (0, filename_1.randomFileName)({ extensionLength: extensionLength });
47
+ testFileName({ fullFileName: fullFileName, extensionLength: extensionLength });
48
+ fullFileName = (0, filename_1.randomFileName)(r.defaultFileNameLength, extensionLength);
49
+ testFileName({ fullFileName: fullFileName, fileNameLength: r.defaultFileNameLength, extensionLength: extensionLength });
50
+ });
51
+ });
52
+ it("params: extension", function () {
53
+ var fileNameLength = [10, 15];
54
+ var extension = "xml";
55
+ test_util_1.TestUtil.loop(function () {
56
+ var fullFileName = (0, filename_1.randomFileName)({ extension: extension });
57
+ testFileName({ fullFileName: fullFileName, extension: extension });
58
+ fullFileName = (0, filename_1.randomFileName)(extension);
59
+ testFileName({ fullFileName: fullFileName, extension: extension });
60
+ fullFileName = (0, filename_1.randomFileName)("." + extension);
61
+ testFileName({ fullFileName: fullFileName, extension: extension });
62
+ fullFileName = (0, filename_1.randomFileName)(fileNameLength, extension);
63
+ testFileName({ fullFileName: fullFileName, fileNameLength: fileNameLength, extension: extension });
64
+ });
11
65
  });
12
66
  });
@@ -4,9 +4,9 @@ var custom_1 = require("../custom");
4
4
  var test_util_1 = require("./test-util");
5
5
  describe("randomFullName", function () {
6
6
  it("simple", function () {
7
- for (var i = 0; i < 100; i++) {
7
+ test_util_1.TestUtil.loop(function () {
8
8
  var value = (0, custom_1.randomFullName)();
9
9
  expect(test_util_1.TestUtil.isFullNameValid(value)).toBeTruthy();
10
- }
10
+ });
11
11
  });
12
12
  });
@@ -62,9 +62,21 @@ describe("markdown", function () {
62
62
  expect(value.length).toBe(4);
63
63
  });
64
64
  it("randomFileName", function () {
65
- var value = (0, custom_1.randomFileName)({
65
+ var value = (0, custom_1.randomFileName)();
66
+ value = (0, custom_1.randomFileName)({
66
67
  extension: "txt",
67
68
  });
69
+ value = (0, custom_1.randomFileName)("txt");
70
+ value = (0, custom_1.randomFileName)({
71
+ fileNameLength: [7, 10],
72
+ extensionLength: 5,
73
+ });
74
+ value = (0, custom_1.randomFileName)([7, 10], 5);
75
+ value = (0, custom_1.randomFileName)({
76
+ fileNameLength: 8,
77
+ extension: "xml",
78
+ });
79
+ value = (0, custom_1.randomFileName)(8, "xml");
68
80
  expect(value).toBeTruthy();
69
81
  });
70
82
  it("randomUsername", function () {
@@ -73,6 +85,20 @@ describe("markdown", function () {
73
85
  });
74
86
  it("randomEmail", function () {
75
87
  var value = (0, custom_1.randomEmail)();
88
+ value = (0, custom_1.randomEmail)({
89
+ prefixLength: 8,
90
+ });
91
+ value = (0, custom_1.randomEmail)(8);
92
+ value = (0, custom_1.randomEmail)({
93
+ prefixLength: 8,
94
+ lowDomainLength: 4,
95
+ hightDomainLength: 2,
96
+ });
97
+ value = (0, custom_1.randomEmail)(8, 4, 2);
98
+ value = (0, custom_1.randomEmail)({
99
+ domain: "test.com",
100
+ });
101
+ value = (0, custom_1.randomEmail)("test.com");
76
102
  expect(value).toBeTruthy();
77
103
  });
78
104
  it("randomName", function () {
@@ -4,10 +4,10 @@ var name_1 = require("../custom/name");
4
4
  var test_util_1 = require("./test-util");
5
5
  describe("randomName", function () {
6
6
  it("simple", function () {
7
- for (var i = 0; i < 100; i++) {
7
+ test_util_1.TestUtil.loop(function () {
8
8
  var value = (0, name_1.randomName)();
9
9
  expect(test_util_1.TestUtil.isNameValid(value)).toBeTruthy();
10
- }
10
+ });
11
11
  });
12
12
  it("options: length", function () {
13
13
  var value = (0, name_1.randomName)({ length: 5 });
@@ -39,7 +39,7 @@ describe("random", function () {
39
39
  expect(value.length).toBe(1);
40
40
  });
41
41
  it("alphabet: upper", function () {
42
- for (var i = 0; i < 100; i++) {
42
+ test_util_1.TestUtil.loop(function () {
43
43
  var value = (0, basic_1.random)(["english", "u"]);
44
44
  expect(test_util_1.TestUtil.isUpperCharValid(value, 1)).toBeTruthy();
45
45
  value = (0, basic_1.random)([
@@ -47,10 +47,10 @@ describe("random", function () {
47
47
  [1, 3],
48
48
  ]);
49
49
  expect(test_util_1.TestUtil.isUpperCharValid(value, [1, 3])).toBeTruthy();
50
- }
50
+ });
51
51
  });
52
52
  it("alphabet: lower", function () {
53
- for (var i = 0; i < 100; i++) {
53
+ test_util_1.TestUtil.loop(function () {
54
54
  var value = (0, basic_1.random)(["english", "l"]);
55
55
  expect(test_util_1.TestUtil.isLowerCharValid(value, 1)).toBeTruthy();
56
56
  value = (0, basic_1.random)([
@@ -58,6 +58,6 @@ describe("random", function () {
58
58
  [1, 3],
59
59
  ]);
60
60
  expect(test_util_1.TestUtil.isLowerCharValid(value, [1, 3])).toBeTruthy();
61
- }
61
+ });
62
62
  });
63
63
  });
@@ -1,11 +1,13 @@
1
1
  import { RandexLength, RandexSet } from "../interfaces";
2
2
  export declare class TestUtil {
3
3
  static testIn(value: string, length: RandexLength | undefined, action: () => void): void;
4
+ static loop(action: (index: number) => void): void;
4
5
  static testInSet(value: string, set: RandexSet, length?: RandexLength): void;
6
+ static testInSetRange(value: string, set: RandexSet, range: string, length?: RandexLength): void;
5
7
  static testInRange(value: string, range: string, length?: RandexLength): void;
6
8
  static testInBoth(value: string, set: RandexSet, range: string, length?: RandexLength): void;
7
9
  static inRange(value: string, range: string): boolean;
8
- static inSet(value: string, set: RandexSet): boolean;
10
+ static inSet(value: string, set: RandexSet, range?: string): boolean;
9
11
  static inBoth(value: string, set: RandexSet, range: string): boolean;
10
12
  static isEmailValid(email: string): RegExpMatchArray | null;
11
13
  static isUsernameValid(email: string): RegExpMatchArray | null;
@@ -19,12 +19,23 @@ var TestUtil = /** @class */ (function () {
19
19
  action();
20
20
  }
21
21
  };
22
+ TestUtil.loop = function (action) {
23
+ for (var i = 0; i < 100; i++) {
24
+ action(i);
25
+ }
26
+ };
22
27
  TestUtil.testInSet = function (value, set, length) {
23
28
  if (length === void 0) { length = 1; }
24
29
  TestUtil.testIn(value, length, function () {
25
30
  expect(TestUtil.inSet(value, set)).toBeTruthy();
26
31
  });
27
32
  };
33
+ TestUtil.testInSetRange = function (value, set, range, length) {
34
+ if (length === void 0) { length = 1; }
35
+ TestUtil.testIn(value, length, function () {
36
+ expect(TestUtil.inSet(value, set, range)).toBeTruthy();
37
+ });
38
+ };
28
39
  TestUtil.testInRange = function (value, range, length) {
29
40
  if (length === void 0) { length = 1; }
30
41
  TestUtil.testIn(value, length, function () {
@@ -45,9 +56,9 @@ var TestUtil = /** @class */ (function () {
45
56
  }
46
57
  return value.length > 0;
47
58
  };
48
- TestUtil.inSet = function (value, set) {
49
- var range = set_1.RandexSetUtil.toRange(set);
50
- return TestUtil.inRange(value, range);
59
+ TestUtil.inSet = function (value, set, range) {
60
+ var fullRange = set_1.RandexSetUtil.toRange(set) + (range ? range : "");
61
+ return TestUtil.inRange(value, fullRange);
51
62
  };
52
63
  TestUtil.inBoth = function (value, set, range) {
53
64
  var fullRange = set_1.RandexSetUtil.toRange(set) + range;
@@ -4,10 +4,10 @@ var username_1 = require("../custom/username");
4
4
  var test_util_1 = require("./test-util");
5
5
  describe("randomEmail", function () {
6
6
  it("simple", function () {
7
- for (var i = 0; i < 100; i++) {
7
+ test_util_1.TestUtil.loop(function () {
8
8
  var value = (0, username_1.randomUsername)();
9
9
  expect(test_util_1.TestUtil.isUsernameValid(value)).toBeTruthy();
10
- }
10
+ });
11
11
  });
12
12
  it("options", function () {
13
13
  var value = (0, username_1.randomUsername)({ length: 5 });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "randex",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",