@coderzz/mocker-data-generator 3.0.5 → 3.0.6
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/CHANGELOG.md +41 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/build/main/array-includes.d.ts +0 -0
- package/build/main/array-includes.js +45 -45
- package/build/main/index.d.ts +7 -7
- package/build/main/index.js +12 -12
- package/build/main/index.spec.d.ts +1 -1
- package/build/main/index.spec.js +16 -16
- package/build/main/lib/Generator.d.ts +61 -61
- package/build/main/lib/Generator.js +134 -134
- package/build/main/lib/Mocker.d.ts +22 -22
- package/build/main/lib/Mocker.js +76 -76
- package/build/main/lib/Schema.d.ts +9 -9
- package/build/main/lib/Schema.js +210 -210
- package/build/main/lib/types.d.ts +8 -8
- package/build/main/lib/types.js +2 -2
- package/build/main/lib/utils.d.ts +10 -10
- package/build/main/lib/utils.js +222 -222
- package/build/main/tests/Generator.db.spec.d.ts +1 -1
- package/build/main/tests/Generator.db.spec.js +33 -33
- package/build/main/tests/Generator.eval.spec.d.ts +1 -1
- package/build/main/tests/Generator.eval.spec.js +21 -21
- package/build/main/tests/Generator.function.spec.d.ts +1 -1
- package/build/main/tests/Generator.function.spec.js +48 -48
- package/build/main/tests/Generator.generator.spec.d.ts +1 -1
- package/build/main/tests/Generator.generator.spec.js +187 -187
- package/build/main/tests/Generator.hasMany.spec.d.ts +1 -1
- package/build/main/tests/Generator.hasMany.spec.js +115 -115
- package/build/main/tests/Generator.hasOne.spec.d.ts +1 -1
- package/build/main/tests/Generator.hasOne.spec.js +146 -146
- package/build/main/tests/Generator.incrementalId.spec.d.ts +1 -1
- package/build/main/tests/Generator.incrementalId.spec.js +26 -26
- package/build/main/tests/Generator.self.spec.d.ts +1 -1
- package/build/main/tests/Generator.self.spec.js +24 -24
- package/build/main/tests/Generator.static.spec.d.ts +1 -1
- package/build/main/tests/Generator.static.spec.js +15 -15
- package/build/main/tests/Generator.values.spec.d.ts +1 -1
- package/build/main/tests/Generator.values.spec.js +16 -16
- package/build/main/tests/Mocker.build.spec.d.ts +1 -1
- package/build/main/tests/Mocker.build.spec.js +196 -196
- package/build/main/tests/Mocker.reset.spec.d.ts +1 -1
- package/build/main/tests/Mocker.reset.spec.js +17 -17
- package/build/main/tests/Mocker.restart.spec.d.ts +1 -1
- package/build/main/tests/Mocker.restart.spec.js +24 -24
- package/build/main/tests/Mocker.schema.spec.d.ts +1 -1
- package/build/main/tests/Mocker.schema.spec.js +18 -18
- package/build/main/tests/Mocker.seed.spec.d.ts +1 -1
- package/build/main/tests/Mocker.seed.spec.js +42 -42
- package/build/main/tests/Schema.Array.spec.d.ts +1 -1
- package/build/main/tests/Schema.Array.spec.js +332 -332
- package/build/main/tests/Schema.BuildSingle.spec.d.ts +1 -1
- package/build/main/tests/Schema.BuildSingle.spec.js +13 -13
- package/build/main/tests/mocker.spec.d.ts +1 -1
- package/build/main/tests/mocker.spec.js +405 -405
- package/build/module/array-includes.js +45 -45
- package/build/module/index.js +7 -7
- package/build/module/lib/Generator.js +131 -131
- package/build/module/lib/Mocker.js +73 -73
- package/build/module/lib/Schema.js +207 -207
- package/build/module/lib/types.js +1 -1
- package/build/module/lib/utils.js +209 -209
- package/package.json +1 -1
@@ -1,209 +1,209 @@
|
|
1
|
-
import { __generator, __spreadArray, __values } from "tslib";
|
2
|
-
export var isArray = function (arg) {
|
3
|
-
return Object.prototype.toString.call(arg) === '[object Array]';
|
4
|
-
};
|
5
|
-
export var isObject = function (arg) {
|
6
|
-
return Object.prototype.toString.call(arg) === '[object Object]';
|
7
|
-
};
|
8
|
-
export var evalWithContextData = function (key, object, db, generators) {
|
9
|
-
// In this (way, we can pass object and use inside the eval string
|
10
|
-
return eval(key);
|
11
|
-
};
|
12
|
-
export var fieldArrayCalcLength = function (config, fixedArrayLength, schema) {
|
13
|
-
var length;
|
14
|
-
if (typeof config.length === 'function') {
|
15
|
-
length = config.length.call(schema);
|
16
|
-
}
|
17
|
-
else if (config.fixedLength) {
|
18
|
-
length = config.length - fixedArrayLength;
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
length = Math.floor(Math.random() * config.length + 1);
|
22
|
-
}
|
23
|
-
return length;
|
24
|
-
};
|
25
|
-
export var iamLastChild = function (parent, k) {
|
26
|
-
if (isArray(parent[k])) {
|
27
|
-
var last = false;
|
28
|
-
if (parent[k].length === 0) {
|
29
|
-
return true;
|
30
|
-
}
|
31
|
-
for (var i = 0; i < parent[k].length; i++) {
|
32
|
-
var el = parent[k][i];
|
33
|
-
last = !isObject(el);
|
34
|
-
if (last) {
|
35
|
-
break;
|
36
|
-
}
|
37
|
-
}
|
38
|
-
return last;
|
39
|
-
}
|
40
|
-
else {
|
41
|
-
return !isObject(parent[k]);
|
42
|
-
}
|
43
|
-
};
|
44
|
-
export var iamLastParent = function (obj) {
|
45
|
-
var last = false;
|
46
|
-
if (isObject(obj)) {
|
47
|
-
var ks = Object.keys(obj);
|
48
|
-
for (var i = 0; i < ks.length; i++) {
|
49
|
-
var k = ks[i];
|
50
|
-
last = iamLastChild(obj, k);
|
51
|
-
if (!last) {
|
52
|
-
break;
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
else {
|
57
|
-
last = true;
|
58
|
-
}
|
59
|
-
return last;
|
60
|
-
};
|
61
|
-
export var isConditional = function (str) {
|
62
|
-
var arr = str.split(',');
|
63
|
-
return arr.length > 1;
|
64
|
-
};
|
65
|
-
export var cleanVirtuals = function (paths, object, options) {
|
66
|
-
// clean specific paths
|
67
|
-
var objectCleaner = function (path, obj, options) {
|
68
|
-
var lvls, dest, i, field;
|
69
|
-
return __generator(this, function (_a) {
|
70
|
-
switch (_a.label) {
|
71
|
-
case 0:
|
72
|
-
lvls = path.split(options.symbol);
|
73
|
-
dest = obj;
|
74
|
-
if (!lvls || lvls.length === 0) {
|
75
|
-
return [2 /*return*/];
|
76
|
-
}
|
77
|
-
if (!obj) {
|
78
|
-
return [2 /*return*/];
|
79
|
-
}
|
80
|
-
for (i = 0; i < lvls.length; i++) {
|
81
|
-
field = lvls[i];
|
82
|
-
if (i === lvls.length - 1 && dest[field]) {
|
83
|
-
if (Object.getOwnPropertyNames(dest[field]).length < 1) {
|
84
|
-
delete dest[field];
|
85
|
-
break;
|
86
|
-
}
|
87
|
-
}
|
88
|
-
else {
|
89
|
-
dest = dest[field];
|
90
|
-
}
|
91
|
-
}
|
92
|
-
lvls.pop();
|
93
|
-
if (!(lvls.length > 0)) return [3 /*break*/, 2];
|
94
|
-
return [5 /*yield**/, __values(objectCleaner(lvls.join(options.symbol), obj, options))];
|
95
|
-
case 1:
|
96
|
-
_a.sent();
|
97
|
-
return [3 /*break*/, 3];
|
98
|
-
case 2: return [2 /*return*/];
|
99
|
-
case 3: return [2 /*return*/];
|
100
|
-
}
|
101
|
-
});
|
102
|
-
};
|
103
|
-
var forEachPath = function (path, object, options) {
|
104
|
-
var lvls, dest, i, field;
|
105
|
-
return __generator(this, function (_a) {
|
106
|
-
switch (_a.label) {
|
107
|
-
case 0:
|
108
|
-
lvls = path.split(options.symbol);
|
109
|
-
dest = object;
|
110
|
-
i = 0;
|
111
|
-
_a.label = 1;
|
112
|
-
case 1:
|
113
|
-
if (!(i < lvls.length)) return [3 /*break*/, 5];
|
114
|
-
field = lvls[i];
|
115
|
-
if (!(i === lvls.length - 1)) return [3 /*break*/, 3];
|
116
|
-
// delete specific path
|
117
|
-
delete dest[field];
|
118
|
-
// clean specific path
|
119
|
-
return [5 /*yield**/, __values(objectCleaner(path, object, options))];
|
120
|
-
case 2:
|
121
|
-
// clean specific path
|
122
|
-
_a.sent();
|
123
|
-
return [3 /*break*/, 4];
|
124
|
-
case 3:
|
125
|
-
dest = dest[field];
|
126
|
-
_a.label = 4;
|
127
|
-
case 4:
|
128
|
-
i++;
|
129
|
-
return [3 /*break*/, 1];
|
130
|
-
case 5: return [2 /*return*/];
|
131
|
-
}
|
132
|
-
});
|
133
|
-
};
|
134
|
-
var forPaths = function (paths, object, options) {
|
135
|
-
var i, path;
|
136
|
-
return __generator(this, function (_a) {
|
137
|
-
switch (_a.label) {
|
138
|
-
case 0:
|
139
|
-
i = 0;
|
140
|
-
_a.label = 1;
|
141
|
-
case 1:
|
142
|
-
if (!(i < paths.length)) return [3 /*break*/, 4];
|
143
|
-
path = paths[i];
|
144
|
-
return [5 /*yield**/, __values(Array.from(forEachPath(path, object, options)))];
|
145
|
-
case 2:
|
146
|
-
_a.sent();
|
147
|
-
_a.label = 3;
|
148
|
-
case 3:
|
149
|
-
i++;
|
150
|
-
return [3 /*break*/, 1];
|
151
|
-
case 4: return [2 /*return*/];
|
152
|
-
}
|
153
|
-
});
|
154
|
-
};
|
155
|
-
for (var _i = 0, _a = Array.from(forPaths(paths, object, options)); _i < _a.length; _i++) {
|
156
|
-
var res = _a[_i];
|
157
|
-
}
|
158
|
-
return object;
|
159
|
-
};
|
160
|
-
export var stringToPathOrCall = function (name, fn, cfg) {
|
161
|
-
var _a = cfg.split('('), body = _a[0], args = _a[1];
|
162
|
-
body = body.split('.');
|
163
|
-
var func = body.reduce(function (acc, val) {
|
164
|
-
if (!acc[val]) {
|
165
|
-
throw "This ".concat(name, " method doesnt exists '").concat(cfg, "'.");
|
166
|
-
}
|
167
|
-
return acc[val];
|
168
|
-
}, fn);
|
169
|
-
if (!args) {
|
170
|
-
if (typeof func === 'function') {
|
171
|
-
return func.call(this);
|
172
|
-
}
|
173
|
-
else {
|
174
|
-
return func;
|
175
|
-
}
|
176
|
-
}
|
177
|
-
var _b = args.split(')'), args2 = _b[0], mods = _b[1];
|
178
|
-
args = args2
|
179
|
-
? args2[0] === '{'
|
180
|
-
? [JSON.parse(args2)]
|
181
|
-
: args2
|
182
|
-
.split(',')
|
183
|
-
.map(function (e) { return (/^\d+$/.test(e) ? Number.parseInt(e) : e); })
|
184
|
-
: [];
|
185
|
-
var result = func.call.apply(func, __spreadArray([this], args, false));
|
186
|
-
if (!mods || mods === '') {
|
187
|
-
return result;
|
188
|
-
}
|
189
|
-
mods = mods
|
190
|
-
.split('[')
|
191
|
-
.filter(function (i) { return i !== ''; })
|
192
|
-
.map(function (i) { return i.slice(0, -1); })
|
193
|
-
.map(function (i) { return (i[0] === '"' ? i.slice(1, -1) : parseInt(i, 10)); });
|
194
|
-
return mods.reduce(function (acc, val) {
|
195
|
-
if (!acc[val]) {
|
196
|
-
throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
|
197
|
-
}
|
198
|
-
return acc[val];
|
199
|
-
}, result);
|
200
|
-
};
|
201
|
-
export var loopInside = function (object, path) {
|
202
|
-
var p = path.split('.');
|
203
|
-
return p.reduce(function (acc, val) {
|
204
|
-
if (acc[val] === null) {
|
205
|
-
throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
|
206
|
-
}
|
207
|
-
return acc[val];
|
208
|
-
}, object);
|
209
|
-
};
|
1
|
+
import { __generator, __spreadArray, __values } from "tslib";
|
2
|
+
export var isArray = function (arg) {
|
3
|
+
return Object.prototype.toString.call(arg) === '[object Array]';
|
4
|
+
};
|
5
|
+
export var isObject = function (arg) {
|
6
|
+
return Object.prototype.toString.call(arg) === '[object Object]';
|
7
|
+
};
|
8
|
+
export var evalWithContextData = function (key, object, db, generators) {
|
9
|
+
// In this (way, we can pass object and use inside the eval string
|
10
|
+
return eval(key);
|
11
|
+
};
|
12
|
+
export var fieldArrayCalcLength = function (config, fixedArrayLength, schema) {
|
13
|
+
var length;
|
14
|
+
if (typeof config.length === 'function') {
|
15
|
+
length = config.length.call(schema);
|
16
|
+
}
|
17
|
+
else if (config.fixedLength) {
|
18
|
+
length = config.length - fixedArrayLength;
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
length = Math.floor(Math.random() * config.length + 1);
|
22
|
+
}
|
23
|
+
return length;
|
24
|
+
};
|
25
|
+
export var iamLastChild = function (parent, k) {
|
26
|
+
if (isArray(parent[k])) {
|
27
|
+
var last = false;
|
28
|
+
if (parent[k].length === 0) {
|
29
|
+
return true;
|
30
|
+
}
|
31
|
+
for (var i = 0; i < parent[k].length; i++) {
|
32
|
+
var el = parent[k][i];
|
33
|
+
last = !isObject(el);
|
34
|
+
if (last) {
|
35
|
+
break;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
return last;
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
return !isObject(parent[k]);
|
42
|
+
}
|
43
|
+
};
|
44
|
+
export var iamLastParent = function (obj) {
|
45
|
+
var last = false;
|
46
|
+
if (isObject(obj)) {
|
47
|
+
var ks = Object.keys(obj);
|
48
|
+
for (var i = 0; i < ks.length; i++) {
|
49
|
+
var k = ks[i];
|
50
|
+
last = iamLastChild(obj, k);
|
51
|
+
if (!last) {
|
52
|
+
break;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
last = true;
|
58
|
+
}
|
59
|
+
return last;
|
60
|
+
};
|
61
|
+
export var isConditional = function (str) {
|
62
|
+
var arr = str.split(',');
|
63
|
+
return arr.length > 1;
|
64
|
+
};
|
65
|
+
export var cleanVirtuals = function (paths, object, options) {
|
66
|
+
// clean specific paths
|
67
|
+
var objectCleaner = function (path, obj, options) {
|
68
|
+
var lvls, dest, i, field;
|
69
|
+
return __generator(this, function (_a) {
|
70
|
+
switch (_a.label) {
|
71
|
+
case 0:
|
72
|
+
lvls = path.split(options.symbol);
|
73
|
+
dest = obj;
|
74
|
+
if (!lvls || lvls.length === 0) {
|
75
|
+
return [2 /*return*/];
|
76
|
+
}
|
77
|
+
if (!obj) {
|
78
|
+
return [2 /*return*/];
|
79
|
+
}
|
80
|
+
for (i = 0; i < lvls.length; i++) {
|
81
|
+
field = lvls[i];
|
82
|
+
if (i === lvls.length - 1 && dest[field]) {
|
83
|
+
if (Object.getOwnPropertyNames(dest[field]).length < 1) {
|
84
|
+
delete dest[field];
|
85
|
+
break;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
dest = dest[field];
|
90
|
+
}
|
91
|
+
}
|
92
|
+
lvls.pop();
|
93
|
+
if (!(lvls.length > 0)) return [3 /*break*/, 2];
|
94
|
+
return [5 /*yield**/, __values(objectCleaner(lvls.join(options.symbol), obj, options))];
|
95
|
+
case 1:
|
96
|
+
_a.sent();
|
97
|
+
return [3 /*break*/, 3];
|
98
|
+
case 2: return [2 /*return*/];
|
99
|
+
case 3: return [2 /*return*/];
|
100
|
+
}
|
101
|
+
});
|
102
|
+
};
|
103
|
+
var forEachPath = function (path, object, options) {
|
104
|
+
var lvls, dest, i, field;
|
105
|
+
return __generator(this, function (_a) {
|
106
|
+
switch (_a.label) {
|
107
|
+
case 0:
|
108
|
+
lvls = path.split(options.symbol);
|
109
|
+
dest = object;
|
110
|
+
i = 0;
|
111
|
+
_a.label = 1;
|
112
|
+
case 1:
|
113
|
+
if (!(i < lvls.length)) return [3 /*break*/, 5];
|
114
|
+
field = lvls[i];
|
115
|
+
if (!(i === lvls.length - 1)) return [3 /*break*/, 3];
|
116
|
+
// delete specific path
|
117
|
+
delete dest[field];
|
118
|
+
// clean specific path
|
119
|
+
return [5 /*yield**/, __values(objectCleaner(path, object, options))];
|
120
|
+
case 2:
|
121
|
+
// clean specific path
|
122
|
+
_a.sent();
|
123
|
+
return [3 /*break*/, 4];
|
124
|
+
case 3:
|
125
|
+
dest = dest[field];
|
126
|
+
_a.label = 4;
|
127
|
+
case 4:
|
128
|
+
i++;
|
129
|
+
return [3 /*break*/, 1];
|
130
|
+
case 5: return [2 /*return*/];
|
131
|
+
}
|
132
|
+
});
|
133
|
+
};
|
134
|
+
var forPaths = function (paths, object, options) {
|
135
|
+
var i, path;
|
136
|
+
return __generator(this, function (_a) {
|
137
|
+
switch (_a.label) {
|
138
|
+
case 0:
|
139
|
+
i = 0;
|
140
|
+
_a.label = 1;
|
141
|
+
case 1:
|
142
|
+
if (!(i < paths.length)) return [3 /*break*/, 4];
|
143
|
+
path = paths[i];
|
144
|
+
return [5 /*yield**/, __values(Array.from(forEachPath(path, object, options)))];
|
145
|
+
case 2:
|
146
|
+
_a.sent();
|
147
|
+
_a.label = 3;
|
148
|
+
case 3:
|
149
|
+
i++;
|
150
|
+
return [3 /*break*/, 1];
|
151
|
+
case 4: return [2 /*return*/];
|
152
|
+
}
|
153
|
+
});
|
154
|
+
};
|
155
|
+
for (var _i = 0, _a = Array.from(forPaths(paths, object, options)); _i < _a.length; _i++) {
|
156
|
+
var res = _a[_i];
|
157
|
+
}
|
158
|
+
return object;
|
159
|
+
};
|
160
|
+
export var stringToPathOrCall = function (name, fn, cfg) {
|
161
|
+
var _a = cfg.split('('), body = _a[0], args = _a[1];
|
162
|
+
body = body.split('.');
|
163
|
+
var func = body.reduce(function (acc, val) {
|
164
|
+
if (!acc[val]) {
|
165
|
+
throw "This ".concat(name, " method doesnt exists '").concat(cfg, "'.");
|
166
|
+
}
|
167
|
+
return acc[val];
|
168
|
+
}, fn);
|
169
|
+
if (!args) {
|
170
|
+
if (typeof func === 'function') {
|
171
|
+
return func.call(this);
|
172
|
+
}
|
173
|
+
else {
|
174
|
+
return func;
|
175
|
+
}
|
176
|
+
}
|
177
|
+
var _b = args.split(')'), args2 = _b[0], mods = _b[1];
|
178
|
+
args = args2
|
179
|
+
? args2[0] === '{'
|
180
|
+
? [JSON.parse(args2)]
|
181
|
+
: args2
|
182
|
+
.split(',')
|
183
|
+
.map(function (e) { return (/^\d+$/.test(e) ? Number.parseInt(e) : e); })
|
184
|
+
: [];
|
185
|
+
var result = func.call.apply(func, __spreadArray([this], args, false));
|
186
|
+
if (!mods || mods === '') {
|
187
|
+
return result;
|
188
|
+
}
|
189
|
+
mods = mods
|
190
|
+
.split('[')
|
191
|
+
.filter(function (i) { return i !== ''; })
|
192
|
+
.map(function (i) { return i.slice(0, -1); })
|
193
|
+
.map(function (i) { return (i[0] === '"' ? i.slice(1, -1) : parseInt(i, 10)); });
|
194
|
+
return mods.reduce(function (acc, val) {
|
195
|
+
if (!acc[val]) {
|
196
|
+
throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
|
197
|
+
}
|
198
|
+
return acc[val];
|
199
|
+
}, result);
|
200
|
+
};
|
201
|
+
export var loopInside = function (object, path) {
|
202
|
+
var p = path.split('.');
|
203
|
+
return p.reduce(function (acc, val) {
|
204
|
+
if (acc[val] === null) {
|
205
|
+
throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
|
206
|
+
}
|
207
|
+
return acc[val];
|
208
|
+
}, object);
|
209
|
+
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@coderzz/mocker-data-generator",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.6",
|
4
4
|
"description": "A simplified way to generate mock data, builds using a simple schema and with the FakerJs",
|
5
5
|
"main": "build/main/index.js",
|
6
6
|
"typings": "build/main/index.d.ts",
|