UNPKG

generator-begcode

Version:

Spring Boot + Angular/React/Vue in one handy generator

74 lines (73 loc) 3.27 kB
import { createNeedleCallback } from '../../base/support/needles.js'; import { upperFirstCamelCase } from '../../../lib/utils/string.js'; import { joinCallbacks } from '../../base/support/write-files.js'; export function addRoute({ needle, route, pageTitle, title, modulePath, moduleName, component, }) { const routePath = `path: '${route}',`; const contentToAdd = ` { ${routePath}${pageTitle ? ` data: { pageTitle: '${pageTitle}' },` : ''}${title ? ` title: '${title}',` : ''} load${component ? 'Component' : 'Children'}: () => import('${modulePath}')${moduleName ? `.then(m => m.${moduleName})` : ''}, },`; return createNeedleCallback({ needle, contentToAdd, contentToCheck: routePath, }); } export function addEntitiesRoute({ application, entities }) { const { enableTranslation } = application; return joinCallbacks(...entities.map(entity => { const { i18nKeyPrefix, entityClassPlural, entityFolderName, entityFileName, entityUrl } = entity; const pageTitle = enableTranslation ? `${i18nKeyPrefix}.home.title` : entityClassPlural; const modulePath = `./${entityFolderName}/${entityFileName}.routes`; return addRoute({ needle: 'jhipster-needle-add-entity-route', route: entityUrl, modulePath, pageTitle, }); })); } export function addItemToMenu({ needle, enableTranslation, jhiPrefix, icon = 'asterisk', route, translationKey, name = '', }) { const routerLink = `routerLink="/${route}"`; const contentToAdd = ` <li> <a class="dropdown-item" ${routerLink} routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }" (click)="collapseNavbar()"> <fa-icon icon="${icon}" [fixedWidth]="true"></fa-icon> <span${enableTranslation ? ` ${jhiPrefix}Translate="${translationKey}"` : ''}>${name}</span> </a> </li>`; return createNeedleCallback({ needle, contentToAdd, contentToCheck: routerLink, }); } export const addItemToAdminMenu = (menu) => addItemToMenu({ needle: 'add-element-to-admin-menu', ...menu, }); export const addIconImport = ({ icon }) => { const iconImport = `fa${upperFirstCamelCase(icon)}`; return createNeedleCallback({ needle: 'jhipster-needle-add-icon-import', contentToCheck: new RegExp(`\\b${iconImport}\\b`), contentToAdd: (content, { indentPrefix }) => content.replace(/(\r?\n)(\s*)\/\/ jhipster-needle-add-icon-import/g, `\n${indentPrefix}${iconImport},\n${indentPrefix}// jhipster-needle-add-icon-import`), }); }; export function addToEntitiesMenu({ application, entities }) { const { enableTranslation, jhiPrefix } = application; return joinCallbacks(...entities.map(entity => { return addItemToMenu({ needle: entity.adminEntity ? 'jhipster-needle-add-element-to-admin-menu' : 'jhipster-needle-add-entity-to-menu', enableTranslation, icon: 'asterisk', route: entity.entityPage, translationKey: `global.menu.entities.${entity.entityTranslationKeyMenu}`, name: entity.entityClassHumanized, jhiPrefix, }); })); }