gen-jhipster
Version:
VHipster - Spring Boot + Angular/React/Vue in one handy generator
36 lines (35 loc) • 2.63 kB
TypeScript
import BaseApplicationGenerator from '../base-application/index.ts';
import { PRIORITY_NAMES } from '../base-application/priorities.ts';
import type { TaskTypes as ApplicationTaskTypes } from '../base-application/tasks.ts';
import type { TaskParamWithApplication } from '../base-simple-application/tasks.ts';
import type { Application as BaseEntityChangesApplication, BaseChangelog as BaseEntityChangesChangelog, Config as BaseEntityChangesConfig, Entity as BaseEntityChangesEntity, Features as BaseEntityChangesFeatures, Options as BaseEntityChangesOptions, Source as BaseEntityChangesSource } from './types.ts';
type BaseEntityChangesTaskTypes<E extends BaseEntityChangesEntity, B extends BaseEntityChangesChangelog<E>, A extends BaseEntityChangesApplication<E>, S extends BaseEntityChangesSource> = ApplicationTaskTypes<E, A, S> & {
DefaultTaskParam: {
entityChanges?: B[];
};
WritingEntitiesTaskParam: {
entityChanges?: B[];
};
PostWritingEntitiesTaskParam: {
entityChanges?: B[];
};
};
/**
* This is the base class for a generator for every generator.
*/
export default abstract class BaseEntityChangesGenerator<Entity extends BaseEntityChangesEntity = BaseEntityChangesEntity, Application extends BaseEntityChangesApplication<Entity> = BaseEntityChangesApplication<Entity>, Config extends BaseEntityChangesConfig = BaseEntityChangesConfig, Options extends BaseEntityChangesOptions = BaseEntityChangesOptions, Source extends BaseEntityChangesSource = BaseEntityChangesSource, Features extends BaseEntityChangesFeatures = BaseEntityChangesFeatures, Tasks extends BaseEntityChangesTaskTypes<Entity, BaseEntityChangesChangelog<Entity>, Application, Source> = BaseEntityChangesTaskTypes<Entity, BaseEntityChangesChangelog<Entity>, Application, Source>> extends BaseApplicationGenerator<Entity, Application, Config, Options, Source, Features, Tasks> {
recreateInitialChangelog: boolean;
private entityChanges;
abstract isChangelogNew({ entityName, changelogDate }: {
entityName: string;
changelogDate: string;
}): boolean;
protected getTaskFirstArgForPriority(priorityName: (typeof PRIORITY_NAMES)[keyof typeof PRIORITY_NAMES]): TaskParamWithApplication<Application>;
/**
* Generate changelog from differences between the liquibase entity and current entity.
*/
protected generateIncrementalChanges({ application, entities: paramEntities, }: Pick<Tasks['DefaultTaskParam'], 'application' | 'entities'>): BaseEntityChangesChangelog<Entity>[];
private hasAnyDefaultValue;
private doDefaultValuesDiffer;
}
export {};