UNPKG

generator-begcode

Version:

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

217 lines (192 loc) 7.4 kB
import type { BaseFeatures, BaseOptions } from 'yeoman-generator'; import type CoreGenerator from '../base-core/index.js'; import type { ApplicationType } from '../../lib/types/application/application.js'; import type { Entity } from '../../lib/types/application/entity.js'; import type { ApplicationOptions } from '../../lib/types/application/options.js'; import type { JDLApplicationConfig } from '../../lib/jdl/core/types/parsing.js'; import type { JHipsterConfigs } from '../../lib/command/types.js'; export type ApplicationWithConfig = { config: Record<string, string | boolean | number | string[]>; entities: Record<string, unknown>; }; export type JHipsterGeneratorOptions = BaseOptions & ApplicationOptions & { /* cli options */ commandName: string; programName: string; positionalArguments?: unknown[]; createEnvBuilder?: any; /** @experimental */ jdlDefinition?: JDLApplicationConfig; /** @experimental */ commandsConfigs?: JHipsterConfigs; /* yeoman options */ skipYoResolve?: boolean; sharedData: any; force?: boolean; /* base options */ applicationId?: string; applicationWithConfig?: ApplicationWithConfig; /** * @deprecated */ applicationWithEntities?: any; reproducibleTests?: boolean; skipPriorities?: string[]; skipWriting?: boolean; entities?: string[]; jhipsterContext?: any; composeWithLocalBlueprint?: boolean; composeWithPortableBlueprint?: boolean; portableBlueprints?: string[]; /** boostrap options */ applyDefaults?: <const data = any>(data: data) => data; /* generate-blueprint options */ localBlueprint?: boolean; /* jdl generator options */ jdlFile?: string; inputFile?: string; /* application options */ db?: string; /* workspaces options */ generateApplications?: boolean; generateWorkspaces?: boolean; generateWith?: string; monorepository?: boolean; workspaces?: boolean; workspacesFolders?: string[]; // add by begcode start skipInitJdl?: boolean; jsonFiles?: string[]; pdManFile?: string; ndmFile?: string; // add by begcode end }; export type JHipsterGeneratorFeatures = BaseFeatures & { priorityArgs?: boolean; /** * Wraps write context and shows removed fields and replacements if exists. */ jhipster7Migration?: boolean | 'verbose' | 'silent'; sbsBlueprint?: boolean; checkBlueprint?: boolean; /** * Disable skipPriorities flag. */ disableSkipPriorities?: boolean; /** * Compose with bootstrap generator. * * Bootstrap generator adds support to: * - multistep templates. * - sort jhipster configuration json. * - force jhipster configuration commit. * - earlier prettier config commit for correct prettier. * - prettier and eslint. */ jhipsterBootstrap?: boolean; /** * Store current version at .yo-rc.json. * Defaults to true. */ storeJHipsterVersion?: boolean; /** * Create transforms for commit. */ commitTransformFactory?: () => any; /** * Queue tasks to handle command definitions. * - parse options and configurations from cli. * - prompt configurations. * - configure configurations. * - compose with generators defined in command. * - load configurations. * * Defaults to true for built-in generator-jhipster generators and false for blueprints. */ queueCommandTasks?: boolean; }; export type NeedleCallback = (content: string) => string; export type EditFileCallback<Generator = CoreGenerator> = (this: Generator, content: string, filePath: string) => string; export type EditFileOptions = { create?: boolean; ignoreNonExisting?: boolean | string; assertModified?: boolean }; export type CascatedEditFileCallback<Generator = CoreGenerator> = ( ...callbacks: EditFileCallback<Generator>[] ) => CascatedEditFileCallback<Generator>; type DataCallback<Type, DataType = ApplicationType<Entity>, Generator = CoreGenerator> = Type | ((this: Generator, data: DataType) => Type); export type WriteFileTemplate<DataType = ApplicationType<Entity>, Generator = CoreGenerator> = | string | ((this: Generator, data: DataType, filePath: string) => string) | { condition?: DataCallback<boolean, DataType, Generator>; /** source file */ sourceFile?: DataCallback<string, DataType, Generator>; /** destination file */ destinationFile?: DataCallback<string, DataType, Generator>; /** @deprecated, use sourceFile instead */ file?: DataCallback<string, DataType, Generator>; /** @deprecated, use destinationFile instead */ renameTo?: string | ((this: Generator, data: DataType, filePath: string) => string); /** transforms (files processing) to be applied */ transform?: boolean | (() => string)[]; /** binary files skips ejs render, ejs extension and file transform */ binary?: boolean; /** ejs options. Refer to https://ejs.co/#docs */ options?: Record<string, object>; override?: DataCallback<boolean, DataType, Generator>; }; export type WriteFileBlock<DataType = ApplicationType<Entity>, Generator = CoreGenerator> = { /** relative path were sources are placed */ from?: ((this: Generator, data: DataType) => string) | string; /** relative path were the files should be written, fallbacks to from/path */ to?: ((this: Generator, data: DataType, filePath: string) => string) | string; path?: ((this: Generator, data: DataType) => string) | string; /** generate destinationFile based on sourceFile */ renameTo?: ((this: Generator, data: DataType, filePath: string) => string) | string; /** condition to enable to write the block */ condition?: (this: Generator, data: DataType) => boolean | undefined; /** transforms (files processing) to be applied */ transform?: boolean | (() => string)[]; override?: boolean | ((data: DataType) => boolean); templates: WriteFileTemplate<DataType, Generator>[]; }; export type WriteFileSection<DataType = ApplicationType<Entity>, Generator = CoreGenerator> = Record< string, WriteFileBlock<DataType, Generator>[] >; export type WriteFileOptions<DataType = ApplicationType<Entity>, Generator = CoreGenerator> = { /** transforms (files processing) to be applied */ transform?: EditFileCallback<Generator>[]; /** context to be used as template data */ context?: any; /** config passed to render methods */ renderOptions?: Record<string, object>; /** * path(s) to look for templates. * Single absolute path or relative path(s) between the templates folder and template path. */ rootTemplatesPath?: string | string[]; /** @experimental Customize templates sourceFile and destinationFile */ customizeTemplatePath?: (file: { sourceFile: string; resolvedSourceFile: string; destinationFile: string; }) => undefined | { sourceFile: string; resolvedSourceFile: string; destinationFile: string }; } & ( | { sections: WriteFileSection<DataType, Generator>; } | { /** templates to be written */ templates: WriteFileTemplate<DataType, Generator>[]; } | { /** blocks to be written */ blocks: WriteFileBlock<DataType, Generator>[]; } ); export type ValidationResult = { debug?: unknown; info?: string | string[]; warning?: string | string[]; error?: string | string[]; };