@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
125 lines (124 loc) • 3.18 kB
TypeScript
export interface ProjectModel {
project: ProjectInfo;
entities: Entity[] | {
[entityName: string]: Entity;
};
baseProjectEntities?: Entity[] | {
[entityName: string]: Entity;
};
enums: Enum[];
views: View[];
restQueries: RestQuery[];
restServices: RestService[];
}
export interface ProjectInfo {
name: string;
namespace: string;
modulePrefix: string;
locales: Locale[];
restClientId?: string;
restClientSecret?: string;
}
export declare type InheritanceType = 'SINGLE_TABLE' | 'TABLE_PER_CLASS' | 'JOINED';
export interface Entity {
name?: string;
className: string;
packageName: string;
dataStore?: string;
table?: string;
parentClassName: string;
discriminator?: string;
updatable: boolean;
creatable: boolean;
hasUuid: boolean;
softDelete: boolean;
versioned: boolean;
reference?: string;
parentPackage: string;
embeddable: boolean;
persistentEntity: boolean;
replaceParent: boolean;
systemLevel: boolean;
namePattern?: string;
mappedSuperclass: boolean;
fqn: string;
imported: boolean;
attributes: EntityAttribute[];
inheritanceType?: InheritanceType;
idAttributeName?: string;
}
export interface Datatype {
packageName: string;
className: string;
fqn: string;
label: string;
entityName?: string;
}
export interface EnumValue {
id: string;
name: string;
}
export interface Enum extends Datatype {
values: EnumValue[];
}
export declare type MappingType = 'DATATYPE' | 'ENUM' | 'ASSOCIATION' | 'COMPOSITION' | 'EMBEDDED';
export declare type TemporalType = 'DATE' | 'TIME' | 'TIMESTAMP';
export declare type Cardinality = 'ONE_TO_ONE' | 'ONE_TO_MANY' | 'MANY_TO_ONE' | 'MANY_TO_MANY';
export interface EntityAttribute {
name: string;
type: Datatype;
mappingType: MappingType;
cardinality?: Cardinality;
readOnly: boolean;
column: string;
mandatory: boolean;
unique: boolean;
length: number;
mappedBy?: string;
transient: boolean;
temporalType?: TemporalType;
}
export interface View {
name: string;
entity: string;
classFqn: string;
parentName: string;
overwrite: boolean;
systemProperties: boolean;
properties: ViewProperty[];
allProperties: ViewProperty[];
}
export interface ViewProperty {
name: string;
entity?: string;
classFqn?: string;
lazy?: boolean;
}
export declare type BuiltinView = '_local' | '_minimal' | '_base';
export interface Locale {
code: string;
caption: string;
}
export interface RestQuery {
name: string;
jpql: string;
entity: string;
view: string;
params: RestParam[];
}
export interface RestParam {
name: string;
type: string;
}
export interface RestService {
name: string;
methods: RestServiceMethod[];
}
export interface RestServiceMethod {
name: string;
params: RestParam[];
}
export declare const FILE_DESCRIPTOR_FQN = "com.haulmont.cuba.core.entity.FileDescriptor";
export declare function getEntitiesArray(entities: Entity[] | {
[entityName: string]: Entity;
} | undefined): Entity[];