@kubb/plugin-faker 0.0.0-canary-20251209191624 → 0.0.0-canary-20251217084347
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/dist/{components-BP20Parg.cjs → components-CYQi2D8d.cjs} +183 -129
- package/dist/components-CYQi2D8d.cjs.map +1 -0
- package/dist/components-omV0ciEl.js +358 -0
- package/dist/components-omV0ciEl.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.cts +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/{fakerGenerator-APLVZFNv.cjs → fakerGenerator-B7NcLOvg.cjs} +3 -2
- package/dist/fakerGenerator-B7NcLOvg.cjs.map +1 -0
- package/dist/{fakerGenerator-CgXklxYJ.js → fakerGenerator-wJgFsJ4k.js} +3 -2
- package/dist/fakerGenerator-wJgFsJ4k.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.cts +1 -1
- package/dist/generators.d.ts +1 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/{types-DgJG4t24.d.ts → types-CZCTeVpk.d.cts} +62 -29
- package/dist/{types-B1FgdqYL.d.cts → types-CfzJF-pQ.d.ts} +62 -29
- package/package.json +6 -6
- package/src/generators/__snapshots__/getPets.ts +5 -2
- package/src/generators/fakerGenerator.tsx +1 -0
- package/src/parser.ts +212 -181
- package/src/plugin.ts +2 -0
- package/dist/components-BP20Parg.cjs.map +0 -1
- package/dist/components-DUQvu8JV.js +0 -304
- package/dist/components-DUQvu8JV.js.map +0 -1
- package/dist/fakerGenerator-APLVZFNv.cjs.map +0 -1
- package/dist/fakerGenerator-CgXklxYJ.js.map +0 -1
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import transformers from "@kubb/core/transformers";
|
|
2
|
+
import { createParser, findSchemaKeyword, isKeyword, schemaKeywords } from "@kubb/plugin-oas";
|
|
3
|
+
import { File, Function, FunctionParams } from "@kubb/react-fabric";
|
|
4
|
+
import { jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/parser.ts
|
|
7
|
+
const fakerKeywordMapper = {
|
|
8
|
+
any: () => "undefined",
|
|
9
|
+
unknown: () => "undefined",
|
|
10
|
+
void: () => "undefined",
|
|
11
|
+
number: (min, max) => {
|
|
12
|
+
if (max !== void 0 && min !== void 0) return `faker.number.float({ min: ${min}, max: ${max} })`;
|
|
13
|
+
if (max !== void 0) return `faker.number.float({ max: ${max} })`;
|
|
14
|
+
if (min !== void 0) return `faker.number.float({ min: ${min} })`;
|
|
15
|
+
return "faker.number.float()";
|
|
16
|
+
},
|
|
17
|
+
integer: (min, max) => {
|
|
18
|
+
if (max !== void 0 && min !== void 0) return `faker.number.int({ min: ${min}, max: ${max} })`;
|
|
19
|
+
if (max !== void 0) return `faker.number.int({ max: ${max} })`;
|
|
20
|
+
if (min !== void 0) return `faker.number.int({ min: ${min} })`;
|
|
21
|
+
return "faker.number.int()";
|
|
22
|
+
},
|
|
23
|
+
string: (min, max) => {
|
|
24
|
+
if (max !== void 0 && min !== void 0) return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`;
|
|
25
|
+
if (max !== void 0) return `faker.string.alpha({ length: ${max} })`;
|
|
26
|
+
if (min !== void 0) return `faker.string.alpha({ length: ${min} })`;
|
|
27
|
+
return "faker.string.alpha()";
|
|
28
|
+
},
|
|
29
|
+
boolean: () => "faker.datatype.boolean()",
|
|
30
|
+
undefined: () => "undefined",
|
|
31
|
+
null: () => "null",
|
|
32
|
+
array: (items = [], min, max) => {
|
|
33
|
+
if (items.length > 1) return `faker.helpers.arrayElements([${items.join(", ")}])`;
|
|
34
|
+
const item = items.at(0);
|
|
35
|
+
if (min !== void 0 && max !== void 0) return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`;
|
|
36
|
+
if (min !== void 0) return `faker.helpers.multiple(() => (${item}), { count: ${min} })`;
|
|
37
|
+
if (max !== void 0) return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`;
|
|
38
|
+
return `faker.helpers.multiple(() => (${item}))`;
|
|
39
|
+
},
|
|
40
|
+
tuple: (items = []) => `[${items.join(", ")}]`,
|
|
41
|
+
enum: (items = [], type = "any") => `faker.helpers.arrayElement<${type}>([${items.join(", ")}])`,
|
|
42
|
+
union: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
|
|
43
|
+
datetime: () => "faker.date.anytime().toISOString()",
|
|
44
|
+
date: (type = "string", parser = "faker") => {
|
|
45
|
+
if (type === "string") {
|
|
46
|
+
if (parser !== "faker") return `${parser}(faker.date.anytime()).format("YYYY-MM-DD")`;
|
|
47
|
+
return "faker.date.anytime().toISOString().substring(0, 10)";
|
|
48
|
+
}
|
|
49
|
+
if (parser !== "faker") throw new Error(`type '${type}' and parser '${parser}' can not work together`);
|
|
50
|
+
return "faker.date.anytime()";
|
|
51
|
+
},
|
|
52
|
+
time: (type = "string", parser = "faker") => {
|
|
53
|
+
if (type === "string") {
|
|
54
|
+
if (parser !== "faker") return `${parser}(faker.date.anytime()).format("HH:mm:ss")`;
|
|
55
|
+
return "faker.date.anytime().toISOString().substring(11, 19)";
|
|
56
|
+
}
|
|
57
|
+
if (parser !== "faker") throw new Error(`type '${type}' and parser '${parser}' can not work together`);
|
|
58
|
+
return "faker.date.anytime()";
|
|
59
|
+
},
|
|
60
|
+
uuid: () => "faker.string.uuid()",
|
|
61
|
+
url: () => "faker.internet.url()",
|
|
62
|
+
and: (items = []) => `{...${items.join(", ...")}}`,
|
|
63
|
+
object: () => "object",
|
|
64
|
+
ref: () => "ref",
|
|
65
|
+
matches: (value = "", regexGenerator = "faker") => {
|
|
66
|
+
if (regexGenerator === "randexp") return `${transformers.toRegExpString(value, "RandExp")}.gen()`;
|
|
67
|
+
return `faker.helpers.fromRegExp("${value}")`;
|
|
68
|
+
},
|
|
69
|
+
email: () => "faker.internet.email()",
|
|
70
|
+
firstName: () => "faker.person.firstName()",
|
|
71
|
+
lastName: () => "faker.person.lastName()",
|
|
72
|
+
password: () => "faker.internet.password()",
|
|
73
|
+
phone: () => "faker.phone.number()",
|
|
74
|
+
blob: () => "faker.image.url() as unknown as Blob",
|
|
75
|
+
default: void 0,
|
|
76
|
+
describe: void 0,
|
|
77
|
+
const: (value) => value ?? "",
|
|
78
|
+
max: void 0,
|
|
79
|
+
min: void 0,
|
|
80
|
+
nullable: void 0,
|
|
81
|
+
nullish: void 0,
|
|
82
|
+
optional: void 0,
|
|
83
|
+
readOnly: void 0,
|
|
84
|
+
writeOnly: void 0,
|
|
85
|
+
deprecated: void 0,
|
|
86
|
+
example: void 0,
|
|
87
|
+
schema: void 0,
|
|
88
|
+
catchall: void 0,
|
|
89
|
+
name: void 0,
|
|
90
|
+
interface: void 0,
|
|
91
|
+
exclusiveMaximum: void 0,
|
|
92
|
+
exclusiveMinimum: void 0
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398
|
|
96
|
+
*/
|
|
97
|
+
function schemaKeywordSorter(_a, b) {
|
|
98
|
+
if (b.keyword === "null") return -1;
|
|
99
|
+
return 0;
|
|
100
|
+
}
|
|
101
|
+
function joinItems(items) {
|
|
102
|
+
switch (items.length) {
|
|
103
|
+
case 0: return "undefined";
|
|
104
|
+
case 1: return items[0];
|
|
105
|
+
default: return fakerKeywordMapper.union(items);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const parse = createParser({
|
|
109
|
+
mapper: fakerKeywordMapper,
|
|
110
|
+
handlers: {
|
|
111
|
+
union(tree, options) {
|
|
112
|
+
const { current, schema, name, siblings } = tree;
|
|
113
|
+
if (!isKeyword(current, schemaKeywords.union)) return void 0;
|
|
114
|
+
if (Array.isArray(current.args) && !current.args.length) return "";
|
|
115
|
+
return fakerKeywordMapper.union(current.args.map((it) => this.parse({
|
|
116
|
+
schema,
|
|
117
|
+
parent: current,
|
|
118
|
+
name,
|
|
119
|
+
current: it,
|
|
120
|
+
siblings
|
|
121
|
+
}, {
|
|
122
|
+
...options,
|
|
123
|
+
canOverride: false
|
|
124
|
+
})).filter(Boolean));
|
|
125
|
+
},
|
|
126
|
+
and(tree, options) {
|
|
127
|
+
const { current, schema, siblings } = tree;
|
|
128
|
+
if (!isKeyword(current, schemaKeywords.and)) return void 0;
|
|
129
|
+
return fakerKeywordMapper.and(current.args.map((it) => this.parse({
|
|
130
|
+
schema,
|
|
131
|
+
parent: current,
|
|
132
|
+
current: it,
|
|
133
|
+
siblings
|
|
134
|
+
}, {
|
|
135
|
+
...options,
|
|
136
|
+
canOverride: false
|
|
137
|
+
})).filter(Boolean));
|
|
138
|
+
},
|
|
139
|
+
array(tree, options) {
|
|
140
|
+
const { current, schema } = tree;
|
|
141
|
+
if (!isKeyword(current, schemaKeywords.array)) return void 0;
|
|
142
|
+
return fakerKeywordMapper.array(current.args.items.map((it) => this.parse({
|
|
143
|
+
schema,
|
|
144
|
+
parent: current,
|
|
145
|
+
current: it,
|
|
146
|
+
siblings: current.args.items
|
|
147
|
+
}, {
|
|
148
|
+
...options,
|
|
149
|
+
typeName: `NonNullable<${options.typeName}>[number]`,
|
|
150
|
+
canOverride: false
|
|
151
|
+
})).filter(Boolean), current.args.min, current.args.max);
|
|
152
|
+
},
|
|
153
|
+
enum(tree, options) {
|
|
154
|
+
const { current, parent, name } = tree;
|
|
155
|
+
if (!isKeyword(current, schemaKeywords.enum)) return void 0;
|
|
156
|
+
if (parent ? isKeyword(parent, schemaKeywords.tuple) : false) return fakerKeywordMapper.enum(current.args.items.map((schema) => {
|
|
157
|
+
if (schema.format === "number") return schema.value;
|
|
158
|
+
if (schema.format === "boolean") return schema.value;
|
|
159
|
+
return transformers.stringify(schema.value);
|
|
160
|
+
}));
|
|
161
|
+
return fakerKeywordMapper.enum(current.args.items.map((schema) => {
|
|
162
|
+
if (schema.format === "number") return schema.value;
|
|
163
|
+
if (schema.format === "boolean") return schema.value;
|
|
164
|
+
return transformers.stringify(schema.value);
|
|
165
|
+
}), name ? options.typeName : void 0);
|
|
166
|
+
},
|
|
167
|
+
ref(tree, options) {
|
|
168
|
+
const { current } = tree;
|
|
169
|
+
if (!isKeyword(current, schemaKeywords.ref)) return void 0;
|
|
170
|
+
if (!current.args?.name) throw new Error(`Name not defined for keyword ${current.keyword}`);
|
|
171
|
+
if (options.canOverride) return `${current.args.name}(data)`;
|
|
172
|
+
return `${current.args.name}()`;
|
|
173
|
+
},
|
|
174
|
+
object(tree, options) {
|
|
175
|
+
const { current, schema } = tree;
|
|
176
|
+
if (!isKeyword(current, schemaKeywords.object)) return void 0;
|
|
177
|
+
return `{${Object.entries(current.args?.properties || {}).filter((item) => {
|
|
178
|
+
const schema$1 = item[1];
|
|
179
|
+
return schema$1 && typeof schema$1.map === "function";
|
|
180
|
+
}).map(([name, schemas]) => {
|
|
181
|
+
const mappedName = schemas.find((schema$1) => schema$1.keyword === schemaKeywords.name)?.args || name;
|
|
182
|
+
if (options.mapper?.[mappedName]) return `"${name}": ${options.mapper?.[mappedName]}`;
|
|
183
|
+
return `"${name}": ${joinItems(schemas.sort(schemaKeywordSorter).map((it) => this.parse({
|
|
184
|
+
schema,
|
|
185
|
+
name,
|
|
186
|
+
parent: current,
|
|
187
|
+
current: it,
|
|
188
|
+
siblings: schemas
|
|
189
|
+
}, {
|
|
190
|
+
...options,
|
|
191
|
+
typeName: `NonNullable<${options.typeName}>[${JSON.stringify(name)}]`,
|
|
192
|
+
canOverride: false
|
|
193
|
+
})).filter(Boolean))}`;
|
|
194
|
+
}).join(",")}}`;
|
|
195
|
+
},
|
|
196
|
+
tuple(tree, options) {
|
|
197
|
+
const { current, schema, siblings } = tree;
|
|
198
|
+
if (!isKeyword(current, schemaKeywords.tuple)) return void 0;
|
|
199
|
+
if (Array.isArray(current.args.items)) return fakerKeywordMapper.tuple(current.args.items.map((it) => this.parse({
|
|
200
|
+
schema,
|
|
201
|
+
parent: current,
|
|
202
|
+
current: it,
|
|
203
|
+
siblings
|
|
204
|
+
}, {
|
|
205
|
+
...options,
|
|
206
|
+
canOverride: false
|
|
207
|
+
})).filter(Boolean));
|
|
208
|
+
return this.parse({
|
|
209
|
+
schema,
|
|
210
|
+
parent: current,
|
|
211
|
+
current: current.args.items,
|
|
212
|
+
siblings
|
|
213
|
+
}, {
|
|
214
|
+
...options,
|
|
215
|
+
canOverride: false
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
const(tree, _options) {
|
|
219
|
+
const { current } = tree;
|
|
220
|
+
if (!isKeyword(current, schemaKeywords.const)) return void 0;
|
|
221
|
+
if (current.args.format === "number" && current.args.name !== void 0) return fakerKeywordMapper.const(current.args.name?.toString());
|
|
222
|
+
return fakerKeywordMapper.const(transformers.stringify(current.args.value));
|
|
223
|
+
},
|
|
224
|
+
matches(tree, options) {
|
|
225
|
+
const { current } = tree;
|
|
226
|
+
if (!isKeyword(current, schemaKeywords.matches)) return void 0;
|
|
227
|
+
if (current.args) return fakerKeywordMapper.matches(current.args, options.regexGenerator);
|
|
228
|
+
},
|
|
229
|
+
null(tree) {
|
|
230
|
+
const { current } = tree;
|
|
231
|
+
if (!isKeyword(current, schemaKeywords.null)) return void 0;
|
|
232
|
+
return fakerKeywordMapper.null();
|
|
233
|
+
},
|
|
234
|
+
undefined(tree) {
|
|
235
|
+
const { current } = tree;
|
|
236
|
+
if (!isKeyword(current, schemaKeywords.undefined)) return void 0;
|
|
237
|
+
return fakerKeywordMapper.undefined();
|
|
238
|
+
},
|
|
239
|
+
any(tree) {
|
|
240
|
+
const { current } = tree;
|
|
241
|
+
if (!isKeyword(current, schemaKeywords.any)) return void 0;
|
|
242
|
+
return fakerKeywordMapper.any();
|
|
243
|
+
},
|
|
244
|
+
string(tree, _options) {
|
|
245
|
+
const { current, siblings } = tree;
|
|
246
|
+
if (!isKeyword(current, schemaKeywords.string)) return void 0;
|
|
247
|
+
if (siblings) {
|
|
248
|
+
const minSchema = findSchemaKeyword(siblings, "min");
|
|
249
|
+
const maxSchema = findSchemaKeyword(siblings, "max");
|
|
250
|
+
return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args);
|
|
251
|
+
}
|
|
252
|
+
return fakerKeywordMapper.string();
|
|
253
|
+
},
|
|
254
|
+
number(tree, _options) {
|
|
255
|
+
const { current, siblings } = tree;
|
|
256
|
+
if (!isKeyword(current, schemaKeywords.number)) return void 0;
|
|
257
|
+
if (siblings) {
|
|
258
|
+
const minSchema = findSchemaKeyword(siblings, "min");
|
|
259
|
+
const maxSchema = findSchemaKeyword(siblings, "max");
|
|
260
|
+
return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args);
|
|
261
|
+
}
|
|
262
|
+
return fakerKeywordMapper.number();
|
|
263
|
+
},
|
|
264
|
+
integer(tree, _options) {
|
|
265
|
+
const { current, siblings } = tree;
|
|
266
|
+
if (!isKeyword(current, schemaKeywords.integer)) return void 0;
|
|
267
|
+
if (siblings) {
|
|
268
|
+
const minSchema = findSchemaKeyword(siblings, "min");
|
|
269
|
+
const maxSchema = findSchemaKeyword(siblings, "max");
|
|
270
|
+
return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args);
|
|
271
|
+
}
|
|
272
|
+
return fakerKeywordMapper.integer();
|
|
273
|
+
},
|
|
274
|
+
datetime(tree) {
|
|
275
|
+
const { current } = tree;
|
|
276
|
+
if (!isKeyword(current, schemaKeywords.datetime)) return void 0;
|
|
277
|
+
return fakerKeywordMapper.datetime();
|
|
278
|
+
},
|
|
279
|
+
date(tree, options) {
|
|
280
|
+
const { current } = tree;
|
|
281
|
+
if (!isKeyword(current, schemaKeywords.date)) return void 0;
|
|
282
|
+
return fakerKeywordMapper.date(current.args.type, options.dateParser);
|
|
283
|
+
},
|
|
284
|
+
time(tree, options) {
|
|
285
|
+
const { current } = tree;
|
|
286
|
+
if (!isKeyword(current, schemaKeywords.time)) return void 0;
|
|
287
|
+
return fakerKeywordMapper.time(current.args.type, options.dateParser);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
//#endregion
|
|
293
|
+
//#region src/components/Faker.tsx
|
|
294
|
+
function Faker({ tree, description, name, typeName, seed, regexGenerator, canOverride, mapper, dateParser }) {
|
|
295
|
+
const fakerText = joinItems(tree.map((schema, _index, siblings) => parse({
|
|
296
|
+
name,
|
|
297
|
+
schema,
|
|
298
|
+
parent: void 0,
|
|
299
|
+
current: schema,
|
|
300
|
+
siblings
|
|
301
|
+
}, {
|
|
302
|
+
typeName,
|
|
303
|
+
regexGenerator,
|
|
304
|
+
mapper,
|
|
305
|
+
canOverride,
|
|
306
|
+
dateParser
|
|
307
|
+
})).filter(Boolean));
|
|
308
|
+
const isArray = fakerText.startsWith("faker.helpers.arrayElements") || fakerText.startsWith("faker.helpers.multiple");
|
|
309
|
+
const isObject = fakerText.startsWith("{");
|
|
310
|
+
const isTuple = fakerText.startsWith("faker.helpers.arrayElement");
|
|
311
|
+
const isSimpleString = name === "string";
|
|
312
|
+
const isSimpleInt = name === "integer";
|
|
313
|
+
const isSimpleFloat = name === "float";
|
|
314
|
+
let fakerTextWithOverride = fakerText;
|
|
315
|
+
if (canOverride && isObject) fakerTextWithOverride = `{
|
|
316
|
+
...${fakerText},
|
|
317
|
+
...data || {}
|
|
318
|
+
}`;
|
|
319
|
+
if (canOverride && isTuple) fakerTextWithOverride = `data || ${fakerText}`;
|
|
320
|
+
if (canOverride && isArray) fakerTextWithOverride = `[
|
|
321
|
+
...${fakerText},
|
|
322
|
+
...data || []
|
|
323
|
+
]`;
|
|
324
|
+
if (canOverride && isSimpleString) fakerTextWithOverride = "data ?? faker.string.alpha()";
|
|
325
|
+
if (canOverride && isSimpleInt) fakerTextWithOverride = "data ?? faker.number.int()";
|
|
326
|
+
if (canOverride && isSimpleFloat) fakerTextWithOverride = "data ?? faker.number.float()";
|
|
327
|
+
let type = `Partial<${typeName}>`;
|
|
328
|
+
if (isArray) type = typeName;
|
|
329
|
+
else if (isSimpleString) type = name;
|
|
330
|
+
else if (isSimpleInt || isSimpleFloat) type = "number";
|
|
331
|
+
const params = FunctionParams.factory({ data: {
|
|
332
|
+
type,
|
|
333
|
+
optional: true
|
|
334
|
+
} });
|
|
335
|
+
let returnType = canOverride ? typeName : void 0;
|
|
336
|
+
if (isSimpleString || isSimpleInt || isSimpleFloat) returnType = type;
|
|
337
|
+
return /* @__PURE__ */ jsx(File.Source, {
|
|
338
|
+
name,
|
|
339
|
+
isExportable: true,
|
|
340
|
+
isIndexable: true,
|
|
341
|
+
children: /* @__PURE__ */ jsxs(Function, {
|
|
342
|
+
export: true,
|
|
343
|
+
name,
|
|
344
|
+
JSDoc: { comments: [description ? `@description ${transformers.jsStringEscape(description)}` : void 0].filter(Boolean) },
|
|
345
|
+
params: canOverride ? params.toConstructor() : void 0,
|
|
346
|
+
returnType,
|
|
347
|
+
children: [
|
|
348
|
+
seed ? `faker.seed(${JSON.stringify(seed)})` : void 0,
|
|
349
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
350
|
+
`return ${fakerTextWithOverride}`
|
|
351
|
+
]
|
|
352
|
+
})
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
//#endregion
|
|
357
|
+
export { Faker as t };
|
|
358
|
+
//# sourceMappingURL=components-omV0ciEl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-omV0ciEl.js","names":["schema","parserFaker.joinItems","parserFaker.parse"],"sources":["../src/parser.ts","../src/components/Faker.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport { createParser, findSchemaKeyword, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\nimport type { Options } from './types.ts'\n\nconst fakerKeywordMapper = {\n any: () => 'undefined',\n unknown: () => 'undefined',\n void: () => 'undefined',\n number: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.float({ min: ${min}, max: ${max} })`\n }\n\n if (max !== undefined) {\n return `faker.number.float({ max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.float({ min: ${min} })`\n }\n\n return 'faker.number.float()'\n },\n integer: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.int({ min: ${min}, max: ${max} })`\n }\n\n if (max !== undefined) {\n return `faker.number.int({ max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.int({ min: ${min} })`\n }\n\n return 'faker.number.int()'\n },\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n undefined: () => 'undefined',\n null: () => 'null',\n array: (items: string[] = [], min?: number, max?: number) => {\n if (items.length > 1) {\n return `faker.helpers.arrayElements([${items.join(', ')}])`\n }\n const item = items.at(0)\n\n if (min !== undefined && max !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`\n }\n if (min !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: ${min} })`\n }\n if (max !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`\n }\n\n return `faker.helpers.multiple(() => (${item}))`\n },\n tuple: (items: string[] = []) => `[${items.join(', ')}]`,\n enum: (items: Array<string | number | boolean | undefined> = [], type = 'any') => `faker.helpers.arrayElement<${type}>([${items.join(', ')}])`,\n union: (items: string[] = []) => `faker.helpers.arrayElement<any>([${items.join(', ')}])`,\n /**\n * ISO 8601\n */\n datetime: () => 'faker.date.anytime().toISOString()',\n /**\n * Type `'date'` Date\n * Type `'string'` ISO date format (YYYY-MM-DD)\n * @default ISO date format (YYYY-MM-DD)\n */\n date: (type: 'date' | 'string' = 'string', parser: Options['dateParser'] = 'faker') => {\n if (type === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"YYYY-MM-DD\")`\n }\n return 'faker.date.anytime().toISOString().substring(0, 10)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${type}' and parser '${parser}' can not work together`)\n }\n\n return 'faker.date.anytime()'\n },\n /**\n * Type `'date'` Date\n * Type `'string'` ISO time format (HH:mm:ss[.SSSSSS])\n * @default ISO time format (HH:mm:ss[.SSSSSS])\n */\n time: (type: 'date' | 'string' = 'string', parser: Options['dateParser'] = 'faker') => {\n if (type === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"HH:mm:ss\")`\n }\n return 'faker.date.anytime().toISOString().substring(11, 19)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${type}' and parser '${parser}' can not work together`)\n }\n\n return 'faker.date.anytime()'\n },\n uuid: () => 'faker.string.uuid()',\n url: () => 'faker.internet.url()',\n and: (items: string[] = []) => `{...${items.join(', ...')}}`,\n object: () => 'object',\n ref: () => 'ref',\n matches: (value = '', regexGenerator: 'faker' | 'randexp' = 'faker') => {\n if (regexGenerator === 'randexp') {\n return `${transformers.toRegExpString(value, 'RandExp')}.gen()`\n }\n return `faker.helpers.fromRegExp(\"${value}\")`\n },\n email: () => 'faker.internet.email()',\n firstName: () => 'faker.person.firstName()',\n lastName: () => 'faker.person.lastName()',\n password: () => 'faker.internet.password()',\n phone: () => 'faker.phone.number()',\n blob: () => 'faker.image.url() as unknown as Blob',\n default: undefined,\n describe: undefined,\n const: (value?: string | number) => (value as string) ?? '',\n max: undefined,\n min: undefined,\n nullable: undefined,\n nullish: undefined,\n optional: undefined,\n readOnly: undefined,\n writeOnly: undefined,\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: undefined,\n name: undefined,\n interface: undefined,\n exclusiveMaximum: undefined,\n exclusiveMinimum: undefined,\n} satisfies SchemaMapper<string | null | undefined>\n\n/**\n * @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n */\n\nfunction schemaKeywordSorter(_a: Schema, b: Schema) {\n if (b.keyword === 'null') {\n return -1\n }\n\n return 0\n}\n\nexport function joinItems(items: string[]): string {\n switch (items.length) {\n case 0:\n return 'undefined'\n case 1:\n return items[0]!\n default:\n return fakerKeywordMapper.union(items)\n }\n}\n\ntype ParserOptions = {\n typeName?: string\n regexGenerator?: 'faker' | 'randexp'\n canOverride?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport const parse = createParser<string, ParserOptions>({\n mapper: fakerKeywordMapper,\n handlers: {\n union(tree, options) {\n const { current, schema, name, siblings } = tree\n if (!isKeyword(current, schemaKeywords.union)) return undefined\n\n if (Array.isArray(current.args) && !current.args.length) {\n return ''\n }\n\n return fakerKeywordMapper.union(\n current.args.map((it) => this.parse({ schema, parent: current, name, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n and(tree, options) {\n const { current, schema, siblings } = tree\n if (!isKeyword(current, schemaKeywords.and)) return undefined\n\n return fakerKeywordMapper.and(\n current.args.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n array(tree, options) {\n const { current, schema } = tree\n if (!isKeyword(current, schemaKeywords.array)) return undefined\n\n return fakerKeywordMapper.array(\n current.args.items\n .map((it) =>\n this.parse(\n { schema, parent: current, current: it, siblings: current.args.items },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[number]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n current.args.min,\n current.args.max,\n )\n },\n enum(tree, options) {\n const { current, parent, name } = tree\n if (!isKeyword(current, schemaKeywords.enum)) return undefined\n\n const isParentTuple = parent ? isKeyword(parent, schemaKeywords.tuple) : false\n\n if (isParentTuple) {\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n )\n }\n\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n // TODO replace this with getEnumNameFromSchema\n name ? options.typeName : undefined,\n )\n },\n ref(tree, options) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.ref)) return undefined\n\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n if (options.canOverride) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n },\n object(tree, options) {\n const { current, schema } = tree\n if (!isKeyword(current, schemaKeywords.object)) return undefined\n\n const argsObject = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n .map(([name, schemas]) => {\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const mappedName = nameSchema?.args || name\n\n // custom mapper(pluginOptions)\n if (options.mapper?.[mappedName]) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordSorter)\n .map((it) =>\n this.parse(\n { schema, name, parent: current, current: it, siblings: schemas },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[${JSON.stringify(name)}]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n },\n tuple(tree, options) {\n const { current, schema, siblings } = tree\n if (!isKeyword(current, schemaKeywords.tuple)) return undefined\n\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(\n current.args.items.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n return this.parse({ schema, parent: current, current: current.args.items, siblings }, { ...options, canOverride: false })\n },\n const(tree, _options) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.const)) return undefined\n\n if (current.args.format === 'number' && current.args.name !== undefined) {\n return fakerKeywordMapper.const(current.args.name?.toString())\n }\n return fakerKeywordMapper.const(transformers.stringify(current.args.value))\n },\n matches(tree, options) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.matches)) return undefined\n\n if (current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n return undefined\n },\n null(tree) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.null)) return undefined\n\n return fakerKeywordMapper.null()\n },\n undefined(tree) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.undefined)) return undefined\n\n return fakerKeywordMapper.undefined()\n },\n any(tree) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.any)) return undefined\n\n return fakerKeywordMapper.any()\n },\n string(tree, _options) {\n const { current, siblings } = tree\n if (!isKeyword(current, schemaKeywords.string)) return undefined\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n },\n number(tree, _options) {\n const { current, siblings } = tree\n if (!isKeyword(current, schemaKeywords.number)) return undefined\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n },\n integer(tree, _options) {\n const { current, siblings } = tree\n if (!isKeyword(current, schemaKeywords.integer)) return undefined\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n },\n datetime(tree) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.datetime)) return undefined\n\n return fakerKeywordMapper.datetime()\n },\n date(tree, options) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.date)) return undefined\n\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n },\n time(tree, options) {\n const { current } = tree\n if (!isKeyword(current, schemaKeywords.time)) return undefined\n\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n },\n },\n})\n","import transformers from '@kubb/core/transformers'\nimport type { Schema } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\nimport * as parserFaker from '../parser.ts'\nimport type { PluginFaker } from '../types.ts'\n\ntype Props = {\n name: string\n typeName: string\n tree: Array<Schema>\n seed?: PluginFaker['options']['seed']\n description?: string\n regexGenerator?: PluginFaker['options']['regexGenerator']\n mapper?: PluginFaker['options']['mapper']\n dateParser?: PluginFaker['options']['dateParser']\n canOverride: boolean\n}\n\nexport function Faker({ tree, description, name, typeName, seed, regexGenerator, canOverride, mapper, dateParser }: Props): KubbNode {\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema, _index, siblings) =>\n parserFaker.parse(\n { name, schema, parent: undefined, current: schema, siblings },\n {\n typeName,\n regexGenerator,\n mapper,\n canOverride,\n dateParser,\n },\n ),\n )\n .filter(Boolean),\n )\n\n const isArray = fakerText.startsWith('faker.helpers.arrayElements') || fakerText.startsWith('faker.helpers.multiple')\n const isObject = fakerText.startsWith('{')\n const isTuple = fakerText.startsWith('faker.helpers.arrayElement')\n\n const isSimpleString = name === 'string'\n const isSimpleInt = name === 'integer'\n const isSimpleFloat = name === 'float'\n\n let fakerTextWithOverride = fakerText\n\n if (canOverride && isObject) {\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data || {}\n}`\n }\n\n if (canOverride && isTuple) {\n fakerTextWithOverride = `data || ${fakerText}`\n }\n\n if (canOverride && isArray) {\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data || []\n ]`\n }\n\n if (canOverride && isSimpleString) {\n fakerTextWithOverride = 'data ?? faker.string.alpha()'\n }\n\n if (canOverride && isSimpleInt) {\n fakerTextWithOverride = 'data ?? faker.number.int()'\n }\n\n if (canOverride && isSimpleFloat) {\n fakerTextWithOverride = 'data ?? faker.number.float()'\n }\n\n let type = `Partial<${typeName}>`\n\n if (isArray) type = typeName\n else if (isSimpleString) type = name\n else if (isSimpleInt || isSimpleFloat) type = 'number'\n\n const params = FunctionParams.factory({\n data: {\n // making a partial out of an array does not make sense\n type,\n optional: true,\n },\n })\n\n let returnType = canOverride ? typeName : undefined\n\n if (isSimpleString || isSimpleInt || isSimpleFloat) returnType = type\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n export\n name={name}\n JSDoc={{ comments: [description ? `@description ${transformers.jsStringEscape(description)}` : undefined].filter(Boolean) }}\n params={canOverride ? params.toConstructor() : undefined}\n returnType={returnType}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : undefined}\n <br />\n {`return ${fakerTextWithOverride}`}\n </Function>\n </File.Source>\n )\n}\n"],"mappings":"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"}
|
package/dist/components.cjs
CHANGED
package/dist/components.d.cts
CHANGED
package/dist/components.d.ts
CHANGED
package/dist/components.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_components = require('./components-
|
|
1
|
+
const require_components = require('./components-CYQi2D8d.cjs');
|
|
2
2
|
let __kubb_plugin_oas = require("@kubb/plugin-oas");
|
|
3
3
|
let __kubb_plugin_ts = require("@kubb/plugin-ts");
|
|
4
4
|
let __kubb_core_hooks = require("@kubb/core/hooks");
|
|
@@ -24,6 +24,7 @@ const fakerGenerator = (0, __kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
24
24
|
fabric: generator.context.fabric,
|
|
25
25
|
oas,
|
|
26
26
|
plugin,
|
|
27
|
+
logger: generator.context.logger,
|
|
27
28
|
pluginManager,
|
|
28
29
|
mode,
|
|
29
30
|
override: options.override
|
|
@@ -199,4 +200,4 @@ Object.defineProperty(exports, 'fakerGenerator', {
|
|
|
199
200
|
return fakerGenerator;
|
|
200
201
|
}
|
|
201
202
|
});
|
|
202
|
-
//# sourceMappingURL=fakerGenerator-
|
|
203
|
+
//# sourceMappingURL=fakerGenerator-B7NcLOvg.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakerGenerator-B7NcLOvg.cjs","names":["SchemaGenerator","options","pluginTsName","schemaKeywords","Fragment","File","Faker"],"sources":["../src/generators/fakerGenerator.tsx"],"sourcesContent":["import { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, Fragment } from '@kubb/react-fabric'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, generator, plugin }) {\n const {\n options,\n options: { dateParser, regexGenerator, seed, mapper },\n } = plugin\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n logger: generator.context.logger,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema: schemaObject, description, ...options }: OperationSchemaType) => {\n const tree = schemaGenerator.parse({ schemaObject, name })\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const faker = {\n name: schemaManager.getName(name, { type: 'function' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, { type: 'type', pluginKey: [pluginTsName] }),\n file: schemaManager.getFile(options.operationName || name, { pluginKey: [pluginTsName], group }),\n }\n\n const canOverride = tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <Fragment>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Faker\n name={faker.name}\n typeName={type.name}\n description={description}\n tree={tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </Fragment>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, plugin }) {\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n options: { output, dateParser, regexGenerator, seed, mapper },\n } = plugin\n const pluginManager = usePluginManager()\n const oas = useOas()\n const imports = getImports(schema.tree)\n\n const faker = {\n name: getName(schema.name, { type: 'function' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n const canOverride = schema.tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple ||\n keyword === schemaKeywords.string ||\n keyword === schemaKeywords.integer ||\n keyword === schemaKeywords.number,\n )\n\n return (\n <File\n baseName={faker.file.baseName}\n path={faker.file.path}\n meta={faker.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n <File.Import isTypeOnly root={faker.file.path} path={type.file.path} name={[type.name]} />\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={faker.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Faker\n name={faker.name}\n typeName={type.name}\n description={schema.value.description}\n tree={schema.tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Faker } from "./components-
|
|
1
|
+
import { t as Faker } from "./components-omV0ciEl.js";
|
|
2
2
|
import { SchemaGenerator, schemaKeywords } from "@kubb/plugin-oas";
|
|
3
3
|
import { pluginTsName } from "@kubb/plugin-ts";
|
|
4
4
|
import { useMode, usePluginManager } from "@kubb/core/hooks";
|
|
@@ -24,6 +24,7 @@ const fakerGenerator = createReactGenerator({
|
|
|
24
24
|
fabric: generator.context.fabric,
|
|
25
25
|
oas,
|
|
26
26
|
plugin,
|
|
27
|
+
logger: generator.context.logger,
|
|
27
28
|
pluginManager,
|
|
28
29
|
mode,
|
|
29
30
|
override: options.override
|
|
@@ -194,4 +195,4 @@ const fakerGenerator = createReactGenerator({
|
|
|
194
195
|
|
|
195
196
|
//#endregion
|
|
196
197
|
export { fakerGenerator as t };
|
|
197
|
-
//# sourceMappingURL=fakerGenerator-
|
|
198
|
+
//# sourceMappingURL=fakerGenerator-wJgFsJ4k.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakerGenerator-wJgFsJ4k.js","names":["options"],"sources":["../src/generators/fakerGenerator.tsx"],"sourcesContent":["import { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, Fragment } from '@kubb/react-fabric'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, generator, plugin }) {\n const {\n options,\n options: { dateParser, regexGenerator, seed, mapper },\n } = plugin\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n logger: generator.context.logger,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema: schemaObject, description, ...options }: OperationSchemaType) => {\n const tree = schemaGenerator.parse({ schemaObject, name })\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const faker = {\n name: schemaManager.getName(name, { type: 'function' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, { type: 'type', pluginKey: [pluginTsName] }),\n file: schemaManager.getFile(options.operationName || name, { pluginKey: [pluginTsName], group }),\n }\n\n const canOverride = tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <Fragment>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Faker\n name={faker.name}\n typeName={type.name}\n description={description}\n tree={tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </Fragment>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, plugin }) {\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n options: { output, dateParser, regexGenerator, seed, mapper },\n } = plugin\n const pluginManager = usePluginManager()\n const oas = useOas()\n const imports = getImports(schema.tree)\n\n const faker = {\n name: getName(schema.name, { type: 'function' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n const canOverride = schema.tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple ||\n keyword === schemaKeywords.string ||\n keyword === schemaKeywords.integer ||\n keyword === schemaKeywords.number,\n )\n\n return (\n <File\n baseName={faker.file.baseName}\n path={faker.file.path}\n meta={faker.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n <File.Import isTypeOnly root={faker.file.path} path={type.file.path} name={[type.name]} />\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={faker.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Faker\n name={faker.name}\n typeName={type.name}\n description={schema.value.description}\n tree={schema.tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
|
package/dist/generators.cjs
CHANGED
package/dist/generators.d.cts
CHANGED
package/dist/generators.d.ts
CHANGED
package/dist/generators.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_components = require('./components-
|
|
2
|
-
const require_fakerGenerator = require('./fakerGenerator-
|
|
1
|
+
const require_components = require('./components-CYQi2D8d.cjs');
|
|
2
|
+
const require_fakerGenerator = require('./fakerGenerator-B7NcLOvg.cjs');
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
node_path = require_components.__toESM(node_path);
|
|
5
5
|
let __kubb_core = require("@kubb/core");
|
|
@@ -64,6 +64,7 @@ const pluginFaker = (0, __kubb_core.definePlugin)((options) => {
|
|
|
64
64
|
fabric: this.fabric,
|
|
65
65
|
oas,
|
|
66
66
|
pluginManager: this.pluginManager,
|
|
67
|
+
logger: this.logger,
|
|
67
68
|
plugin: this.plugin,
|
|
68
69
|
contentType,
|
|
69
70
|
include: void 0,
|
|
@@ -76,6 +77,7 @@ const pluginFaker = (0, __kubb_core.definePlugin)((options) => {
|
|
|
76
77
|
fabric: this.fabric,
|
|
77
78
|
oas,
|
|
78
79
|
pluginManager: this.pluginManager,
|
|
80
|
+
logger: this.logger,
|
|
79
81
|
plugin: this.plugin,
|
|
80
82
|
contentType,
|
|
81
83
|
exclude,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["fakerGenerator","pluginOasName","pluginTsName","path","options","groupName: Group['name']","SchemaGenerator","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n contentType,\n } = options\n\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":";;;;;;;;;;AAQA,MAAa,kBAAkB;AAE/B,MAAa,6CAAyC,YAAY;CAChE,MAAM,EACJ,SAAS;EAAE,MAAM;EAAS,YAAY;EAAS,EAC/C,MACA,OACA,UAAU,EAAE,EACZ,SACA,WAAW,EAAE,EACb,eAAe,EAAE,EACjB,SAAS,EAAE,EACX,cAAc,OACd,kBAAkB,aAClB,WAAW,UACX,aAAa,SACb,aAAa,CAACA,sCAAe,CAAC,OAAO,QAAQ,EAC7C,iBAAiB,SACjB,gBACE;AAIJ,QAAO;EACL,MAAM;EACN,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,eAhBkB,EAAE;GAiBrB;EACD,KAAK,CAACC,iCAAeC,8BAAa;EAClC,YAAY,UAAU,UAAU,WAAS;GACvC,MAAM,OAAOC,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;AAGpE,QAFa,qCAAoBA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC,MAEpD;;;;;AAKX,UAAOA,kBAAK,QAAQ,MAAM,OAAO,KAAK;AAGxC,OAAI,UAAUC,WAAS,OAAO,QAAQA,WAAS,OAAO,MAAM;IAC1D,MAAMC,YAA2B,OAAO,OACpC,MAAM,QACL,QAAQ;AACP,SAAI,OAAO,SAAS,OAClB,QAAO,GAAG,IAAI,MAAM,MAAM,IAAI,CAAC;AAEjC,YAAO,2CAAa,IAAI,MAAM,CAAC;;AAGrC,WAAOF,kBAAK,QACV,MACA,OAAO,MACP,UAAU,EACR,OAAO,MAAM,SAAS,SAASC,UAAQ,MAAM,OAAQA,UAAQ,MAAM,KACpE,CAAC,EACF,SACD;;AAGH,UAAOD,kBAAK,QAAQ,MAAM,OAAO,MAAM,SAAS;;EAElD,YAAY,MAAM,MAAM;GACtB,MAAM,uDAAyB,MAAM;IACnC,QAAQ,OAAO,WAAW;IAC1B,QAAQ,SAAS;IAClB,CAAC;AAEF,OAAI,KACF,QAAO,cAAc,OAAO,cAAc,KAAK,IAAI;AAGrD,UAAO;;EAET,MAAM,UAAU;GACd,MAAM,OAAOA,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;GACpE,MAAM,gCAAeA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC;GACrD,MAAM,MAAM,MAAM,KAAK,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["fakerGenerator","pluginOasName","pluginTsName","path","options","groupName: Group['name']","SchemaGenerator","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n contentType,\n } = options\n\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n logger: this.logger,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n logger: this.logger,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":";;;;;;;;;;AAQA,MAAa,kBAAkB;AAE/B,MAAa,6CAAyC,YAAY;CAChE,MAAM,EACJ,SAAS;EAAE,MAAM;EAAS,YAAY;EAAS,EAC/C,MACA,OACA,UAAU,EAAE,EACZ,SACA,WAAW,EAAE,EACb,eAAe,EAAE,EACjB,SAAS,EAAE,EACX,cAAc,OACd,kBAAkB,aAClB,WAAW,UACX,aAAa,SACb,aAAa,CAACA,sCAAe,CAAC,OAAO,QAAQ,EAC7C,iBAAiB,SACjB,gBACE;AAIJ,QAAO;EACL,MAAM;EACN,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,eAhBkB,EAAE;GAiBrB;EACD,KAAK,CAACC,iCAAeC,8BAAa;EAClC,YAAY,UAAU,UAAU,WAAS;GACvC,MAAM,OAAOC,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;AAGpE,QAFa,qCAAoBA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC,MAEpD;;;;;AAKX,UAAOA,kBAAK,QAAQ,MAAM,OAAO,KAAK;AAGxC,OAAI,UAAUC,WAAS,OAAO,QAAQA,WAAS,OAAO,MAAM;IAC1D,MAAMC,YAA2B,OAAO,OACpC,MAAM,QACL,QAAQ;AACP,SAAI,OAAO,SAAS,OAClB,QAAO,GAAG,IAAI,MAAM,MAAM,IAAI,CAAC;AAEjC,YAAO,2CAAa,IAAI,MAAM,CAAC;;AAGrC,WAAOF,kBAAK,QACV,MACA,OAAO,MACP,UAAU,EACR,OAAO,MAAM,SAAS,SAASC,UAAQ,MAAM,OAAQA,UAAQ,MAAM,KACpE,CAAC,EACF,SACD;;AAGH,UAAOD,kBAAK,QAAQ,MAAM,OAAO,MAAM,SAAS;;EAElD,YAAY,MAAM,MAAM;GACtB,MAAM,uDAAyB,MAAM;IACnC,QAAQ,OAAO,WAAW;IAC1B,QAAQ,SAAS;IAClB,CAAC;AAEF,OAAI,KACF,QAAO,cAAc,OAAO,cAAc,KAAK,IAAI;AAGrD,UAAO;;EAET,MAAM,UAAU;GACd,MAAM,OAAOA,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;GACpE,MAAM,gCAAeA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC;GACrD,MAAM,MAAM,MAAM,KAAK,QAAQ;GAe/B,MAAM,cAAc,MAbI,IAAIG,kCAAgB,KAAK,OAAO,SAAS;IAC/D,QAAQ,KAAK;IACb;IACA,eAAe,KAAK;IACpB,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb;IACA,SAAS;IACT;IACA;IACA,QAAQ,OAAO;IAChB,CAAC,CAEwC,MAAM,GAAG,WAAW;AAC9D,SAAM,KAAK,WAAW,GAAG,YAAY;GAerC,MAAM,iBAAiB,MAbI,IAAIC,qCAAmB,KAAK,OAAO,SAAS;IACrE,QAAQ,KAAK;IACb;IACA,eAAe,KAAK;IACpB,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb;IACA;IACA;IACA;IACA;IACD,CAAC,CAE8C,MAAM,GAAG,WAAW;AACpE,SAAM,KAAK,WAAW,GAAG,eAAe;GAExC,MAAM,cAAc,sCAAqB,KAAK,OAAO,OAAO;IAC1D,MAAM,OAAO,cAAc;IAC3B;IACA;IACA,MAAM,EACJ,WAAW,KAAK,OAAO,KACxB;IACD,QAAQ,KAAK;IACd,CAAC;AAEF,SAAM,KAAK,WAAW,GAAG,YAAY;;EAExC;EACD"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as UserPluginWithLifeCycle, n as PluginFaker, t as Options } from "./types-
|
|
1
|
+
import { a as UserPluginWithLifeCycle, n as PluginFaker, t as Options } from "./types-CZCTeVpk.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugin.d.ts
|
|
4
4
|
declare const pluginFakerName = "plugin-faker";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as UserPluginWithLifeCycle, n as PluginFaker, t as Options } from "./types-
|
|
1
|
+
import { a as UserPluginWithLifeCycle, n as PluginFaker, t as Options } from "./types-CfzJF-pQ.js";
|
|
2
2
|
|
|
3
3
|
//#region src/plugin.d.ts
|
|
4
4
|
declare const pluginFakerName = "plugin-faker";
|