randex 0.3.0 → 0.6.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/.vscode/settings.json +1 -0
- package/README.md +186 -62
- package/lib/basic/index.d.ts +2 -2
- package/lib/basic/index.js +25 -30
- package/lib/basic/set.d.ts +6 -4
- package/lib/basic/set.js +78 -18
- package/lib/basic/type.d.ts +12 -0
- package/lib/basic/type.js +78 -0
- package/lib/custom/email.js +6 -3
- package/lib/custom/filename.js +9 -1
- package/lib/custom/name.d.ts +11 -5
- package/lib/custom/name.js +7 -25
- package/lib/custom/username.d.ts +5 -1
- package/lib/custom/username.js +5 -5
- package/lib/interfaces/index.d.ts +15 -11
- package/lib/test/filename.test.js +2 -2
- package/lib/test/markdown.test.d.ts +1 -0
- package/lib/test/markdown.test.js +74 -0
- package/lib/test/params.test.js +5 -5
- package/lib/test/random.test.js +29 -7
- package/lib/test/test-util.d.ts +9 -7
- package/lib/test/test-util.js +12 -2
- package/lib/test/type.test.d.ts +1 -0
- package/lib/test/type.test.js +59 -0
- package/lib/test/username.test.js +8 -0
- package/package.json +2 -5
package/.vscode/settings.json
CHANGED
package/README.md
CHANGED
|
@@ -14,63 +14,110 @@ Installation:
|
|
|
14
14
|
npm i randex
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
- [randomFileName](#randomfilename)
|
|
19
|
-
- [randomUsername](#randomfilename)
|
|
20
|
-
- [randomEmail](#randomfilename)
|
|
21
|
-
- [randomName](#randomfilename)
|
|
22
|
-
- [randomFullName](#randomfilename)
|
|
17
|
+
Functions:
|
|
23
18
|
|
|
19
|
+
- [random](#random)
|
|
20
|
+
- [randomFileName](#randomfilename)
|
|
21
|
+
- [randomUsername](#randomusername)
|
|
22
|
+
- [randomEmail](#randomemail)
|
|
23
|
+
- [randomName](#randomname)
|
|
24
|
+
- [randomFullName](#randomfullname)
|
|
24
25
|
|
|
25
|
-
##
|
|
26
|
+
## random
|
|
26
27
|
|
|
27
28
|
Basic function for construct random thing.
|
|
28
29
|
|
|
29
30
|
```ts
|
|
30
|
-
import { random } from
|
|
31
|
-
|
|
31
|
+
import { random } from "randex";
|
|
32
|
+
|
|
33
|
+
// 3 english chars
|
|
34
|
+
random({
|
|
35
|
+
set: "english",
|
|
36
|
+
length: 3,
|
|
37
|
+
});
|
|
38
|
+
// EFd
|
|
39
|
+
|
|
40
|
+
// 3 lower english chars
|
|
41
|
+
random({
|
|
42
|
+
set: ["english", "lower"],
|
|
43
|
+
length: 3,
|
|
44
|
+
});
|
|
45
|
+
// yhl
|
|
46
|
+
|
|
47
|
+
// min 1 and max 3 english chars
|
|
48
|
+
random({
|
|
49
|
+
set: "english",
|
|
50
|
+
length: [1, 3],
|
|
51
|
+
});
|
|
52
|
+
// eR
|
|
53
|
+
|
|
54
|
+
// 3 number chars
|
|
55
|
+
random({
|
|
56
|
+
set: "number",
|
|
57
|
+
length: 3,
|
|
58
|
+
});
|
|
59
|
+
// 643
|
|
60
|
+
|
|
61
|
+
// 3 chars from custom range
|
|
62
|
+
random({
|
|
63
|
+
range: "abc123",
|
|
64
|
+
length: 3,
|
|
65
|
+
});
|
|
66
|
+
// a21
|
|
67
|
+
|
|
68
|
+
// 3 english or number chars
|
|
69
|
+
random({
|
|
70
|
+
set: ["english", "number"],
|
|
71
|
+
length: 3,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// 4 chars: 2 english and 2 english or number
|
|
32
75
|
random(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
76
|
+
{
|
|
77
|
+
set: "english",
|
|
78
|
+
length: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
set: ["english", "number"],
|
|
82
|
+
length: 2,
|
|
83
|
+
}
|
|
41
84
|
);
|
|
42
|
-
|
|
43
|
-
// gTo3
|
|
85
|
+
// Kb3b
|
|
44
86
|
```
|
|
45
87
|
|
|
46
88
|
Options:
|
|
47
|
-
| Name
|
|
89
|
+
| Name | Type| Description|
|
|
48
90
|
| ------------------------ | ---- |------------ |
|
|
49
|
-
|set|
|
|
91
|
+
|set|[RandexSet](#randexset) | Defined chars|
|
|
50
92
|
|range|`string`| Range or custom chars |
|
|
51
|
-
|length
|
|
52
|
-
|
|
53
|
-
|
|
93
|
+
|length|[RandexLength](#randexlength) | Length of chars |
|
|
54
94
|
|
|
55
95
|
## randomFileName
|
|
56
96
|
|
|
57
97
|
Randoms file name.
|
|
58
98
|
|
|
59
99
|
```ts
|
|
60
|
-
import { randomFileName } from
|
|
100
|
+
import { randomFileName } from "randex";
|
|
61
101
|
|
|
62
|
-
randomFileName(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
66
|
-
);
|
|
102
|
+
randomFileName({
|
|
103
|
+
extension: "txt",
|
|
104
|
+
});
|
|
67
105
|
|
|
68
|
-
//
|
|
106
|
+
// td1TX31eOB.txt
|
|
69
107
|
```
|
|
70
108
|
|
|
71
|
-
Equals to:
|
|
109
|
+
Equals to:
|
|
110
|
+
|
|
72
111
|
```ts
|
|
73
|
-
random([["
|
|
112
|
+
random([["english", "number"], "_.", [5, 10]]) +
|
|
113
|
+
random(["english", "number"]) +
|
|
114
|
+
"." +
|
|
115
|
+
(extension
|
|
116
|
+
? extension
|
|
117
|
+
: random([
|
|
118
|
+
["english", "l"],
|
|
119
|
+
[2, 5],
|
|
120
|
+
]));
|
|
74
121
|
```
|
|
75
122
|
|
|
76
123
|
## randomUsername
|
|
@@ -78,82 +125,159 @@ random([["alphabet", "number"], "_.", [5, 10]]) + random(["alphabet", "number"])
|
|
|
78
125
|
Randoms username.
|
|
79
126
|
|
|
80
127
|
```ts
|
|
81
|
-
import { randomUsername } from
|
|
82
|
-
|
|
128
|
+
import { randomUsername } from "randex";
|
|
83
129
|
|
|
130
|
+
// default (min - 6, max - 10 chars)
|
|
84
131
|
randomUsername();
|
|
85
|
-
|
|
86
132
|
// icvv81d1j
|
|
133
|
+
|
|
134
|
+
// with length 5 chars
|
|
135
|
+
randomUsername({ length: 5 });
|
|
136
|
+
// okmle
|
|
137
|
+
|
|
138
|
+
// with 2 min and 5 max chars
|
|
139
|
+
randomName({ length: [2, 5] });
|
|
140
|
+
// lkhs
|
|
141
|
+
|
|
87
142
|
```
|
|
88
143
|
|
|
89
|
-
Equals to:
|
|
144
|
+
Equals to:
|
|
145
|
+
|
|
90
146
|
```ts
|
|
91
|
-
random(
|
|
92
|
-
|
|
147
|
+
random(
|
|
148
|
+
["english", "l"],
|
|
149
|
+
[
|
|
150
|
+
[["english", "l"], "number"],
|
|
93
151
|
[5, 10],
|
|
94
|
-
]
|
|
152
|
+
]
|
|
153
|
+
);
|
|
95
154
|
```
|
|
96
155
|
|
|
156
|
+
Options:
|
|
157
|
+
| Name | Type| Description|
|
|
158
|
+
| ------------------------ | ---- |------------ |
|
|
159
|
+
|length|[RandexLength](#randexlength) | Length of chars |
|
|
160
|
+
|
|
161
|
+
|
|
97
162
|
## randomEmail
|
|
98
163
|
|
|
99
164
|
Randoms username.
|
|
100
165
|
|
|
101
166
|
```ts
|
|
102
|
-
import { randomEmail } from
|
|
167
|
+
import { randomEmail } from "randex";
|
|
103
168
|
|
|
104
169
|
|
|
105
170
|
randomEmail();
|
|
171
|
+
// stv4ox27sevt@mqsyin.fil
|
|
106
172
|
|
|
107
|
-
// dwrq4wu54nzj@dhvy.dtk
|
|
108
173
|
```
|
|
109
174
|
|
|
110
|
-
Equals to:
|
|
175
|
+
Equals to:
|
|
176
|
+
|
|
111
177
|
```ts
|
|
112
|
-
random("
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
+
]);
|
|
117
186
|
```
|
|
118
187
|
|
|
188
|
+
|
|
119
189
|
## randomName
|
|
120
190
|
|
|
121
191
|
Randoms a name of the person, city, place, restaurant, ect.
|
|
122
192
|
|
|
123
193
|
```ts
|
|
124
|
-
import { randomName } from
|
|
125
|
-
|
|
194
|
+
import { randomName } from "randex";
|
|
126
195
|
|
|
196
|
+
// default (min - 2, max - 10 chars)
|
|
127
197
|
randomName();
|
|
198
|
+
// Ijb
|
|
199
|
+
|
|
200
|
+
// name from french alphabet
|
|
201
|
+
randomName({ alphabet: "french" });
|
|
202
|
+
// Dbïœ
|
|
203
|
+
|
|
204
|
+
// with length 5 chars
|
|
205
|
+
randomName({ length: 5 });
|
|
206
|
+
// Okmpj
|
|
128
207
|
|
|
129
|
-
//
|
|
208
|
+
// with 2 min and 5 max chars
|
|
209
|
+
randomName({ length: [2, 5] });
|
|
210
|
+
// Wslg
|
|
130
211
|
```
|
|
131
212
|
|
|
132
|
-
Equals to:
|
|
213
|
+
Equals to:
|
|
214
|
+
|
|
133
215
|
```ts
|
|
134
|
-
random(
|
|
216
|
+
random(
|
|
217
|
+
["english", "u"],
|
|
218
|
+
[
|
|
219
|
+
["english", "l"],
|
|
220
|
+
[1, 10],
|
|
221
|
+
]
|
|
222
|
+
);
|
|
135
223
|
```
|
|
136
224
|
|
|
137
225
|
Options:
|
|
138
|
-
| Name
|
|
226
|
+
| Name | Type| Description|
|
|
139
227
|
| ------------------------ | ---- |------------ |
|
|
140
|
-
|length
|
|
228
|
+
|length|[RandexLength](#randexlength) | Length of chars |
|
|
229
|
+
|alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet |
|
|
141
230
|
|
|
142
231
|
## randomFullName
|
|
143
232
|
|
|
144
233
|
Randoms a full name of the person.
|
|
145
234
|
|
|
146
235
|
```ts
|
|
147
|
-
import { randomFullName } from
|
|
148
|
-
|
|
236
|
+
import { randomFullName } from "randex";
|
|
149
237
|
|
|
150
238
|
randomFullName();
|
|
151
|
-
|
|
152
239
|
// Eqaa Bfmotnq
|
|
153
240
|
```
|
|
154
241
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
242
|
+
Options:
|
|
243
|
+
| Name | Type| Description|
|
|
244
|
+
| ------------------------ | ---- |------------ |
|
|
245
|
+
|firstLength|[RandexLength](#randexlength) | First name length of chars |
|
|
246
|
+
|secondLength|[RandexLength](#randexlength) | Second name length of chars |
|
|
247
|
+
|alphabet|[RandexAlphabet](#randexalphabet) | Defined alphabet |
|
|
248
|
+
|
|
249
|
+
## Types
|
|
250
|
+
|
|
251
|
+
## RandexLength
|
|
252
|
+
|
|
253
|
+
Possible types:
|
|
254
|
+
|
|
255
|
+
`number`: strict length
|
|
256
|
+
|
|
257
|
+
`[number, number]`: an array of min and max length.
|
|
258
|
+
|
|
259
|
+
## RandexSet
|
|
260
|
+
|
|
261
|
+
Possible types:
|
|
262
|
+
|
|
263
|
+
`string`: an alphabet - [RandexAlphabet](#randexalphabet) or a set of chars - [RandexKit](#randexkit)
|
|
264
|
+
|
|
265
|
+
`[string, string]`: the first item is - [RandexAlphabet](#randexalphabet), the second item is - [RandexCase](#randexcase)
|
|
266
|
+
|
|
267
|
+
## RandexAlphabet
|
|
268
|
+
|
|
269
|
+
An alphabet of chars
|
|
270
|
+
|
|
271
|
+
`string` values: `english`, `french`, `spanish`, `russian`.
|
|
272
|
+
|
|
273
|
+
## RandexKit
|
|
274
|
+
|
|
275
|
+
A kit of chars
|
|
276
|
+
|
|
277
|
+
`string` values: `hex`, `symbol`, `number`, `binary`.
|
|
278
|
+
|
|
279
|
+
## RandexCase
|
|
280
|
+
|
|
281
|
+
A case of alphabet
|
|
159
282
|
|
|
283
|
+
`string` values: `upper`, `u`,`lower`, `l`.
|
package/lib/basic/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function random(...options:
|
|
1
|
+
import { RandexContentOptions } from "../interfaces";
|
|
2
|
+
export declare function random(...options: RandexContentOptions[]): string;
|
package/lib/basic/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.random = void 0;
|
|
4
4
|
var set_1 = require("./set");
|
|
5
|
+
var type_1 = require("./type");
|
|
5
6
|
function randomInt(max) {
|
|
6
7
|
return Math.floor(Math.random() * max);
|
|
7
8
|
}
|
|
@@ -18,56 +19,50 @@ function randomString(params) {
|
|
|
18
19
|
}
|
|
19
20
|
for (var i = 0; i < currentLength; i++) {
|
|
20
21
|
var index = randomInt(range.length - 1);
|
|
21
|
-
|
|
22
|
+
if (range.length >= index || range.length <= index) {
|
|
23
|
+
result += range[index];
|
|
24
|
+
}
|
|
22
25
|
}
|
|
23
26
|
return result;
|
|
24
27
|
}
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
function toFullOption(options) {
|
|
29
|
-
if (typeof options === "string") {
|
|
28
|
+
function toContent(options) {
|
|
29
|
+
if (type_1.RandexTypeParser.isSet(options)) {
|
|
30
30
|
return {
|
|
31
31
|
set: options,
|
|
32
|
-
length: 1,
|
|
33
32
|
};
|
|
34
33
|
}
|
|
35
|
-
else if (
|
|
34
|
+
else if (type_1.RandexTypeParser.isPartArray(options)) {
|
|
36
35
|
if (options.length === 2) {
|
|
37
36
|
var set = options[0], rangeOrLength = options[1];
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return result;
|
|
37
|
+
return type_1.RandexTypeParser.isLength(rangeOrLength)
|
|
38
|
+
? {
|
|
39
|
+
set: set,
|
|
40
|
+
length: rangeOrLength,
|
|
41
|
+
}
|
|
42
|
+
: {
|
|
43
|
+
set: set,
|
|
44
|
+
range: rangeOrLength,
|
|
45
|
+
};
|
|
48
46
|
}
|
|
49
|
-
if (options.length === 3
|
|
47
|
+
else if (options.length === 3) {
|
|
48
|
+
var set = options[0], range = options[1], length_1 = options[2];
|
|
50
49
|
return {
|
|
51
|
-
set:
|
|
52
|
-
range:
|
|
53
|
-
length:
|
|
50
|
+
set: set,
|
|
51
|
+
range: range,
|
|
52
|
+
length: length_1,
|
|
54
53
|
};
|
|
55
54
|
}
|
|
56
|
-
return {
|
|
57
|
-
set: options,
|
|
58
|
-
length: 1,
|
|
59
|
-
};
|
|
60
55
|
}
|
|
61
56
|
return options;
|
|
62
57
|
}
|
|
63
|
-
function
|
|
58
|
+
function toRangeOptions(options) {
|
|
64
59
|
var fullRange = "";
|
|
65
60
|
var set = options.set, range = options.range, _a = options.length, length = _a === void 0 ? 1 : _a;
|
|
66
61
|
if (range) {
|
|
67
62
|
fullRange += range;
|
|
68
63
|
}
|
|
69
64
|
if (set) {
|
|
70
|
-
fullRange +=
|
|
65
|
+
fullRange += set_1.RandexSetUtil.toRange(set);
|
|
71
66
|
}
|
|
72
67
|
return {
|
|
73
68
|
range: fullRange,
|
|
@@ -82,8 +77,8 @@ function random() {
|
|
|
82
77
|
var result = "";
|
|
83
78
|
for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {
|
|
84
79
|
var option = options_1[_a];
|
|
85
|
-
var
|
|
86
|
-
var p =
|
|
80
|
+
var content = toContent(option);
|
|
81
|
+
var p = toRangeOptions(content);
|
|
87
82
|
result += randomString(p);
|
|
88
83
|
}
|
|
89
84
|
return result;
|
package/lib/basic/set.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare
|
|
3
|
-
export declare class RtSetUtil {
|
|
1
|
+
import { RandexSet, RandexLength } from "../interfaces";
|
|
2
|
+
export declare class RandexSetUtil {
|
|
4
3
|
private static toSingleRange;
|
|
5
|
-
static
|
|
4
|
+
private static toAlphabetCase;
|
|
5
|
+
private static toAlphabetRange;
|
|
6
|
+
static toRange(set: RandexSet): string;
|
|
7
|
+
static getLength(reservedChars: number, length: RandexLength | undefined, defaultLength: RandexLength): RandexLength;
|
|
6
8
|
}
|
package/lib/basic/set.js
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
var alphabetLower = "abcdefghijklmnopqrstuvwxyz";
|
|
3
|
+
exports.RandexSetUtil = void 0;
|
|
4
|
+
var type_1 = require("./type");
|
|
6
5
|
var hex = "0123456789ABCDEFabcdef";
|
|
7
6
|
var symbol = '[-!$%^&*()_+|~=`{}[]:";<>?,./]' + "'";
|
|
8
|
-
exports.alphabet = alphabetLower + alphabetUpper;
|
|
9
7
|
var number = "0123456789";
|
|
10
8
|
var binary = "01";
|
|
11
|
-
var
|
|
12
|
-
|
|
9
|
+
var englishLower = "abcdefghijklmnopqrstuvwxyz";
|
|
10
|
+
var englishUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
11
|
+
var frenchLower = "abcdefghijklmnopqrstuvwxyzàâæçèéêëîïôœùûü";
|
|
12
|
+
var frenchUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÆÇÈÉÊËÎÏÔŒÙÛÜ";
|
|
13
|
+
var spanishLower = "abcdefghijklmnopqrstuvwxyzñ";
|
|
14
|
+
var spanishUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÑ";
|
|
15
|
+
var russianLower = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
|
|
16
|
+
var russianUpper = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
|
|
17
|
+
var RandexSetUtil = /** @class */ (function () {
|
|
18
|
+
function RandexSetUtil() {
|
|
13
19
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
RandexSetUtil.toSingleRange = function (itemSet) {
|
|
21
|
+
if (Array.isArray(itemSet)) {
|
|
22
|
+
return RandexSetUtil.toAlphabetRange(itemSet);
|
|
23
|
+
}
|
|
24
|
+
else if (type_1.RandexTypeParser.inAlphabet(itemSet)) {
|
|
25
|
+
return RandexSetUtil.toAlphabetRange([itemSet, "default"]);
|
|
26
|
+
}
|
|
27
|
+
switch (itemSet) {
|
|
22
28
|
case "hex":
|
|
23
29
|
return hex;
|
|
24
30
|
case "symbol":
|
|
@@ -31,9 +37,63 @@ var RtSetUtil = /** @class */ (function () {
|
|
|
31
37
|
return "";
|
|
32
38
|
}
|
|
33
39
|
};
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
RandexSetUtil.toAlphabetCase = function (cas, lowerWord, upperWord) {
|
|
41
|
+
switch (cas) {
|
|
42
|
+
case "lower":
|
|
43
|
+
case "l":
|
|
44
|
+
return lowerWord;
|
|
45
|
+
case "upper":
|
|
46
|
+
case "u":
|
|
47
|
+
return upperWord;
|
|
48
|
+
default:
|
|
49
|
+
return lowerWord + upperWord;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
RandexSetUtil.toAlphabetRange = function (set) {
|
|
53
|
+
var alphabet = set[0], aCase = set[1];
|
|
54
|
+
switch (alphabet) {
|
|
55
|
+
case "english":
|
|
56
|
+
return RandexSetUtil.toAlphabetCase(aCase, englishLower, englishUpper);
|
|
57
|
+
case "french":
|
|
58
|
+
return RandexSetUtil.toAlphabetCase(aCase, frenchLower, frenchUpper);
|
|
59
|
+
case "spanish":
|
|
60
|
+
return RandexSetUtil.toAlphabetCase(aCase, spanishLower, spanishUpper);
|
|
61
|
+
// case "german":
|
|
62
|
+
// return RtSetUtil.toAlphabetCase(aCase, englishLower, englishUpper);
|
|
63
|
+
case "russian":
|
|
64
|
+
return RandexSetUtil.toAlphabetCase(aCase, russianLower, russianUpper);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
RandexSetUtil.toRange = function (set) {
|
|
68
|
+
var result = "";
|
|
69
|
+
if (type_1.RandexTypeParser.isSetSingle(set)) {
|
|
70
|
+
result += RandexSetUtil.toSingleRange(set);
|
|
71
|
+
}
|
|
72
|
+
else if (type_1.RandexTypeParser.isSet(set)) {
|
|
73
|
+
result += set.map(RandexSetUtil.toSingleRange).join("");
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
};
|
|
77
|
+
RandexSetUtil.getLength = function (reservedChars, length, defaultLength) {
|
|
78
|
+
var result = defaultLength;
|
|
79
|
+
if (typeof length === "number" && length > reservedChars) {
|
|
80
|
+
result = length - reservedChars;
|
|
81
|
+
}
|
|
82
|
+
else if (Array.isArray(length)) {
|
|
83
|
+
var min = length[0], max = length[1];
|
|
84
|
+
var dMin = min - reservedChars;
|
|
85
|
+
var dMax = max - reservedChars;
|
|
86
|
+
if (dMin >= 0 && dMax >= 0) {
|
|
87
|
+
if (dMin < dMax) {
|
|
88
|
+
return [dMin, dMax];
|
|
89
|
+
}
|
|
90
|
+
else if (dMin === dMax) {
|
|
91
|
+
return dMin;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
36
96
|
};
|
|
37
|
-
return
|
|
97
|
+
return RandexSetUtil;
|
|
38
98
|
}());
|
|
39
|
-
exports.
|
|
99
|
+
exports.RandexSetUtil = RandexSetUtil;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RandexCase, RandexAlphabet, RandexItemSet, RandexContentArrayOptions, RandexSet, RandexSingleSet, RandexLength } from "../interfaces";
|
|
2
|
+
export declare class RandexTypeParser {
|
|
3
|
+
private static inRange;
|
|
4
|
+
private static inLiteral;
|
|
5
|
+
static inCase(value: string): value is RandexCase;
|
|
6
|
+
static inAlphabet(value: string): value is RandexAlphabet;
|
|
7
|
+
static inSet(value: string): value is RandexSingleSet;
|
|
8
|
+
static isLength(value: any): value is RandexLength;
|
|
9
|
+
static isSetSingle(value: any): value is RandexItemSet;
|
|
10
|
+
static isSet(value: any): value is RandexSet;
|
|
11
|
+
static isPartArray(value: any): value is RandexContentArrayOptions;
|
|
12
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RandexTypeParser = void 0;
|
|
4
|
+
var RandexTypeParser = /** @class */ (function () {
|
|
5
|
+
function RandexTypeParser() {
|
|
6
|
+
}
|
|
7
|
+
RandexTypeParser.inRange = function (value, range) {
|
|
8
|
+
var min = range[0], max = range[1];
|
|
9
|
+
return value >= min && value <= max;
|
|
10
|
+
};
|
|
11
|
+
RandexTypeParser.inLiteral = function (value) {
|
|
12
|
+
var expects = [];
|
|
13
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
14
|
+
expects[_i - 1] = arguments[_i];
|
|
15
|
+
}
|
|
16
|
+
return !!expects.find(function (x) { return x === value; });
|
|
17
|
+
};
|
|
18
|
+
RandexTypeParser.inCase = function (value) {
|
|
19
|
+
return RandexTypeParser.inLiteral(value, "default", "lower", "upper", "l", "u");
|
|
20
|
+
};
|
|
21
|
+
RandexTypeParser.inAlphabet = function (value) {
|
|
22
|
+
return RandexTypeParser.inLiteral(value, "english", "french", "spanish", // "german",
|
|
23
|
+
"russian");
|
|
24
|
+
};
|
|
25
|
+
RandexTypeParser.inSet = function (value) {
|
|
26
|
+
return RandexTypeParser.inAlphabet(value) || RandexTypeParser.inLiteral(value, "hex", "symbol", "number", "binary");
|
|
27
|
+
};
|
|
28
|
+
// RandomLength
|
|
29
|
+
RandexTypeParser.isLength = function (value) {
|
|
30
|
+
if (typeof value === "number") {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
else if (Array.isArray(value) && value.length === 2) {
|
|
34
|
+
return typeof value[0] === "number" && typeof value[1] === "number";
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
};
|
|
38
|
+
// RandomItemSet
|
|
39
|
+
RandexTypeParser.isSetSingle = function (value) {
|
|
40
|
+
if (typeof value === "string") {
|
|
41
|
+
return RandexTypeParser.inSet(value);
|
|
42
|
+
}
|
|
43
|
+
else if (Array.isArray(value) && value.length === 2) {
|
|
44
|
+
var _a = value, alphabet = _a[0], aCase = _a[1];
|
|
45
|
+
if (typeof alphabet === "string" && typeof aCase === "string") {
|
|
46
|
+
if (RandexTypeParser.inAlphabet(alphabet) && RandexTypeParser.inCase(aCase)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
};
|
|
53
|
+
RandexTypeParser.isSet = function (value) {
|
|
54
|
+
if (RandexTypeParser.isSetSingle(value)) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
else if (Array.isArray(value)) {
|
|
58
|
+
var sets = value.filter(function (x) { return RandexTypeParser.isSetSingle(x); });
|
|
59
|
+
return sets.length === value.length;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
};
|
|
63
|
+
RandexTypeParser.isPartArray = function (value) {
|
|
64
|
+
if (Array.isArray(value) && RandexTypeParser.inRange(value.length, [2, 3])) {
|
|
65
|
+
if (value.length === 2) {
|
|
66
|
+
var set = value[0], rangeOrLength = value[1];
|
|
67
|
+
return RandexTypeParser.isSet(set) && (RandexTypeParser.isLength(rangeOrLength) || typeof rangeOrLength === "string");
|
|
68
|
+
}
|
|
69
|
+
else if (value.length === 3) {
|
|
70
|
+
var set = value[0], range = value[1], length_1 = value[2];
|
|
71
|
+
return RandexTypeParser.isSet(set) && typeof range === "string" && RandexTypeParser.isLength(length_1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
};
|
|
76
|
+
return RandexTypeParser;
|
|
77
|
+
}());
|
|
78
|
+
exports.RandexTypeParser = RandexTypeParser;
|
package/lib/custom/email.js
CHANGED
|
@@ -3,10 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.randomEmail = void 0;
|
|
4
4
|
var basic_1 = require("../basic");
|
|
5
5
|
function randomEmail() {
|
|
6
|
-
return ((0, basic_1.random)("
|
|
6
|
+
return ((0, basic_1.random)(["english", "l"], [[["english", "l"], "number"], 10], ["english", "l"]) +
|
|
7
7
|
"@" +
|
|
8
|
-
(0, basic_1.random)("
|
|
8
|
+
(0, basic_1.random)(["english", "l"], [["english", "l"], "-", [0, 5]], ["english", "l"]) +
|
|
9
9
|
"." +
|
|
10
|
-
(0, basic_1.random)([
|
|
10
|
+
(0, basic_1.random)([
|
|
11
|
+
["english", "l"],
|
|
12
|
+
[2, 4],
|
|
13
|
+
]));
|
|
11
14
|
}
|
|
12
15
|
exports.randomEmail = randomEmail;
|
package/lib/custom/filename.js
CHANGED
|
@@ -4,6 +4,14 @@ exports.randomFileName = void 0;
|
|
|
4
4
|
var basic_1 = require("../basic");
|
|
5
5
|
function randomFileName(options) {
|
|
6
6
|
var extension = (options || {}).extension;
|
|
7
|
-
return (0, basic_1.random)([["
|
|
7
|
+
return ((0, basic_1.random)([["english", "number"], "_.", [5, 10]]) +
|
|
8
|
+
(0, basic_1.random)(["english", "number"]) +
|
|
9
|
+
"." +
|
|
10
|
+
(extension
|
|
11
|
+
? extension
|
|
12
|
+
: (0, basic_1.random)([
|
|
13
|
+
["english", "l"],
|
|
14
|
+
[2, 5],
|
|
15
|
+
])));
|
|
8
16
|
}
|
|
9
17
|
exports.randomFileName = randomFileName;
|
package/lib/custom/name.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface
|
|
3
|
-
length
|
|
1
|
+
import { RandexAlphabet, RandexLength } from "../interfaces";
|
|
2
|
+
export interface RandexNameOptions {
|
|
3
|
+
length?: RandexLength;
|
|
4
|
+
alphabet?: RandexAlphabet;
|
|
4
5
|
}
|
|
5
|
-
export
|
|
6
|
-
|
|
6
|
+
export interface RandexFullNameOptions {
|
|
7
|
+
firstLength?: RandexLength;
|
|
8
|
+
secondLength?: RandexLength;
|
|
9
|
+
alphabet?: RandexAlphabet;
|
|
10
|
+
}
|
|
11
|
+
export declare function randomName(options?: RandexNameOptions): string;
|
|
12
|
+
export declare function randomFullName(options?: RandexFullNameOptions): string;
|
package/lib/custom/name.js
CHANGED
|
@@ -2,33 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.randomFullName = exports.randomName = void 0;
|
|
4
4
|
var basic_1 = require("../basic");
|
|
5
|
-
|
|
6
|
-
var result = defaultLength;
|
|
7
|
-
if (typeof length === "number" && length > reservedChars) {
|
|
8
|
-
result = length - reservedChars;
|
|
9
|
-
}
|
|
10
|
-
else if (Array.isArray(length)) {
|
|
11
|
-
var min = length[0], max = length[1];
|
|
12
|
-
var dMin = min - reservedChars;
|
|
13
|
-
var dMax = max - reservedChars;
|
|
14
|
-
if (dMin >= 0 && dMax >= 0) {
|
|
15
|
-
if (dMin < dMax) {
|
|
16
|
-
return [dMin, dMax];
|
|
17
|
-
}
|
|
18
|
-
else if (dMin === dMax) {
|
|
19
|
-
return dMin;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
5
|
+
var set_1 = require("../basic/set");
|
|
25
6
|
function randomName(options) {
|
|
26
|
-
var
|
|
27
|
-
var currentLength = getLength(1, length, [1, 9]);
|
|
28
|
-
return (0, basic_1.random)("
|
|
7
|
+
var _a = options || {}, length = _a.length, _b = _a.alphabet, alphabet = _b === void 0 ? "english" : _b;
|
|
8
|
+
var currentLength = set_1.RandexSetUtil.getLength(1, length, [1, 9]);
|
|
9
|
+
return (0, basic_1.random)([alphabet, "u"], [[alphabet, "l"], currentLength]);
|
|
29
10
|
}
|
|
30
11
|
exports.randomName = randomName;
|
|
31
|
-
function randomFullName() {
|
|
32
|
-
|
|
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 });
|
|
33
15
|
}
|
|
34
16
|
exports.randomFullName = randomFullName;
|
package/lib/custom/username.d.ts
CHANGED
package/lib/custom/username.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.randomUsername = void 0;
|
|
4
4
|
var basic_1 = require("../basic");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
]);
|
|
5
|
+
var set_1 = require("../basic/set");
|
|
6
|
+
function randomUsername(options) {
|
|
7
|
+
var length = (options || {}).length;
|
|
8
|
+
var currentLength = set_1.RandexSetUtil.getLength(1, length, [6, 10]);
|
|
9
|
+
return (0, basic_1.random)(["english", "l"], [[["english", "l"], "number"], currentLength]);
|
|
10
10
|
}
|
|
11
11
|
exports.randomUsername = randomUsername;
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export type RandexCase = "default" | "lower" | "upper" | "l" | "u";
|
|
2
|
+
export type RandexAlphabet = "english" | "french" | "spanish" | "russian";
|
|
3
|
+
export type RandexSingleSet = RandexAlphabet | "hex" | "symbol" | "number" | "binary";
|
|
4
|
+
export type RandexAlphabetCase = [RandexAlphabet, RandexCase];
|
|
5
|
+
export type RandexItemSet = RandexSingleSet | RandexAlphabetCase;
|
|
6
|
+
export type RandexSet = RandexItemSet | RandexItemSet[];
|
|
7
|
+
export type RandexLength = number | [number, number];
|
|
8
|
+
interface RandexItemBasicOptions {
|
|
9
|
+
set?: RandexSet;
|
|
6
10
|
range?: string;
|
|
7
|
-
length?:
|
|
11
|
+
length?: RandexLength;
|
|
8
12
|
}
|
|
9
|
-
export interface
|
|
10
|
-
set:
|
|
13
|
+
export interface RandexContentSetOptions extends Omit<RandexItemBasicOptions, "set"> {
|
|
14
|
+
set: RandexSet;
|
|
11
15
|
}
|
|
12
|
-
export interface
|
|
16
|
+
export interface RandexContentRangeOptions extends Omit<RandexItemBasicOptions, "range"> {
|
|
13
17
|
range: string;
|
|
14
18
|
}
|
|
15
|
-
export type
|
|
16
|
-
export type
|
|
19
|
+
export type RandexContentArrayOptions = [RandexSet, string | RandexLength] | [RandexSet, string, RandexLength];
|
|
20
|
+
export type RandexContentOptions = RandexContentSetOptions | RandexContentRangeOptions | RandexContentArrayOptions | RandexSet;
|
|
17
21
|
export {};
|
|
@@ -5,8 +5,8 @@ var test_util_1 = require("./test-util");
|
|
|
5
5
|
describe("randomFileName", function () {
|
|
6
6
|
it("simple", function () {
|
|
7
7
|
for (var i = 0; i < 100; i++) {
|
|
8
|
-
var
|
|
9
|
-
expect(test_util_1.TestUtil.isFileNameValid(
|
|
8
|
+
var value = (0, filename_1.randomFileName)();
|
|
9
|
+
expect(test_util_1.TestUtil.isFileNameValid(value)).toBeTruthy();
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var basic_1 = require("../basic");
|
|
4
|
+
var custom_1 = require("../custom");
|
|
5
|
+
describe("markdown", function () {
|
|
6
|
+
it("random", function () {
|
|
7
|
+
var value = (0, basic_1.random)({
|
|
8
|
+
set: "english",
|
|
9
|
+
length: 3,
|
|
10
|
+
});
|
|
11
|
+
expect(value.length).toBe(3);
|
|
12
|
+
value = (0, basic_1.random)({
|
|
13
|
+
set: ["english", "lower"],
|
|
14
|
+
length: 3,
|
|
15
|
+
});
|
|
16
|
+
expect(value.length).toBe(3);
|
|
17
|
+
value = (0, basic_1.random)({
|
|
18
|
+
set: "english",
|
|
19
|
+
length: [1, 3],
|
|
20
|
+
});
|
|
21
|
+
expect(value.length).toBeLessThanOrEqual(3);
|
|
22
|
+
value = (0, basic_1.random)({
|
|
23
|
+
set: "number",
|
|
24
|
+
length: 3,
|
|
25
|
+
});
|
|
26
|
+
expect(value.length).toBe(3);
|
|
27
|
+
value = (0, basic_1.random)({
|
|
28
|
+
range: "abc123",
|
|
29
|
+
length: 3,
|
|
30
|
+
});
|
|
31
|
+
expect(value.length).toBe(3);
|
|
32
|
+
value = (0, basic_1.random)({
|
|
33
|
+
set: ["english", "number"],
|
|
34
|
+
length: 3,
|
|
35
|
+
});
|
|
36
|
+
expect(value.length).toBe(3);
|
|
37
|
+
value = (0, basic_1.random)({
|
|
38
|
+
set: "english",
|
|
39
|
+
length: 2,
|
|
40
|
+
}, {
|
|
41
|
+
set: ["english", "number"],
|
|
42
|
+
length: 2,
|
|
43
|
+
});
|
|
44
|
+
expect(value.length).toBe(4);
|
|
45
|
+
});
|
|
46
|
+
it("randomFileName", function () {
|
|
47
|
+
var value = (0, custom_1.randomFileName)({
|
|
48
|
+
extension: "txt",
|
|
49
|
+
});
|
|
50
|
+
expect(value).toBeTruthy();
|
|
51
|
+
});
|
|
52
|
+
it("randomUsername", function () {
|
|
53
|
+
var value = (0, custom_1.randomUsername)();
|
|
54
|
+
expect(value).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
it("randomEmail", function () {
|
|
57
|
+
var value = (0, custom_1.randomEmail)();
|
|
58
|
+
expect(value).toBeTruthy();
|
|
59
|
+
});
|
|
60
|
+
it("randomName", function () {
|
|
61
|
+
var value = (0, custom_1.randomName)();
|
|
62
|
+
expect(value).toBeTruthy();
|
|
63
|
+
value = (0, custom_1.randomName)({ alphabet: "french" });
|
|
64
|
+
expect(value).toBeTruthy();
|
|
65
|
+
value = (0, custom_1.randomName)({ length: 5 });
|
|
66
|
+
expect(value).toBeTruthy();
|
|
67
|
+
value = (0, custom_1.randomName)({ length: [2, 5] });
|
|
68
|
+
expect(value).toBeTruthy();
|
|
69
|
+
});
|
|
70
|
+
it("randomFullName", function () {
|
|
71
|
+
var value = (0, custom_1.randomFullName)();
|
|
72
|
+
expect(value).toBeTruthy();
|
|
73
|
+
});
|
|
74
|
+
});
|
package/lib/test/params.test.js
CHANGED
|
@@ -4,21 +4,21 @@ var basic_1 = require("../basic");
|
|
|
4
4
|
var test_util_1 = require("./test-util");
|
|
5
5
|
describe("random params", function () {
|
|
6
6
|
it("array 1", function () {
|
|
7
|
-
var set = "
|
|
7
|
+
var set = "english";
|
|
8
8
|
var result1 = (0, basic_1.random)({ set: set });
|
|
9
9
|
var result2 = (0, basic_1.random)(set);
|
|
10
10
|
test_util_1.TestUtil.testInSet(result1, set);
|
|
11
11
|
test_util_1.TestUtil.testInSet(result2, set);
|
|
12
12
|
});
|
|
13
13
|
it("single: array", function () {
|
|
14
|
-
var set = ["number", "
|
|
14
|
+
var set = ["number", "english"];
|
|
15
15
|
var result1 = (0, basic_1.random)({ set: set });
|
|
16
16
|
var result2 = (0, basic_1.random)(set);
|
|
17
17
|
test_util_1.TestUtil.testInSet(result1, set);
|
|
18
18
|
test_util_1.TestUtil.testInSet(result2, set);
|
|
19
19
|
});
|
|
20
20
|
it("single: array, length", function () {
|
|
21
|
-
var set = ["number", "
|
|
21
|
+
var set = ["number", "english"];
|
|
22
22
|
var length = 3;
|
|
23
23
|
var result1 = (0, basic_1.random)({ set: set, length: length });
|
|
24
24
|
var result2 = (0, basic_1.random)([set, length]);
|
|
@@ -26,7 +26,7 @@ describe("random params", function () {
|
|
|
26
26
|
test_util_1.TestUtil.testInSet(result2, set, length);
|
|
27
27
|
});
|
|
28
28
|
it("single: array, length as array", function () {
|
|
29
|
-
var set = ["number", "
|
|
29
|
+
var set = ["number", "english"];
|
|
30
30
|
var length = [1, 4];
|
|
31
31
|
var result1 = (0, basic_1.random)({ set: set, length: length });
|
|
32
32
|
var result2 = (0, basic_1.random)([set, length]);
|
|
@@ -42,7 +42,7 @@ describe("random params", function () {
|
|
|
42
42
|
test_util_1.TestUtil.testInBoth(result2, set, range);
|
|
43
43
|
});
|
|
44
44
|
it("array 2 (length)", function () {
|
|
45
|
-
var set = "
|
|
45
|
+
var set = "english";
|
|
46
46
|
var length = 3;
|
|
47
47
|
var result1 = (0, basic_1.random)({ set: set, length: length });
|
|
48
48
|
var result2 = (0, basic_1.random)([set, length]);
|
package/lib/test/random.test.js
CHANGED
|
@@ -14,9 +14,9 @@ function inRange(range, length) {
|
|
|
14
14
|
}
|
|
15
15
|
describe("random", function () {
|
|
16
16
|
it("set", function () {
|
|
17
|
-
inSet("
|
|
18
|
-
inSet("
|
|
19
|
-
inSet("
|
|
17
|
+
inSet("english", 3);
|
|
18
|
+
inSet(["english", "l"], 3);
|
|
19
|
+
inSet(["english", "u"], 3);
|
|
20
20
|
inSet("hex", 3);
|
|
21
21
|
inSet("symbol", 3);
|
|
22
22
|
inSet("number", 3);
|
|
@@ -27,9 +27,31 @@ describe("random", function () {
|
|
|
27
27
|
inRange("1234abc!@#", 3);
|
|
28
28
|
});
|
|
29
29
|
it("length: alphabet", function () {
|
|
30
|
-
inSet("
|
|
31
|
-
inSet("
|
|
32
|
-
inSet("
|
|
33
|
-
inSet("
|
|
30
|
+
inSet("english", 0);
|
|
31
|
+
inSet("english", [0, 0]);
|
|
32
|
+
inSet("english", [1, 3]);
|
|
33
|
+
inSet("english", [0, 1]);
|
|
34
|
+
});
|
|
35
|
+
it("alphabet: upper", function () {
|
|
36
|
+
for (var i = 0; i < 100; i++) {
|
|
37
|
+
var value = (0, basic_1.random)(["english", "u"]);
|
|
38
|
+
expect(test_util_1.TestUtil.isUpperCharValid(value, 1)).toBeTruthy();
|
|
39
|
+
value = (0, basic_1.random)([
|
|
40
|
+
["english", "u"],
|
|
41
|
+
[1, 3],
|
|
42
|
+
]);
|
|
43
|
+
expect(test_util_1.TestUtil.isUpperCharValid(value, [1, 3])).toBeTruthy();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
it("alphabet: lower", function () {
|
|
47
|
+
for (var i = 0; i < 100; i++) {
|
|
48
|
+
var value = (0, basic_1.random)(["english", "l"]);
|
|
49
|
+
expect(test_util_1.TestUtil.isLowerCharValid(value, 1)).toBeTruthy();
|
|
50
|
+
value = (0, basic_1.random)([
|
|
51
|
+
["english", "lower"],
|
|
52
|
+
[1, 3],
|
|
53
|
+
]);
|
|
54
|
+
expect(test_util_1.TestUtil.isLowerCharValid(value, [1, 3])).toBeTruthy();
|
|
55
|
+
}
|
|
34
56
|
});
|
|
35
57
|
});
|
package/lib/test/test-util.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RandexLength, RandexSet } from "../interfaces";
|
|
2
2
|
export declare class TestUtil {
|
|
3
|
-
static testIn(value: string, length:
|
|
4
|
-
static testInSet(value: string, set:
|
|
5
|
-
static testInRange(value: string, range: string, length?:
|
|
6
|
-
static testInBoth(value: string, set:
|
|
3
|
+
static testIn(value: string, length: RandexLength | undefined, action: () => void): void;
|
|
4
|
+
static testInSet(value: string, set: RandexSet, length?: RandexLength): void;
|
|
5
|
+
static testInRange(value: string, range: string, length?: RandexLength): void;
|
|
6
|
+
static testInBoth(value: string, set: RandexSet, range: string, length?: RandexLength): void;
|
|
7
7
|
static inRange(value: string, range: string): boolean;
|
|
8
|
-
static inSet(value: string, set:
|
|
9
|
-
static inBoth(value: string, set:
|
|
8
|
+
static inSet(value: string, set: RandexSet): boolean;
|
|
9
|
+
static inBoth(value: string, set: RandexSet, range: string): boolean;
|
|
10
10
|
static isEmailValid(email: string): RegExpMatchArray | null;
|
|
11
11
|
static isUsernameValid(email: string): RegExpMatchArray | null;
|
|
12
12
|
static isNameValid(email: string): RegExpMatchArray | null;
|
|
13
|
+
static isUpperCharValid(value: string, length?: RandexLength): RegExpMatchArray | null;
|
|
14
|
+
static isLowerCharValid(value: string, length?: RandexLength): RegExpMatchArray | null;
|
|
13
15
|
static isFullNameValid(email: string): RegExpMatchArray | null;
|
|
14
16
|
static isFileNameValid(email: string): RegExpMatchArray | null;
|
|
15
17
|
static inNumberRange(value: number, range: [number, number]): boolean;
|
package/lib/test/test-util.js
CHANGED
|
@@ -46,11 +46,11 @@ var TestUtil = /** @class */ (function () {
|
|
|
46
46
|
return value.length > 0;
|
|
47
47
|
};
|
|
48
48
|
TestUtil.inSet = function (value, set) {
|
|
49
|
-
var range = set_1.
|
|
49
|
+
var range = set_1.RandexSetUtil.toRange(set);
|
|
50
50
|
return TestUtil.inRange(value, range);
|
|
51
51
|
};
|
|
52
52
|
TestUtil.inBoth = function (value, set, range) {
|
|
53
|
-
var fullRange = set_1.
|
|
53
|
+
var fullRange = set_1.RandexSetUtil.toRange(set) + range;
|
|
54
54
|
return TestUtil.inRange(value, fullRange);
|
|
55
55
|
};
|
|
56
56
|
TestUtil.isEmailValid = function (email) {
|
|
@@ -66,6 +66,16 @@ var TestUtil = /** @class */ (function () {
|
|
|
66
66
|
TestUtil.isNameValid = function (email) {
|
|
67
67
|
return String(email).match(/^[A-Z][a-z]{1,}$/);
|
|
68
68
|
};
|
|
69
|
+
TestUtil.isUpperCharValid = function (value, length) {
|
|
70
|
+
if (length === void 0) { length = 1; }
|
|
71
|
+
var l = Array.isArray(length) ? "".concat(length[0], ",").concat(length[1]) : length;
|
|
72
|
+
return String(value).match(new RegExp("^[A-Z]{".concat(l, "}$")));
|
|
73
|
+
};
|
|
74
|
+
TestUtil.isLowerCharValid = function (value, length) {
|
|
75
|
+
if (length === void 0) { length = 1; }
|
|
76
|
+
var l = Array.isArray(length) ? "".concat(length[0], ",").concat(length[1]) : length;
|
|
77
|
+
return String(value).match(new RegExp("^[a-z]{".concat(l, "}$")));
|
|
78
|
+
};
|
|
69
79
|
TestUtil.isFullNameValid = function (email) {
|
|
70
80
|
return String(email).match(/^[A-Z][a-z]{1,}[ ][A-Z][a-z]{1,}$/);
|
|
71
81
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var type_1 = require("../basic/type");
|
|
4
|
+
function isLength(value, expectedResult) {
|
|
5
|
+
if (expectedResult === void 0) { expectedResult = true; }
|
|
6
|
+
var result = type_1.RandexTypeParser.isLength(value);
|
|
7
|
+
expect(expectedResult).toBe(result);
|
|
8
|
+
}
|
|
9
|
+
function isSetSingle(value, expectedResult) {
|
|
10
|
+
if (expectedResult === void 0) { expectedResult = true; }
|
|
11
|
+
var result = type_1.RandexTypeParser.isSetSingle(value);
|
|
12
|
+
expect(expectedResult).toBe(result);
|
|
13
|
+
}
|
|
14
|
+
function isSet(value, expectedResult) {
|
|
15
|
+
if (expectedResult === void 0) { expectedResult = true; }
|
|
16
|
+
var result = type_1.RandexTypeParser.isSet(value);
|
|
17
|
+
expect(expectedResult).toBe(result);
|
|
18
|
+
}
|
|
19
|
+
describe("type", function () {
|
|
20
|
+
it("isLength", function () {
|
|
21
|
+
// true
|
|
22
|
+
isLength(1);
|
|
23
|
+
isLength([1, 2]);
|
|
24
|
+
// false
|
|
25
|
+
isLength([1, 2, 3], false);
|
|
26
|
+
isLength("hi", false);
|
|
27
|
+
isLength(null, false);
|
|
28
|
+
});
|
|
29
|
+
it("isSetSingle", function () {
|
|
30
|
+
// true
|
|
31
|
+
isSetSingle("english");
|
|
32
|
+
isSetSingle("hex");
|
|
33
|
+
isSetSingle(["english", "lower"]);
|
|
34
|
+
// false
|
|
35
|
+
isSetSingle("bric", false);
|
|
36
|
+
isSetSingle("hexeron", false);
|
|
37
|
+
isSetSingle(["bric", "lower"], false);
|
|
38
|
+
isSetSingle(1, false);
|
|
39
|
+
isSetSingle(null, false);
|
|
40
|
+
isSetSingle(["lower", "english"], false);
|
|
41
|
+
});
|
|
42
|
+
it("RandomSet", function () {
|
|
43
|
+
// true single
|
|
44
|
+
isSet("english");
|
|
45
|
+
isSet("hex");
|
|
46
|
+
isSet(["english", "lower"]);
|
|
47
|
+
// true array
|
|
48
|
+
isSet(["english", "hex", ["english", "u"]]);
|
|
49
|
+
// false single
|
|
50
|
+
isSet("bric", false);
|
|
51
|
+
isSet("hexeron", false);
|
|
52
|
+
isSet(["bric", "lower"], false);
|
|
53
|
+
isSet(1, false);
|
|
54
|
+
isSet(null, false);
|
|
55
|
+
// false array
|
|
56
|
+
isSet(["hex", 2], false);
|
|
57
|
+
isSet(["english", "hex", ["u", "english"]], false);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -9,4 +9,12 @@ describe("randomEmail", function () {
|
|
|
9
9
|
expect(test_util_1.TestUtil.isUsernameValid(value)).toBeTruthy();
|
|
10
10
|
}
|
|
11
11
|
});
|
|
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();
|
|
19
|
+
});
|
|
12
20
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "randex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -26,15 +26,12 @@
|
|
|
26
26
|
"ts-jest": "^24.1.0",
|
|
27
27
|
"typescript": "^4.2.4"
|
|
28
28
|
},
|
|
29
|
-
"dependencies": {
|
|
30
|
-
"reflect-metadata": "^0.2.1"
|
|
31
|
-
},
|
|
32
29
|
"keywords": [
|
|
33
30
|
"random",
|
|
34
31
|
"random filename",
|
|
35
32
|
"random email",
|
|
36
33
|
"random username",
|
|
37
|
-
"random
|
|
34
|
+
"random name",
|
|
38
35
|
"random string"
|
|
39
36
|
]
|
|
40
37
|
}
|