-
-
Notifications
You must be signed in to change notification settings - Fork 131
/
Copy pathgenerators.js
40 lines (37 loc) · 1.29 KB
/
generators.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import fs from "fs";
import NextGenerator from "./generators/NextGenerator.js";
import NuxtGenerator from "./generators/NuxtGenerator.js";
import ReactGenerator from "./generators/ReactGenerator.js";
import ReactNativeGenerator from "./generators/ReactNativeGenerator.js";
import TypescriptInterfaceGenerator from "./generators/TypescriptInterfaceGenerator.js";
import VueGenerator from "./generators/VueGenerator.js";
import VuetifyGenerator from "./generators/VuetifyGenerator.js";
import QuasarGenerator from "./generators/QuasarGenerator.js";
function wrap(cl) {
return ({ hydraPrefix, templateDirectory }) =>
new cl({ hydraPrefix, templateDirectory });
}
export default async function generators(generator = "react") {
if (fs.existsSync(generator)) {
const gen = await import(generator);
return wrap(gen.default);
}
switch (generator) {
case "next":
return wrap(NextGenerator);
case "nuxt":
return wrap(NuxtGenerator);
case "react":
return wrap(ReactGenerator);
case "react-native":
return wrap(ReactNativeGenerator);
case "typescript":
return wrap(TypescriptInterfaceGenerator);
case "vue":
return wrap(VueGenerator);
case "vuetify":
return wrap(VuetifyGenerator);
case "quasar":
return wrap(QuasarGenerator);
}
}