@g1cloud/entity-modeler-next 5.0.0-alpha.21 → 5.0.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/scaffoldJava.d.ts +42 -0
- package/dist/entity-modeler.js +7937 -7535
- package/dist/entity-modeler.umd.cjs +23 -17
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LogicalModel, ModelId, SuperClassCatalog, EmbeddableCatalog } from './types';
|
|
2
|
+
import { JavaTypeDef } from './javaTypes';
|
|
3
|
+
export interface ScaffoldOptions {
|
|
4
|
+
/** 저장값→소스 타입 역해소 카탈로그. 미주입 시 lib 내장 `JAVA_TYPES` 폴백(호스트 javaTypeCatalog 미러). */
|
|
5
|
+
javaTypeCatalog?: readonly JavaTypeDef[];
|
|
6
|
+
/** 임베더블 타입 해소용(EMBED_PREDEF 필드 타입·클래스명). 미주입 시 모델 type 폴백 + fillIn. */
|
|
7
|
+
embeddableCatalog?: EmbeddableCatalog;
|
|
8
|
+
/**
|
|
9
|
+
* `extends <superClass>` + 상속 컬럼 인덱스 해소용. 핸드오프 O3 — `SuperClassDef.packageName`이
|
|
10
|
+
* "코드젠 forward 슬롯"으로 예약돼 있고 이 emitter가 그 첫 소비처다. 미주입 시 상속 컬럼/extends 미방출.
|
|
11
|
+
*/
|
|
12
|
+
superClassCatalog?: SuperClassCatalog;
|
|
13
|
+
/**
|
|
14
|
+
* Lombok 방출 모드(기본 `true` — 모델러 사용 프로젝트가 사실상 전부 Lombok). true면 **필드 단위**
|
|
15
|
+
* `@Getter`(스칼라·단일 임베드·owner 관계, 대형 엔티티 SalesOrch류 관례) + 클래스 `@NoArgsConstructor
|
|
16
|
+
* (access = AccessLevel.PROTECTED)`를 방출하고 수동 getter·protected 생성자를 생략한다. **컬렉션 관계**
|
|
17
|
+
* getter는 @Getter가 raw 컬렉션을 반환해 애그리거트 보호가 깨지므로 예외 — 수동 `Collections.unmodifiable…`
|
|
18
|
+
* 유지(@Getter 미부착). **@Version**은 JPA 관리 내부 필드라 getter 제외(실측 37/38 무 getter).
|
|
19
|
+
* `{Entity}PK`는 필드 @Getter만, equals/hashCode·생성자는 수동. `false` = 수동 전량(생성기/코퍼스 패리티,
|
|
20
|
+
* 바이트 골든 앵커 모드 — @Version getter 포함).
|
|
21
|
+
*/
|
|
22
|
+
lombok?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ScaffoldedEntity {
|
|
25
|
+
modelId: ModelId;
|
|
26
|
+
/** `{ClassName}.java` */
|
|
27
|
+
fileName: string;
|
|
28
|
+
/** 컴파일 가능 최소 골격 자바 소스(`// TODO [손채움]` 포함). */
|
|
29
|
+
source: string;
|
|
30
|
+
/** 사람이 채울 지점 목록(라벨) — reconcile 보고용. */
|
|
31
|
+
fillIns: string[];
|
|
32
|
+
/** 신규 엔티티 경로에서만 write(기존엔 재추가 금지, §4.4) — reconcile 판단. */
|
|
33
|
+
repository?: {
|
|
34
|
+
fileName: string;
|
|
35
|
+
source: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 대상 엔티티들을 JPA 자바 소스로 렌더한다. `logical`은 참조 폐포(FK 대상 등) 해소를 위해 전체를 받고,
|
|
40
|
+
* `targetIds`가 실제 산출(파일 생성) 스코프다. 스코프 밖 엔티티는 읽기(폐포)에만 쓰이고 산출되지 않는다.
|
|
41
|
+
*/
|
|
42
|
+
export declare function scaffoldEntityJava(logical: LogicalModel, targetIds: readonly ModelId[], opts?: ScaffoldOptions): ScaffoldedEntity[];
|