generator-begcode
Version:
Spring Boot + Angular/React/Vue in one handy generator
88 lines (87 loc) • 3.77 kB
JavaScript
import { asWriteFilesSection } from '../base-application/support/index.js';
import { LOCAL_BLUEPRINT_OPTION } from './constants.js';
export const files = asWriteFilesSection({
baseFiles: [
{
condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION],
templates: [
'.github/workflows/generator.yml',
'.gitignore.jhi.blueprint',
'.prettierignore.jhi.blueprint',
{ sourceFile: 'eslint.config.js.jhi.blueprint', destinationFile: ctx => `${ctx.eslintConfigFile}.jhi.blueprint` },
'README.md',
'tsconfig.json',
'vitest.config.ts',
'vitest.test-setup.ts',
'.blueprint/cli/commands.mjs',
'.blueprint/generate-sample/command.mjs',
'.blueprint/generate-sample/generator.mjs',
'.blueprint/generate-sample/index.mjs',
'cli/cli.cjs',
{ sourceFile: 'cli/cli-customizations.cjs', override: false },
],
},
{
condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows,
templates: [
'.blueprint/github-build-matrix/command.mjs',
'.blueprint/github-build-matrix/generator.mjs',
'.blueprint/github-build-matrix/generator.spec.mjs',
'.blueprint/github-build-matrix/index.mjs',
],
},
{
condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows && !ctx.skipWorkflows,
templates: ['.github/workflows/build-cache.yml', '.github/workflows/samples.yml'],
},
{
condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && !ctx.sampleWritten,
templates: ['.blueprint/generate-sample/templates/samples/sample.jdl'],
},
{
condition: ctx => ctx.commands.length > 0,
templates: ['cli/commands.cjs'],
},
],
});
export const generatorFiles = asWriteFilesSection({
generator: [
{
path: 'generators/generator',
to: ctx => `${ctx.application.blueprintsPath}${ctx.generator}`,
templates: [
{ sourceFile: 'index.mjs', destinationFile: ctx => `index.${ctx.blueprintMjsExtension}` },
{
sourceFile: 'command.mjs',
destinationFile: ctx => `command.${ctx.blueprintMjsExtension}`,
override: data => !data.ignoreExistingGenerators,
},
{
sourceFile: 'generator.mjs.jhi',
destinationFile: ctx => `generator.${ctx.blueprintMjsExtension}.jhi`,
override: data => !data.ignoreExistingGenerators,
},
{
condition: data => !data.generator.startsWith('entity') && !data.application[LOCAL_BLUEPRINT_OPTION],
sourceFile: 'generator.spec.mjs',
destinationFile: data => `generator.spec.${data.blueprintMjsExtension}`,
override: data => !data.ignoreExistingGenerators,
},
],
},
{
path: 'generators/generator',
to: ctx => `${ctx.application.blueprintsPath}${ctx.generator}`,
condition(ctx) {
return !ctx.written && ctx.priorities.find(priority => priority.name === 'writing');
},
transform: false,
templates: [
{
sourceFile: 'templates/template-file.ejs',
destinationFile: ctx => `templates/template-file-${ctx.generator}.ejs`,
},
],
},
],
});