randex 0.6.0 → 0.8.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
@@ -23,6 +23,11 @@ Functions:
23
23
  - [randomName](#randomname)
24
24
  - [randomFullName](#randomfullname)
25
25
 
26
+ Deeps:
27
+
28
+ - [Customization](#customization)
29
+ - [Types](#types)
30
+
26
31
  ## random
27
32
 
28
33
  Basic function for construct random thing.
@@ -35,6 +40,8 @@ random({
35
40
  set: "english",
36
41
  length: 3,
37
42
  });
43
+ // or short:
44
+ random(["english", 3]);
38
45
  // EFd
39
46
 
40
47
  // 3 lower english chars
@@ -42,6 +49,8 @@ random({
42
49
  set: ["english", "lower"],
43
50
  length: 3,
44
51
  });
52
+ // or short:
53
+ random([["english", "lower"], 3]);
45
54
  // yhl
46
55
 
47
56
  // min 1 and max 3 english chars
@@ -49,6 +58,8 @@ random({
49
58
  set: "english",
50
59
  length: [1, 3],
51
60
  });
61
+ // or short:
62
+ random(["english", [1, 3]]);
52
63
  // eR
53
64
 
54
65
  // 3 number chars
@@ -56,6 +67,8 @@ random({
56
67
  set: "number",
57
68
  length: 3,
58
69
  });
70
+ // or short:
71
+ random(["number", 3]);
59
72
  // 643
60
73
 
61
74
  // 3 chars from custom range
@@ -70,6 +83,9 @@ random({
70
83
  set: ["english", "number"],
71
84
  length: 3,
72
85
  });
86
+ // or short:
87
+ random([["english", "number"], 3]);
88
+ // x4d
73
89
 
74
90
  // 4 chars: 2 english and 2 english or number
75
91
  random(
@@ -82,6 +98,8 @@ random(
82
98
  length: 2,
83
99
  }
84
100
  );
101
+ // or short:
102
+ random(["english", 2], [["english", "number"], 2]);
85
103
  // Kb3b
86
104
  ```
87
105
 
@@ -99,27 +117,46 @@ Randoms file name.
99
117
  ```ts
100
118
  import { randomFileName } from "randex";
101
119
 
120
+ // default
102
121
  randomFileName({
103
122
  extension: "txt",
104
123
  });
105
-
106
124
  // td1TX31eOB.txt
107
- ```
108
125
 
109
- Equals to:
126
+ // defined extension
127
+ randomFileName({
128
+ extension: "txt",
129
+ });
130
+ // or short:
131
+ randomFileName("txt");
132
+ // HkmOjqHC6.txt
110
133
 
111
- ```ts
112
- random([["english", "number"], "_.", [5, 10]]) +
113
- random(["english", "number"]) +
114
- "." +
115
- (extension
116
- ? extension
117
- : random([
118
- ["english", "l"],
119
- [2, 5],
120
- ]));
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
121
151
  ```
122
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
+
123
160
  ## randomUsername
124
161
 
125
162
  Randoms username.
@@ -127,64 +164,73 @@ Randoms username.
127
164
  ```ts
128
165
  import { randomUsername } from "randex";
129
166
 
130
- // default (min - 6, max - 10 chars)
167
+ // default
131
168
  randomUsername();
132
169
  // icvv81d1j
133
170
 
134
171
  // with length 5 chars
135
172
  randomUsername({ length: 5 });
173
+ // or short:
174
+ randomUsername(5);
136
175
  // okmle
137
176
 
138
177
  // with 2 min and 5 max chars
139
178
  randomName({ length: [2, 5] });
179
+ // or short:
180
+ randomUsername([2, 5]);
140
181
  // lkhs
141
-
142
- ```
143
-
144
- Equals to:
145
-
146
- ```ts
147
- random(
148
- ["english", "l"],
149
- [
150
- [["english", "l"], "number"],
151
- [5, 10],
152
- ]
153
- );
154
182
  ```
155
183
 
156
184
  Options:
157
185
  | Name | Type| Description|
158
186
  | ------------------------ | ---- |------------ |
159
- |length|[RandexLength](#randexlength) | Length of chars |
160
-
187
+ |length|[RandexLength](#randexlength) | Length of chars. Default: [6,10] |
161
188
 
162
189
  ## randomEmail
163
190
 
164
- Randoms username.
191
+ Randoms an email.
165
192
 
166
193
  ```ts
167
194
  import { randomEmail } from "randex";
168
195
 
169
-
196
+ // default
170
197
  randomEmail();
171
198
  // stv4ox27sevt@mqsyin.fil
172
199
 
173
- ```
174
-
175
- Equals to:
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
176
217
 
177
- ```ts
178
- random(["english", "l"], [[["english", "l"], "number"], 10], ["english", "l"]) +
179
- "@" +
180
- random(["english", "l"], [["english", "l"], "-", [0, 5]], ["english", "l"]) +
181
- "." +
182
- random([
183
- ["english", "l"],
184
- [2, 4],
185
- ]);
218
+ // defined domain
219
+ randomEmail({
220
+ domain: "test.com",
221
+ });
222
+ // or shot:
223
+ randomEmail("test.com");
224
+ // efnmo1r5@test.com
186
225
  ```
187
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. |
188
234
 
189
235
  ## randomName
190
236
 
@@ -193,40 +239,40 @@ Randoms a name of the person, city, place, restaurant, ect.
193
239
  ```ts
194
240
  import { randomName } from "randex";
195
241
 
196
- // default (min - 2, max - 10 chars)
242
+ // default
197
243
  randomName();
198
244
  // Ijb
199
245
 
200
- // name from french alphabet
201
- randomName({ alphabet: "french" });
202
- // Dbïœ
203
-
204
246
  // with length 5 chars
205
247
  randomName({ length: 5 });
248
+ // or short:
249
+ randomName(5);
206
250
  // Okmpj
207
251
 
208
252
  // with 2 min and 5 max chars
209
253
  randomName({ length: [2, 5] });
254
+ // or short:
255
+ randomName([2, 5]);
210
256
  // Wslg
211
- ```
212
257
 
213
- Equals to:
258
+ // name from french alphabet
259
+ randomName({ alphabet: "french" });
260
+ // or short:
261
+ randomName("french");
262
+ // Dbïœ
214
263
 
215
- ```ts
216
- random(
217
- ["english", "u"],
218
- [
219
- ["english", "l"],
220
- [1, 10],
221
- ]
222
- );
264
+ // name from french alphabet with length
265
+ randomName({ alphabet: "french", length: 10 });
266
+ // or short:
267
+ randomName("french", 10);
268
+ // Rsîrjhjôôw
223
269
  ```
224
270
 
225
271
  Options:
226
272
  | Name | Type| Description|
227
273
  | ------------------------ | ---- |------------ |
228
- |length|[RandexLength](#randexlength) | Length of chars |
229
- |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet |
274
+ |length|[RandexLength](#randexlength) | Length of chars. Default: [2,10] |
275
+ |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet. Default: `english` |
230
276
 
231
277
  ## randomFullName
232
278
 
@@ -235,6 +281,7 @@ Randoms a full name of the person.
235
281
  ```ts
236
282
  import { randomFullName } from "randex";
237
283
 
284
+ // default
238
285
  randomFullName();
239
286
  // Eqaa Bfmotnq
240
287
  ```
@@ -242,9 +289,84 @@ randomFullName();
242
289
  Options:
243
290
  | Name | Type| Description|
244
291
  | ------------------------ | ---- |------------ |
245
- |firstLength|[RandexLength](#randexlength) | First name length of chars |
246
- |secondLength|[RandexLength](#randexlength) | Second name length of chars |
247
- |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet |
292
+ |firstLength|[RandexLength](#randexlength) | First name length of chars. Default: [2, 10] |
293
+ |secondLength|[RandexLength](#randexlength) | Second name length of chars. Default: [2,10] |
294
+ |alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet. Default: `english` |
295
+
296
+ ## Customization
297
+
298
+ [random](#random) function is very flexible, there are many custom functions can be created.
299
+
300
+ There are examples how to create custom function for most common cases:
301
+
302
+ <b>randomFileName</b>
303
+
304
+ ```ts
305
+ random([["english", "number"], "_.", [5, 10]]) +
306
+ random(["english", "number"]) +
307
+ "." +
308
+ random([
309
+ ["english", "l"],
310
+ [2, 5],
311
+ ]);
312
+ ```
313
+
314
+ <b>randomUsername</b>
315
+
316
+ ```ts
317
+ random(
318
+ ["english", "l"],
319
+ [
320
+ [["english", "l"], "number"],
321
+ [5, 10],
322
+ ]
323
+ );
324
+ ```
325
+
326
+ <b>randomEmail</b>
327
+
328
+ ```ts
329
+ random(["english", "l"], [[["english", "l"], "number"], 10], ["english", "l"]) +
330
+ "@" +
331
+ random(["english", "l"], [["english", "l"], "-", [0, 5]], ["english", "l"]) +
332
+ "." +
333
+ random([
334
+ ["english", "l"],
335
+ [2, 4],
336
+ ]);
337
+ ```
338
+
339
+ <b>randomName</b>
340
+
341
+ ```ts
342
+ random(
343
+ ["english", "u"],
344
+ [
345
+ ["english", "l"],
346
+ [1, 10],
347
+ ]
348
+ );
349
+ ```
350
+
351
+ <b>randomFullName</b>
352
+
353
+ ```ts
354
+ random(
355
+ ["english", "u"],
356
+ [
357
+ ["english", "l"],
358
+ [1, 10],
359
+ ]
360
+ ) +
361
+ " " +
362
+ random(
363
+ ["english", "u"],
364
+ [
365
+ ["english", "l"],
366
+ [1, 10],
367
+ ]
368
+ );
369
+ ```
248
370
 
249
371
  ## Types
250
372
 
@@ -256,6 +378,16 @@ Possible types:
256
378
 
257
379
  `[number, number]`: an array of min and max length.
258
380
 
381
+ Example:
382
+
383
+ ```ts
384
+ random({ set: "bit", length: 5 });
385
+ random({ set: "bit", length: [5, 10] });
386
+ // or short:
387
+ random(["bit", 5]);
388
+ random(["bit", [5, 10]]);
389
+ ```
390
+
259
391
  ## RandexSet
260
392
 
261
393
  Possible types:
@@ -264,20 +396,56 @@ Possible types:
264
396
 
265
397
  `[string, string]`: the first item is - [RandexAlphabet](#randexalphabet), the second item is - [RandexCase](#randexcase)
266
398
 
399
+ Example:
400
+
401
+ ```ts
402
+ random({ set: "bit" });
403
+ random({ set: "spanish" });
404
+ random({ set: ["spanish", "lower"] });
405
+ // or short:
406
+ random("bit");
407
+ random("spanish");
408
+ random(["spanish", "l"]);
409
+ ```
410
+
267
411
  ## RandexAlphabet
268
412
 
269
413
  An alphabet of chars
270
414
 
271
415
  `string` values: `english`, `french`, `spanish`, `russian`.
272
416
 
417
+ Example:
418
+
419
+ ```ts
420
+ random({ set: "spanish" });
421
+ // or short:
422
+ random("spanish");
423
+ ```
424
+
273
425
  ## RandexKit
274
426
 
275
427
  A kit of chars
276
428
 
277
429
  `string` values: `hex`, `symbol`, `number`, `binary`.
278
430
 
431
+ Example:
432
+
433
+ ```ts
434
+ random({ set: "hex" });
435
+ // or short:
436
+ random("hex");
437
+ ```
438
+
279
439
  ## RandexCase
280
440
 
281
441
  A case of alphabet
282
442
 
283
443
  `string` values: `upper`, `u`,`lower`, `l`.
444
+
445
+ Example:
446
+
447
+ ```ts
448
+ random({ set: ["spanish", "lower"] });
449
+ // or short:
450
+ random(["spanish", "l"]);
451
+ ```
@@ -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;
@@ -3,7 +3,7 @@ export declare class RandexTypeParser {
3
3
  private static inRange;
4
4
  private static inLiteral;
5
5
  static inCase(value: string): value is RandexCase;
6
- static inAlphabet(value: string): value is RandexAlphabet;
6
+ static inAlphabet(value: any): value is RandexAlphabet;
7
7
  static inSet(value: string): value is RandexSingleSet;
8
8
  static isLength(value: any): value is RandexLength;
9
9
  static isSetSingle(value: any): value is RandexItemSet;
package/lib/basic/type.js CHANGED
@@ -13,14 +13,15 @@ var RandexTypeParser = /** @class */ (function () {
13
13
  for (var _i = 1; _i < arguments.length; _i++) {
14
14
  expects[_i - 1] = arguments[_i];
15
15
  }
16
- return !!expects.find(function (x) { return x === value; });
16
+ return typeof value === "string" && !!expects.find(function (x) { return x === value; });
17
17
  };
18
18
  RandexTypeParser.inCase = function (value) {
19
19
  return RandexTypeParser.inLiteral(value, "default", "lower", "upper", "l", "u");
20
20
  };
21
21
  RandexTypeParser.inAlphabet = function (value) {
22
- return RandexTypeParser.inLiteral(value, "english", "french", "spanish", // "german",
23
- "russian");
22
+ return (typeof value === "string" &&
23
+ RandexTypeParser.inLiteral(value, "english", "french", "spanish", // "german",
24
+ "russian"));
24
25
  };
25
26
  RandexTypeParser.inSet = function (value) {
26
27
  return RandexTypeParser.inAlphabet(value) || RandexTypeParser.inLiteral(value, "hex", "symbol", "number", "binary");
@@ -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;
@@ -0,0 +1,11 @@
1
+ import { RandexAlphabet, RandexLength } from "../interfaces";
2
+ export interface RandexFullNameOptions {
3
+ alphabet?: RandexAlphabet;
4
+ firstLength?: RandexLength;
5
+ secondLength?: RandexLength;
6
+ }
7
+ export declare function randomFullName(options?: RandexFullNameOptions): any;
8
+ export declare function randomFullName(length: RandexLength): any;
9
+ export declare function randomFullName(alphabet?: RandexAlphabet): any;
10
+ export declare function randomFullName(alphabet: RandexAlphabet, length: RandexLength): any;
11
+ export declare function randomFullName(alphabet: RandexAlphabet, firstLength: RandexLength, secondLength: RandexLength): any;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randomFullName = void 0;
4
+ var type_1 = require("../basic/type");
5
+ var name_1 = require("./name");
6
+ function randomFullName(p1, p2, p3) {
7
+ var firstLength = 0;
8
+ var secondLength = 0;
9
+ var alphabet = "english";
10
+ if (type_1.RandexTypeParser.isLength(p1)) {
11
+ firstLength = secondLength = p1;
12
+ }
13
+ else if (type_1.RandexTypeParser.inAlphabet(p1)) {
14
+ alphabet = p1;
15
+ if (type_1.RandexTypeParser.isLength(p2)) {
16
+ firstLength = secondLength = p2;
17
+ }
18
+ if (type_1.RandexTypeParser.isLength(p3)) {
19
+ secondLength = p3;
20
+ }
21
+ }
22
+ else if (typeof p1 === "object") {
23
+ if (p1.alphabet) {
24
+ alphabet = p1.alphabet;
25
+ }
26
+ if (p1.firstLength) {
27
+ firstLength = p1.firstLength;
28
+ }
29
+ if (p1.secondLength) {
30
+ secondLength = p1.secondLength;
31
+ }
32
+ }
33
+ return (0, name_1.randomName)({ length: firstLength, alphabet: alphabet }) + " " + (0, name_1.randomName)({ length: secondLength, alphabet: alphabet });
34
+ }
35
+ exports.randomFullName = randomFullName;
@@ -2,3 +2,4 @@ export * from "./email";
2
2
  export * from "./filename";
3
3
  export * from "./name";
4
4
  export * from "./username";
5
+ export * from "./fullname";
@@ -18,3 +18,4 @@ __exportStar(require("./email"), exports);
18
18
  __exportStar(require("./filename"), exports);
19
19
  __exportStar(require("./name"), exports);
20
20
  __exportStar(require("./username"), exports);
21
+ __exportStar(require("./fullname"), exports);
@@ -1,12 +1,9 @@
1
1
  import { RandexAlphabet, RandexLength } from "../interfaces";
2
2
  export interface RandexNameOptions {
3
- length?: RandexLength;
4
- alphabet?: RandexAlphabet;
5
- }
6
- export interface RandexFullNameOptions {
7
- firstLength?: RandexLength;
8
- secondLength?: RandexLength;
9
3
  alphabet?: RandexAlphabet;
4
+ length?: RandexLength;
10
5
  }
11
- export declare function randomName(options?: RandexNameOptions): string;
12
- export declare function randomFullName(options?: RandexFullNameOptions): string;
6
+ export declare function randomName(options?: RandexNameOptions): any;
7
+ export declare function randomName(length: RandexLength): any;
8
+ export declare function randomName(alphabet?: RandexAlphabet): any;
9
+ export declare function randomName(alphabet: RandexAlphabet, length: RandexLength): any;
@@ -1,16 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.randomFullName = exports.randomName = void 0;
3
+ exports.randomName = void 0;
4
4
  var basic_1 = require("../basic");
5
5
  var set_1 = require("../basic/set");
6
- function randomName(options) {
7
- var _a = options || {}, length = _a.length, _b = _a.alphabet, alphabet = _b === void 0 ? "english" : _b;
6
+ var type_1 = require("../basic/type");
7
+ function randomName(p1, p2) {
8
+ var length = 0;
9
+ var alphabet = "english";
10
+ if (type_1.RandexTypeParser.isLength(p1)) {
11
+ length = p1;
12
+ }
13
+ else if (type_1.RandexTypeParser.inAlphabet(p1)) {
14
+ alphabet = p1;
15
+ if (type_1.RandexTypeParser.isLength(p2)) {
16
+ length = p2;
17
+ }
18
+ }
19
+ else if (typeof p1 === "object") {
20
+ if (p1.alphabet) {
21
+ alphabet = p1.alphabet;
22
+ }
23
+ if (p1.length) {
24
+ length = p1.length;
25
+ }
26
+ }
8
27
  var currentLength = set_1.RandexSetUtil.getLength(1, length, [1, 9]);
9
28
  return (0, basic_1.random)([alphabet, "u"], [[alphabet, "l"], currentLength]);
10
29
  }
11
30
  exports.randomName = randomName;
12
- function randomFullName(options) {
13
- var _a = options || {}, firstLength = _a.firstLength, secondLength = _a.secondLength, alphabet = _a.alphabet;
14
- return randomName({ length: firstLength, alphabet: alphabet }) + " " + randomName({ length: secondLength, alphabet: alphabet });
15
- }
16
- exports.randomFullName = randomFullName;
@@ -2,4 +2,4 @@ import { RandexLength } from "../interfaces";
2
2
  export interface RandexUsernameOptions {
3
3
  length?: RandexLength;
4
4
  }
5
- export declare function randomUsername(options?: RandexUsernameOptions): string;
5
+ export declare function randomUsername(options?: RandexUsernameOptions | RandexLength): string;
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.randomUsername = void 0;
4
4
  var basic_1 = require("../basic");
5
5
  var set_1 = require("../basic/set");
6
+ var type_1 = require("../basic/type");
6
7
  function randomUsername(options) {
7
- var length = (options || {}).length;
8
+ var length = type_1.RandexTypeParser.isLength(options) ? options : options === null || options === void 0 ? void 0 : options.length;
8
9
  var currentLength = set_1.RandexSetUtil.getLength(1, length, [6, 10]);
9
10
  return (0, basic_1.random)(["english", "l"], [[["english", "l"], "number"], currentLength]);
10
11
  }
@@ -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
  });
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var name_1 = require("../custom/name");
3
+ 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++) {
8
- var value = (0, name_1.randomFullName)();
7
+ test_util_1.TestUtil.loop(function () {
8
+ var value = (0, custom_1.randomFullName)();
9
9
  expect(test_util_1.TestUtil.isFullNameValid(value)).toBeTruthy();
10
- }
10
+ });
11
11
  });
12
12
  });
@@ -9,31 +9,47 @@ describe("markdown", function () {
9
9
  length: 3,
10
10
  });
11
11
  expect(value.length).toBe(3);
12
+ value = (0, basic_1.random)(["english", 3]);
13
+ expect(value.length).toBe(3);
14
+ //
12
15
  value = (0, basic_1.random)({
13
16
  set: ["english", "lower"],
14
17
  length: 3,
15
18
  });
16
19
  expect(value.length).toBe(3);
20
+ value = (0, basic_1.random)([["english", "lower"], 3]);
21
+ expect(value.length).toBe(3);
22
+ //
17
23
  value = (0, basic_1.random)({
18
24
  set: "english",
19
25
  length: [1, 3],
20
26
  });
21
27
  expect(value.length).toBeLessThanOrEqual(3);
28
+ value = (0, basic_1.random)(["english", [1, 3]]);
29
+ expect(value.length).toBeLessThanOrEqual(3);
30
+ //
22
31
  value = (0, basic_1.random)({
23
32
  set: "number",
24
33
  length: 3,
25
34
  });
26
35
  expect(value.length).toBe(3);
36
+ value = (0, basic_1.random)(["number", 3]);
37
+ expect(value.length).toBe(3);
38
+ //
27
39
  value = (0, basic_1.random)({
28
40
  range: "abc123",
29
41
  length: 3,
30
42
  });
31
43
  expect(value.length).toBe(3);
44
+ //
32
45
  value = (0, basic_1.random)({
33
46
  set: ["english", "number"],
34
47
  length: 3,
35
48
  });
36
49
  expect(value.length).toBe(3);
50
+ value = (0, basic_1.random)([["english", "number"], 3]);
51
+ expect(value.length).toBe(3);
52
+ //
37
53
  value = (0, basic_1.random)({
38
54
  set: "english",
39
55
  length: 2,
@@ -42,11 +58,25 @@ describe("markdown", function () {
42
58
  length: 2,
43
59
  });
44
60
  expect(value.length).toBe(4);
61
+ value = (0, basic_1.random)(["english", 2], [["english", "number"], 2]);
62
+ expect(value.length).toBe(4);
45
63
  });
46
64
  it("randomFileName", function () {
47
- var value = (0, custom_1.randomFileName)({
65
+ var value = (0, custom_1.randomFileName)();
66
+ value = (0, custom_1.randomFileName)({
48
67
  extension: "txt",
49
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");
50
80
  expect(value).toBeTruthy();
51
81
  });
52
82
  it("randomUsername", function () {
@@ -55,6 +85,20 @@ describe("markdown", function () {
55
85
  });
56
86
  it("randomEmail", function () {
57
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");
58
102
  expect(value).toBeTruthy();
59
103
  });
60
104
  it("randomName", function () {
@@ -4,17 +4,31 @@ 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
- it("options", function () {
13
- var value1 = (0, name_1.randomName)({ length: 5 });
14
- expect(value1.length).toBe(5);
15
- var value2 = (0, name_1.randomName)({ length: [5, 5] });
16
- expect(value2.length).toBe(5);
17
- var value3 = (0, name_1.randomName)({ length: [1, 5] });
18
- expect(test_util_1.TestUtil.inNumberRange(value3.length, [1, 5])).toBeTruthy();
12
+ it("options: length", function () {
13
+ var value = (0, name_1.randomName)({ length: 5 });
14
+ expect(value.length).toBe(5);
15
+ value = (0, name_1.randomName)(5);
16
+ expect(value.length).toBe(5);
17
+ //
18
+ value = (0, name_1.randomName)({ length: [5, 5] });
19
+ expect(value.length).toBe(5);
20
+ value = (0, name_1.randomName)([5, 5]);
21
+ expect(value.length).toBe(5);
22
+ //
23
+ value = (0, name_1.randomName)({ length: [1, 5] });
24
+ expect(test_util_1.TestUtil.inNumberRange(value.length, [1, 5])).toBeTruthy();
25
+ value = (0, name_1.randomName)([1, 5]);
26
+ expect(test_util_1.TestUtil.inNumberRange(value.length, [1, 5])).toBeTruthy();
27
+ });
28
+ it("options: alphabet", function () {
29
+ var value = (0, name_1.randomName)({ alphabet: "russian", length: 5 });
30
+ expect(value.length).toBe(5);
31
+ value = (0, name_1.randomName)("french", 10);
32
+ expect(value.length).toBe(10);
19
33
  });
20
34
  });
@@ -32,8 +32,14 @@ describe("random", function () {
32
32
  inSet("english", [1, 3]);
33
33
  inSet("english", [0, 1]);
34
34
  });
35
+ it("length: alphabet", function () {
36
+ var value = (0, basic_1.random)("english");
37
+ expect(value.length).toBe(1);
38
+ value = (0, basic_1.random)(["english", "l"]);
39
+ expect(value.length).toBe(1);
40
+ });
35
41
  it("alphabet: upper", function () {
36
- for (var i = 0; i < 100; i++) {
42
+ test_util_1.TestUtil.loop(function () {
37
43
  var value = (0, basic_1.random)(["english", "u"]);
38
44
  expect(test_util_1.TestUtil.isUpperCharValid(value, 1)).toBeTruthy();
39
45
  value = (0, basic_1.random)([
@@ -41,10 +47,10 @@ describe("random", function () {
41
47
  [1, 3],
42
48
  ]);
43
49
  expect(test_util_1.TestUtil.isUpperCharValid(value, [1, 3])).toBeTruthy();
44
- }
50
+ });
45
51
  });
46
52
  it("alphabet: lower", function () {
47
- for (var i = 0; i < 100; i++) {
53
+ test_util_1.TestUtil.loop(function () {
48
54
  var value = (0, basic_1.random)(["english", "l"]);
49
55
  expect(test_util_1.TestUtil.isLowerCharValid(value, 1)).toBeTruthy();
50
56
  value = (0, basic_1.random)([
@@ -52,6 +58,6 @@ describe("random", function () {
52
58
  [1, 3],
53
59
  ]);
54
60
  expect(test_util_1.TestUtil.isLowerCharValid(value, [1, 3])).toBeTruthy();
55
- }
61
+ });
56
62
  });
57
63
  });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var set_1 = require("../basic/set");
4
+ var defaultLength = [1, 10];
5
+ function getLength(reservedChars, length, resultLength) {
6
+ var result = set_1.RandexSetUtil.getLength(reservedChars, length, defaultLength);
7
+ if (typeof resultLength === "number") {
8
+ expect(result).toBe(resultLength);
9
+ }
10
+ else {
11
+ expect(result).toMatchObject(resultLength);
12
+ }
13
+ }
14
+ describe("RandexSetUtil", function () {
15
+ describe("getLength", function () {
16
+ it("single", function () {
17
+ getLength(0, 2, 2);
18
+ getLength(1, 3, 2);
19
+ getLength(0, undefined, defaultLength);
20
+ getLength(5, 3, defaultLength);
21
+ });
22
+ it("array", function () {
23
+ getLength(0, [1, 2], [1, 2]);
24
+ getLength(1, [2, 3], [1, 2]);
25
+ getLength(3, [1, 5], defaultLength);
26
+ });
27
+ });
28
+ });
@@ -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,17 +4,25 @@ 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
- var value1 = (0, username_1.randomUsername)({ length: 5 });
14
- expect(value1.length).toBe(5);
15
- var value2 = (0, username_1.randomUsername)({ length: [5, 5] });
16
- expect(value2.length).toBe(5);
17
- var value3 = (0, username_1.randomUsername)({ length: [1, 5] });
18
- expect(test_util_1.TestUtil.inNumberRange(value3.length, [1, 5])).toBeTruthy();
13
+ var value = (0, username_1.randomUsername)({ length: 5 });
14
+ expect(value.length).toBe(5);
15
+ value = (0, username_1.randomUsername)(5);
16
+ expect(value.length).toBe(5);
17
+ //
18
+ value = (0, username_1.randomUsername)({ length: [5, 5] });
19
+ expect(value.length).toBe(5);
20
+ value = (0, username_1.randomUsername)([5, 5]);
21
+ expect(value.length).toBe(5);
22
+ //
23
+ value = (0, username_1.randomUsername)({ length: [1, 5] });
24
+ expect(test_util_1.TestUtil.inNumberRange(value.length, [1, 5])).toBeTruthy();
25
+ value = (0, username_1.randomUsername)([1, 5]);
26
+ expect(test_util_1.TestUtil.inNumberRange(value.length, [1, 5])).toBeTruthy();
19
27
  });
20
28
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "randex",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",