UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

117 lines (103 loc) 2.69 kB
import fs from "fs"; import { expandToString } from "../../../../util/template-string.js"; import path from "path"; export function generate(project_abstraction, target_folder) { fs.writeFileSync(path.join(target_folder, 'README.md'), generateREDME()); fs.writeFileSync(path.join(target_folder, 'index.ts'), generateIndex()); fs.writeFileSync(path.join(target_folder, 'pinia.ts'), generatePinia()); fs.writeFileSync(path.join(target_folder, 'router.ts'), generateRouter()); fs.writeFileSync(path.join(target_folder, 'vuetify.ts'), generateVuetify()); } function generateREDME() { return expandToString ` # Plugins Plugins are a way to extend the functionality of your Vue application. Use this folder for registering plugins that you want to use globally. `; } function generateIndex() { return expandToString ` /** * plugins/index.ts * * Automatically included in './src/main.ts' */ // Plugins // import vuetify from './vuetify' import router from './router' import pinia from './pinia' // Types import type { App } from 'vue' export function registerPlugins (app: App) { // app.use(vuetify) app.use(router) app.use(pinia) } `; } function generatePinia() { return expandToString ` import { createPinia } from 'pinia' const pinia = createPinia() export default pinia `; } function generateRouter() { return expandToString ` import { createWebHistory, createRouter, type RouteRecordRaw } from 'vue-router' import { routes as rootRoutes } from '@/routes' import { routes as moduleRoutes } from '@/modules' import PlainLayout from '@/layouts/NewPlain.vue' import DefaultLayout from '@/layouts/NewDefault.vue' import { useAuthStore } from '@/stores/auth' const routes: RouteRecordRaw[] = [ { path: '/', component: PlainLayout, children: rootRoutes, }, { path: '/', component: DefaultLayout, children: moduleRoutes, } ] const router = createRouter({ history: createWebHistory(), routes, }) router.beforeEach((to) => { const auth = useAuthStore() if (to.meta?.requiresAuth) { if (auth.estaLogado()) { return true } else { return { name: 'login' } } } else { return true } }) export default router `; } function generateVuetify() { return expandToString ` /** * plugins/vuetify.ts * * Framework documentation: 'https://vuetifyjs.com' */ // Styles import '@mdi/font/css/materialdesignicons.css' import 'vuetify/styles' // Composables import { createVuetify } from 'vuetify' // https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides export default createVuetify({ theme: { defaultTheme: 'dark', }, }) `; } //# sourceMappingURL=generate.js.map