gen-jhipster
Version:
VHipster - Spring Boot + Angular/React/Vue in one handy generator
167 lines (166 loc) • 9.07 kB
TypeScript
import BaseEntityChangesGenerator from '../base-entity-changes/index.ts';
import type { BaseChangelog } from '../base-entity-changes/types.ts';
import type { Application as LiquibaseApplication, Config as LiquibaseConfig, Entity as LiquibaseEntity, Features as LiquibaseFeatures, Field as LiquibaseField, Options as LiquibaseOptions, Source as LiquibaseSource } from './types.ts';
export default class LiquibaseGenerator<Entity extends LiquibaseEntity = LiquibaseEntity<LiquibaseField>, Application extends LiquibaseApplication<Entity> = LiquibaseApplication<Entity>> extends BaseEntityChangesGenerator<Entity, Application, LiquibaseConfig, LiquibaseOptions, LiquibaseSource, LiquibaseFeatures> {
[BaseEntityChangesGenerator.PREPARING]: Record<"preparing" | "addNeedles" | "liquibaseNeo4j" | "checkDatabaseCompatibility", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
source: LiquibaseSource;
} & {
application: Application;
} & import("../base-simple-application/tasks.js").ApplicationDefaultsTaskParam<Application>>>;
[BaseEntityChangesGenerator.PREPARING_EACH_ENTITY_FIELD]: Record<"prepareEntityField" | "validateConsistencyOfField", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityFieldTaskParam<Entity, Application>>>;
[BaseEntityChangesGenerator.PREPARING_EACH_ENTITY_RELATIONSHIP]: Record<"prepareEntityRelationship", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityRelationshipTaskParam<Entity, Application>>>;
[BaseEntityChangesGenerator.POST_PREPARING_EACH_ENTITY]: Record<"postPrepareEntity", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityTaskParam<Entity, Application>>>;
[BaseEntityChangesGenerator.DEFAULT]: Record<"calculateChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
[BaseEntityChangesGenerator.WRITING]: Record<"writing", import("../base-core/types.js").GenericTask<any, import("../base-simple-application/tasks.js").TaskParamWithApplication<Application>>>;
[BaseEntityChangesGenerator.WRITING_ENTITIES]: Record<"writeChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
[BaseEntityChangesGenerator.POST_WRITING]: Record<"customizeMaven" | "customizeSpringLogs" | "injectGradle", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
source: LiquibaseSource;
} & {
application: Application;
}>>;
[BaseEntityChangesGenerator.POST_WRITING_ENTITIES]: Record<"postWriteChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
source: LiquibaseSource;
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
numberOfRows: number;
databaseChangelogs: BaseChangelog<Entity>[];
injectBuildTool: boolean;
injectLogs: boolean;
beforeQueue(): Promise<void>;
get preparing(): Record<"preparing" | "addNeedles" | "liquibaseNeo4j" | "checkDatabaseCompatibility", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
source: LiquibaseSource;
} & {
application: Application;
} & import("../base-simple-application/tasks.js").ApplicationDefaultsTaskParam<Application>>>;
get preparingEachEntityField(): Record<"prepareEntityField" | "validateConsistencyOfField", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityFieldTaskParam<Entity, Application>>>;
get preparingEachEntityRelationship(): Record<"prepareEntityRelationship", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityRelationshipTaskParam<Entity, Application>>>;
get postPreparingEachEntity(): Record<"postPrepareEntity", import("../base-core/types.js").GenericTask<any, import("../base-application/tasks.js").PreparingEachEntityTaskParam<Entity, Application>>>;
get default(): Record<"calculateChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
get writing(): Record<"writing", import("../base-core/types.js").GenericTask<any, import("../base-simple-application/tasks.js").TaskParamWithApplication<Application>>>;
get writingEntities(): Record<"writeChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
get postWriting(): Record<"customizeMaven" | "customizeSpringLogs" | "injectGradle", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
source: LiquibaseSource;
} & {
application: Application;
}>>;
get postWritingEntities(): Record<"postWriteChangelogs", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl & {
application: Application;
} & {
entities: Entity[];
} & {
source: LiquibaseSource;
} & {
entityChanges?: BaseChangelog<Entity>[] | undefined;
}>>;
isChangelogNew({ entityName, changelogDate }: {
entityName: string;
changelogDate: string;
}): boolean;
/**
* Write files for new entities.
*/
_writeLiquibaseFiles({ context: writeContext, changelogData }: {
context: any;
changelogData: any;
}): Promise<any[]>;
/**
* Write files for new entities.
*/
_addLiquibaseFilesReferences({ entity, databaseChangelog, source, }: {
entity: Entity;
databaseChangelog: BaseChangelog<Entity>;
source: LiquibaseSource;
}): void;
/**
* Write files for updated entities.
*/
_writeUpdateFiles({ context: writeContext, changelogData }: {
context: any;
changelogData: any;
}): Promise<any[]>;
private _requiresConstraintUpdates;
private _isBasicEntityUpdate;
private _requiresWritingFakeData;
/**
* Write files for updated entities.
*/
_addUpdateFilesReferences({ entity, databaseChangelog, changelogData, source, }: {
entity: Entity;
databaseChangelog: BaseChangelog<Entity>;
changelogData: any;
source: LiquibaseSource;
}): void;
/**
* @private
* Format As Liquibase Remarks
*
* @param {string} text - text to format
* @param {boolean} addRemarksTag - add remarks tag
* @returns formatted liquibase remarks
*/
formatAsLiquibaseRemarks(text: string, addRemarksTag?: boolean): string;
/**
* @private
* Create the fitting liquibase default value attribute for a field.
* @param field
* @param leadingWhitespace
* @returns
*/
createDefaultValueLiquibaseAttribute(field: LiquibaseField, leadingWhitespace?: boolean): string;
prepareChangelog({ databaseChangelog, application }: {
databaseChangelog: BaseChangelog<Entity>;
application: Application;
}): BaseChangelog<Entity> | undefined;
writeChangelog({ databaseChangelog }: {
databaseChangelog: BaseChangelog<Entity>;
}): Promise<any[]> | undefined;
/**
* @private
* get a foreign key constraint name for tables in JHipster preferred style.
*
* @param {string} entityName - name of the entity
* @param {string} relationshipName - name of the related entity
* @param {string} prodDatabaseType - database type
* @param {boolean} noSnakeCase - do not convert names to snakecase
*/
getFKConstraintName(entityName: string, relationshipName: string, prodDatabaseType: string, noSnakeCase: boolean): string;
/**
* @private
* get a unique constraint name for tables in JHipster preferred style.
*
* @param {string} entityName - name of the entity
* @param {string} columnName - name of the column
* @param {string} prodDatabaseType - database type
* @param {boolean} noSnakeCase - do not convert names to snakecase
*/
getUXConstraintName(entityName: string, columnName: string, prodDatabaseType: string, noSnakeCase: boolean): string;
}