@simplysm/orm-common 14.0.16 → 14.0.18

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.
Files changed (75) hide show
  1. package/README.md +25 -19
  2. package/dist/db-context.d.ts +133 -0
  3. package/dist/db-context.d.ts.map +1 -0
  4. package/dist/db-context.js +325 -0
  5. package/dist/db-context.js.map +1 -0
  6. package/dist/ddl/initialize.d.ts +5 -3
  7. package/dist/ddl/initialize.d.ts.map +1 -1
  8. package/dist/ddl/initialize.js +39 -32
  9. package/dist/ddl/initialize.js.map +1 -1
  10. package/dist/exec/executable.js +1 -1
  11. package/dist/exec/executable.js.map +1 -1
  12. package/dist/exec/queryable.js +2 -2
  13. package/dist/exec/queryable.js.map +1 -1
  14. package/dist/exec/search-parser.d.ts.map +1 -1
  15. package/dist/exec/search-parser.js +2 -1
  16. package/dist/exec/search-parser.js.map +1 -1
  17. package/dist/expr/expr.d.ts +2 -2
  18. package/dist/expr/expr.js +2 -2
  19. package/dist/index.d.ts +1 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/query-builder/mssql/mssql-expr-renderer.js +1 -1
  24. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
  25. package/dist/query-builder/mysql/mysql-expr-renderer.js +1 -1
  26. package/dist/query-builder/mysql/mysql-query-builder.js +1 -1
  27. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
  28. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +7 -0
  29. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  30. package/dist/query-builder/postgresql/postgresql-query-builder.js +86 -16
  31. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
  32. package/dist/schema/factory/relation-builder.d.ts +44 -67
  33. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  34. package/dist/schema/factory/relation-builder.js +37 -78
  35. package/dist/schema/factory/relation-builder.js.map +1 -1
  36. package/dist/schema/view-builder.d.ts +1 -1
  37. package/dist/schema/view-builder.d.ts.map +1 -1
  38. package/dist/schema/view-builder.js +0 -2
  39. package/dist/schema/view-builder.js.map +1 -1
  40. package/dist/types/column.js +1 -1
  41. package/dist/types/column.js.map +1 -1
  42. package/dist/types/db-context-def.d.ts +2 -42
  43. package/dist/types/db-context-def.d.ts.map +1 -1
  44. package/dist/utils/result-parser.js +31 -23
  45. package/dist/utils/result-parser.js.map +1 -1
  46. package/docs/core.md +110 -50
  47. package/docs/schema-builders.md +13 -19
  48. package/docs/types.md +2 -41
  49. package/package.json +3 -3
  50. package/src/db-context.ts +455 -0
  51. package/src/ddl/initialize.ts +49 -37
  52. package/src/exec/executable.ts +1 -1
  53. package/src/exec/queryable.ts +2 -2
  54. package/src/exec/search-parser.ts +2 -1
  55. package/src/expr/expr.ts +2 -2
  56. package/src/index.ts +2 -3
  57. package/src/query-builder/mssql/mssql-expr-renderer.ts +1 -1
  58. package/src/query-builder/mysql/mysql-expr-renderer.ts +1 -1
  59. package/src/query-builder/mysql/mysql-query-builder.ts +1 -1
  60. package/src/query-builder/postgresql/postgresql-query-builder.ts +93 -14
  61. package/src/schema/factory/relation-builder.ts +56 -87
  62. package/src/schema/view-builder.ts +1 -3
  63. package/src/types/column.ts +1 -1
  64. package/src/types/db-context-def.ts +2 -60
  65. package/src/utils/result-parser.ts +29 -22
  66. package/dist/create-db-context.d.ts +0 -34
  67. package/dist/create-db-context.d.ts.map +0 -1
  68. package/dist/create-db-context.js +0 -329
  69. package/dist/create-db-context.js.map +0 -1
  70. package/dist/define-db-context.d.ts +0 -15
  71. package/dist/define-db-context.d.ts.map +0 -1
  72. package/dist/define-db-context.js +0 -12
  73. package/dist/define-db-context.js.map +0 -1
  74. package/src/create-db-context.ts +0 -409
  75. package/src/define-db-context.ts +0 -28
package/README.md CHANGED
@@ -16,10 +16,13 @@ pnpm add @simplysm/orm-common
16
16
 
17
17
  | Export | Type | Description |
18
18
  |--------|------|-------------|
19
- | [`defineDbContext`](./docs/core.md#definedbcontext) | Function | Create a DbContext definition (blueprint) with tables, views, procedures, and migrations |
20
- | [`createDbContext`](./docs/core.md#createdbcontext) | Function | Create a DbContext instance from a definition and executor |
19
+ | [`DbContext`](./docs/core.md#dbcontext) | Abstract Class | Base class for database contexts with connection, transaction, DDL, and initialization |
20
+ | [`SD_BUILDER`](./docs/core.md#sd_builder) | Symbol | Internal marker for queryable/executable builder identification |
21
21
  | [`DbTransactionError`](./docs/core.md#dbtransactionerror) | Class | Standardized database transaction error with DBMS-independent error codes |
22
22
  | [`DbErrorCode`](./docs/core.md#dberrorcode) | Enum | Transaction error codes |
23
+ | [`DbContextBase`](./docs/core.md#dbcontextbase) | Interface | Core interface for Queryable/Executable internal use |
24
+ | [`DbContextDdlMethods`](./docs/core.md#dbcontextddlmethods) | Interface | DDL execution and QueryDef generator methods |
25
+ | [`DbContextStatus`](./docs/core.md#dbcontextstatus) | Type | Connection status: "ready", "connect", "transact" |
23
26
  | [`_Migration`](./docs/core.md#_migration) | Constant | System migration table definition (TableBuilder) |
24
27
 
25
28
  ### Queryable / Executable
@@ -64,10 +67,10 @@ pnpm add @simplysm/orm-common
64
67
  | [`createColumnFactory`](./docs/schema-builders.md#createcolumnfactory) | Function | Column type factory |
65
68
  | [`IndexBuilder`](./docs/schema-builders.md#indexbuilder) | Class | Index definition builder |
66
69
  | [`createIndexFactory`](./docs/schema-builders.md#createindexfactory) | Function | Index factory |
67
- | [`ForeignKeyBuilder`](./docs/schema-builders.md#foreignkeybuilder) | Class | FK relation builder (N:1) |
68
- | [`ForeignKeyTargetBuilder`](./docs/schema-builders.md#foreignkeytargetbuilder) | Class | FK reverse-reference builder (1:N/1:1) |
69
- | [`RelationKeyBuilder`](./docs/schema-builders.md#relationkeybuilder) | Class | Logical relation builder (no DB FK) |
70
- | [`RelationKeyTargetBuilder`](./docs/schema-builders.md#relationkeytargetbuilder) | Class | Logical reverse-reference builder |
70
+ | [`ForeignKeyBuilder`](./docs/schema-builders.md#foreignkeybuilder) | Class | FK relation builder (N:1, configured via factory opts) |
71
+ | [`ForeignKeyTargetBuilder`](./docs/schema-builders.md#foreignkeytargetbuilder) | Class | FK reverse-reference builder (1:N/1:1, configured via factory opts) |
72
+ | [`RelationKeyBuilder`](./docs/schema-builders.md#relationkeybuilder) | Class | Logical relation builder (no DB FK, configured via factory opts) |
73
+ | [`RelationKeyTargetBuilder`](./docs/schema-builders.md#relationkeytargetbuilder) | Class | Logical reverse-reference builder (configured via factory opts) |
71
74
  | [`createRelationFactory`](./docs/schema-builders.md#createrelationfactory) | Function | Relation factory |
72
75
 
73
76
  ### Query Builder & Result Parsing
@@ -89,7 +92,6 @@ pnpm add @simplysm/orm-common
89
92
 
90
93
  See [Types documentation](./docs/types.md) for all type exports including:
91
94
  - Database: `Dialect`, `dialects`, `IsolationLevel`, `DataRecord`, `DbContextExecutor`, `ResultMeta`, `Migration`, `QueryBuildResult`
92
- - DbContext: `DbContextDef`, `DbContextBase`, `DbContextStatus`, `DbContextInstance`, `DbContextConnectionMethods`, `DbContextDdlMethods`
93
95
  - Column: `DataType`, `ColumnPrimitive`, `ColumnPrimitiveStr`, `ColumnPrimitiveMap`, `ColumnMeta`, `dataTypeStrToColumnPrimitiveStr`, `inferColumnPrimitiveStr`, `InferColumnPrimitiveFromDataType`
94
96
  - Column Builder: `ColumnBuilderRecord`, `InferColumns`, `InferColumnExprs`, `InferInsertColumns`, `InferUpdateColumns`, `RequiredInsertKeys`, `OptionalInsertKeys`, `DataToColumnBuilderRecord`
95
97
  - Relation: `RelationBuilderRecord`, `InferDeepRelations`, `ExtractRelationTarget`, `ExtractRelationTargetResult`
@@ -101,10 +103,9 @@ See [Types documentation](./docs/types.md) for all type exports including:
101
103
  ### Define Schema and DbContext
102
104
 
103
105
  ```typescript
104
- import { Table, defineDbContext, createDbContext, expr } from "@simplysm/orm-common";
106
+ import { Table, DbContext, expr } from "@simplysm/orm-common";
105
107
 
106
108
  const User = Table("User")
107
- .database("mydb")
108
109
  .columns((c) => ({
109
110
  id: c.bigint().autoIncrement(),
110
111
  name: c.varchar(100),
@@ -114,12 +115,18 @@ const User = Table("User")
114
115
  .primaryKey("id")
115
116
  .indexes((i) => [i.index("email").unique()])
116
117
  .relations((r) => ({
117
- company: r.foreignKey(["companyId"], () => Company),
118
+ company: r.foreignKey(["companyId"], () => Company, { description: "Company" }),
118
119
  posts: r.foreignKeyTarget(() => Post, "author"),
120
+ topPost: r.foreignKeyTarget(() => Post, "author", { single: true, description: "Top post" }),
119
121
  }));
120
122
 
121
- const MyDb = defineDbContext({ tables: { user: User, post: Post, company: Company } });
122
- const db = createDbContext(MyDb, executor, { database: "mydb" });
123
+ class MyDb extends DbContext {
124
+ user = this.queryable(User);
125
+ post = this.queryable(Post);
126
+ company = this.queryable(Company);
127
+ }
128
+
129
+ const db = new MyDb(executor, { database: "mydb" });
123
130
  ```
124
131
 
125
132
  ### Query Data
@@ -127,8 +134,8 @@ const db = createDbContext(MyDb, executor, { database: "mydb" });
127
134
  ```typescript
128
135
  await db.connect(async () => {
129
136
  const users = await db.user()
130
- .where((u) => [expr.eq(u.status, "active")])
131
- .orderBy((u) => u.name)
137
+ .where((u) => [expr.eq(u.name, "Alice")])
138
+ .orderBy((u) => [u.name])
132
139
  .execute();
133
140
 
134
141
  const posts = await db.post().include((p) => p.author).execute();
@@ -137,7 +144,7 @@ await db.connect(async () => {
137
144
 
138
145
  await db.user()
139
146
  .where((u) => [expr.eq(u.id, 1)])
140
- .update(() => ({ name: expr.val("string", "Updated") }));
147
+ .update({ name: "Updated" });
141
148
  });
142
149
  ```
143
150
 
@@ -157,8 +164,7 @@ db.user().select((u) => ({
157
164
  .default("C"),
158
165
  }));
159
166
 
160
- // Raw SQL
161
- db.user().select((u) => ({
162
- data: expr.raw("string")`JSON_EXTRACT(${u.metadata}, '$.email')`,
163
- }));
167
+ // Search parser
168
+ const parsed = parseSearchQuery('+apple -banana "exact phrase"');
169
+ // { must: ["%apple%", "%exact phrase%"], not: ["%banana%"], or: [] }
164
170
  ```
@@ -0,0 +1,133 @@
1
+ import type { DbContextBase, DbContextStatus } from "./types/db-context-def";
2
+ import type { DataRecord, DbContextExecutor, IsolationLevel, Migration, ResultMeta } from "./types/db";
3
+ import type { QueryDef, QueryDefObjectName } from "./types/query-def";
4
+ import { TableBuilder } from "./schema/table-builder";
5
+ import { ViewBuilder } from "./schema/view-builder";
6
+ import type { ProcedureBuilder } from "./schema/procedure-builder";
7
+ import type { Queryable } from "./exec/queryable";
8
+ import type { Executable } from "./exec/executable";
9
+ import type { ColumnBuilder } from "./schema/factory/column-builder";
10
+ import type { ForeignKeyBuilder } from "./schema/factory/relation-builder";
11
+ import type { IndexBuilder } from "./schema/factory/index-builder";
12
+ export declare const SD_BUILDER: unique symbol;
13
+ /**
14
+ * DbContext base class
15
+ *
16
+ * 테이블/뷰/프로시저를 class 프로퍼티로 등록하고,
17
+ * 연결/트랜잭션/DDL/초기화를 제공한다.
18
+ *
19
+ * defineDbContext/createDbContext의 class 기반 대체.
20
+ * 각 프로퍼티가 독립 직렬화되어 40+ 테이블에서도 TS7056이 발생하지 않는다.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * class MainDb extends DbContext {
25
+ * user = this.queryable(User);
26
+ * post = this.queryable(Post);
27
+ * activeUsers = this.queryable(ActiveUsers);
28
+ * getUserById = this.executable(GetUserById);
29
+ *
30
+ * migrations = [{ name: "001", up: async (db) => { ... } }];
31
+ * }
32
+ *
33
+ * const db = new MainDb(executor, { database: "mydb" });
34
+ * await db.connect(async () => {
35
+ * const users = await db.user().execute();
36
+ * });
37
+ * ```
38
+ */
39
+ export declare abstract class DbContext implements DbContextBase {
40
+ private readonly _executor;
41
+ private readonly _opt;
42
+ status: DbContextStatus;
43
+ private _aliasCounter;
44
+ private _relationsValidated;
45
+ _migration: () => Queryable<import(".").InferColumns<{
46
+ code: ColumnBuilder<string, {
47
+ type: "string";
48
+ dataType: {
49
+ type: "varchar";
50
+ length: number;
51
+ };
52
+ }>;
53
+ }> & import(".").InferDeepRelations<import(".").RelationBuilderRecord>, TableBuilder<{
54
+ code: ColumnBuilder<string, {
55
+ type: "string";
56
+ dataType: {
57
+ type: "varchar";
58
+ length: number;
59
+ };
60
+ }>;
61
+ }, import(".").RelationBuilderRecord>>;
62
+ constructor(_executor: DbContextExecutor, _opt: {
63
+ database: string;
64
+ schema?: string;
65
+ });
66
+ get database(): string | undefined;
67
+ get schema(): string | undefined;
68
+ getNextAlias(): string;
69
+ resetAliasCounter(): void;
70
+ executeDefs<T = DataRecord>(defs: QueryDef[], resultMetas?: (ResultMeta | undefined)[]): Promise<T[][]>;
71
+ getQueryDefObjectName(tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>): QueryDefObjectName;
72
+ switchFk(table: QueryDefObjectName, enabled: boolean): Promise<void>;
73
+ protected queryable<T extends TableBuilder<any, any> | ViewBuilder<any, any, any>>(builder: T): () => Queryable<T["$inferSelect"], T extends TableBuilder<any, any> ? T : never>;
74
+ protected executable<T extends ProcedureBuilder<any, any>>(builder: T): () => Executable<T["$params"], T["$returns"]>;
75
+ connect<TResult>(fn: () => Promise<TResult>, isolationLevel?: IsolationLevel): Promise<TResult>;
76
+ connectWithoutTransaction<TResult>(callback: () => Promise<TResult>): Promise<TResult>;
77
+ transaction<TResult>(fn: () => Promise<TResult>, isolationLevel?: IsolationLevel): Promise<TResult>;
78
+ createTable(table: TableBuilder<any, any>): Promise<void>;
79
+ dropTable(table: QueryDefObjectName): Promise<void>;
80
+ renameTable(table: QueryDefObjectName, newName: string): Promise<void>;
81
+ createView(view: ViewBuilder<any, any, any>): Promise<void>;
82
+ dropView(view: QueryDefObjectName): Promise<void>;
83
+ createProc(procedure: ProcedureBuilder<any, any>): Promise<void>;
84
+ dropProc(procedure: QueryDefObjectName): Promise<void>;
85
+ addColumn(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): Promise<void>;
86
+ dropColumn(table: QueryDefObjectName, column: string): Promise<void>;
87
+ modifyColumn(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): Promise<void>;
88
+ renameColumn(table: QueryDefObjectName, column: string, newName: string): Promise<void>;
89
+ addPrimaryKey(table: QueryDefObjectName, columns: string[]): Promise<void>;
90
+ dropPrimaryKey(table: QueryDefObjectName): Promise<void>;
91
+ addForeignKey(table: QueryDefObjectName, relationName: string, relationDef: ForeignKeyBuilder<any, any>): Promise<void>;
92
+ addIndex(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): Promise<void>;
93
+ dropForeignKey(table: QueryDefObjectName, relationName: string): Promise<void>;
94
+ dropIndex(table: QueryDefObjectName, columns: string[]): Promise<void>;
95
+ clearSchema(params: {
96
+ database: string;
97
+ schema?: string;
98
+ }): Promise<void>;
99
+ schemaExists(database: string, schema?: string): Promise<boolean>;
100
+ truncate(table: QueryDefObjectName): Promise<void>;
101
+ getCreateTableQueryDef(table: TableBuilder<any, any>): QueryDef;
102
+ getCreateViewQueryDef(view: ViewBuilder<any, any, any>): QueryDef;
103
+ getCreateProcQueryDef(procedure: ProcedureBuilder<any, any>): QueryDef;
104
+ getCreateObjectQueryDef(builder: TableBuilder<any, any> | ViewBuilder<any, any, any> | ProcedureBuilder<any, any>): QueryDef;
105
+ getDropTableQueryDef(table: QueryDefObjectName): QueryDef;
106
+ getRenameTableQueryDef(table: QueryDefObjectName, newName: string): QueryDef;
107
+ getDropViewQueryDef(view: QueryDefObjectName): QueryDef;
108
+ getDropProcQueryDef(procedure: QueryDefObjectName): QueryDef;
109
+ getAddColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): QueryDef;
110
+ getDropColumnQueryDef(table: QueryDefObjectName, column: string): QueryDef;
111
+ getModifyColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): QueryDef;
112
+ getRenameColumnQueryDef(table: QueryDefObjectName, column: string, newName: string): QueryDef;
113
+ getAddPrimaryKeyQueryDef(table: QueryDefObjectName, columns: string[]): QueryDef;
114
+ getDropPrimaryKeyQueryDef(table: QueryDefObjectName): QueryDef;
115
+ getAddForeignKeyQueryDef(table: QueryDefObjectName, relationName: string, relationDef: ForeignKeyBuilder<any, any>): QueryDef;
116
+ getAddIndexQueryDef(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): QueryDef;
117
+ getDropForeignKeyQueryDef(table: QueryDefObjectName, relationName: string): QueryDef;
118
+ getDropIndexQueryDef(table: QueryDefObjectName, columns: string[]): QueryDef;
119
+ getClearSchemaQueryDef(params: {
120
+ database: string;
121
+ schema?: string;
122
+ }): QueryDef;
123
+ getSchemaExistsQueryDef(database: string, schema?: string): QueryDef;
124
+ getTruncateQueryDef(table: QueryDefObjectName): QueryDef;
125
+ getSwitchFkQueryDef(table: QueryDefObjectName, enabled: boolean): QueryDef;
126
+ initialize(options?: {
127
+ dbs?: string[];
128
+ force?: boolean;
129
+ }): Promise<void>;
130
+ /** 마이그레이션 정의 — 서브클래스에서 오버라이드 */
131
+ migrations: Migration[];
132
+ }
133
+ //# sourceMappingURL=db-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-context.d.ts","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ import { DDL_TYPES } from "./types/query-def.js";
2
+ const DDL_TYPE_SET = new Set(DDL_TYPES);
3
+ import { DbErrorCode, DbTransactionError } from "./errors/db-transaction-error.js";
4
+ import { TableBuilder } from "./schema/table-builder.js";
5
+ import { ViewBuilder } from "./schema/view-builder.js";
6
+ import { queryable as createQueryable } from "./exec/queryable.js";
7
+ import { executable as createExecutable } from "./exec/executable.js";
8
+ // DDL import
9
+ import * as tableDdl from "./ddl/table-ddl.js";
10
+ import { getQueryDefObjectName as getQueryDefObjectNameImpl } from "./ddl/table-ddl.js";
11
+ import * as columnDdl from "./ddl/column-ddl.js";
12
+ import * as relationDdl from "./ddl/relation-ddl.js";
13
+ import * as schemaDdl from "./ddl/schema-ddl.js";
14
+ import { initialize as initializeImpl, validateRelations as validateRelationsImpl, } from "./ddl/initialize.js";
15
+ import { _Migration } from "./models/system-migration.js";
16
+ export const SD_BUILDER = Symbol("sdBuilder");
17
+ /**
18
+ * DbContext base class
19
+ *
20
+ * 테이블/뷰/프로시저를 class 프로퍼티로 등록하고,
21
+ * 연결/트랜잭션/DDL/초기화를 제공한다.
22
+ *
23
+ * defineDbContext/createDbContext의 class 기반 대체.
24
+ * 각 프로퍼티가 독립 직렬화되어 40+ 테이블에서도 TS7056이 발생하지 않는다.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * class MainDb extends DbContext {
29
+ * user = this.queryable(User);
30
+ * post = this.queryable(Post);
31
+ * activeUsers = this.queryable(ActiveUsers);
32
+ * getUserById = this.executable(GetUserById);
33
+ *
34
+ * migrations = [{ name: "001", up: async (db) => { ... } }];
35
+ * }
36
+ *
37
+ * const db = new MainDb(executor, { database: "mydb" });
38
+ * await db.connect(async () => {
39
+ * const users = await db.user().execute();
40
+ * });
41
+ * ```
42
+ */
43
+ export class DbContext {
44
+ _executor;
45
+ _opt;
46
+ // ── 상태 ──
47
+ status = "ready";
48
+ _aliasCounter = 0;
49
+ _relationsValidated = false;
50
+ // ── 시스템 테이블 ──
51
+ _migration = this.queryable(_Migration);
52
+ constructor(_executor, _opt) {
53
+ this._executor = _executor;
54
+ this._opt = _opt;
55
+ }
56
+ // ── DbContextBase 구현 ──
57
+ get database() {
58
+ return this._opt.database;
59
+ }
60
+ get schema() {
61
+ return this._opt.schema;
62
+ }
63
+ getNextAlias() {
64
+ return `T${++this._aliasCounter}`;
65
+ }
66
+ resetAliasCounter() {
67
+ this._aliasCounter = 0;
68
+ }
69
+ executeDefs(defs, resultMetas) {
70
+ if (this.status === "transact" && defs.some((d) => DDL_TYPE_SET.has(d.type))) {
71
+ throw new Error("TRANSACTION 상태에서는 DDL을 실행할 수 없습니다.");
72
+ }
73
+ return this._executor.executeDefs(defs, resultMetas);
74
+ }
75
+ getQueryDefObjectName(tableOrView) {
76
+ return getQueryDefObjectNameImpl(this, tableOrView);
77
+ }
78
+ async switchFk(table, enabled) {
79
+ await this.executeDefs([schemaDdl.getSwitchFkQueryDef(table, enabled)]);
80
+ }
81
+ // ── 등록 메서드 ──
82
+ queryable(builder) {
83
+ const fn = createQueryable(this, builder);
84
+ Object.defineProperty(fn, SD_BUILDER, { value: builder });
85
+ return fn;
86
+ }
87
+ executable(builder) {
88
+ const fn = createExecutable(this, builder);
89
+ Object.defineProperty(fn, SD_BUILDER, { value: builder });
90
+ return fn;
91
+ }
92
+ // ── 연결 관리 ──
93
+ async connect(fn, isolationLevel) {
94
+ if (this.status !== "ready") {
95
+ throw new Error(`이미 ${this.status === "connect" ? "CONNECT" : "TRANSACTION"} 상태입니다.`);
96
+ }
97
+ if (!this._relationsValidated) {
98
+ validateRelationsImpl(this);
99
+ this._relationsValidated = true;
100
+ }
101
+ this.resetAliasCounter();
102
+ await this._executor.connect();
103
+ this.status = "connect";
104
+ try {
105
+ await this._executor.beginTransaction(isolationLevel);
106
+ this.status = "transact";
107
+ let result;
108
+ try {
109
+ result = await fn();
110
+ await this._executor.commitTransaction();
111
+ this.status = "connect";
112
+ }
113
+ catch (err) {
114
+ try {
115
+ await this._executor.rollbackTransaction();
116
+ }
117
+ catch (err1) {
118
+ if (!(err1 instanceof DbTransactionError) ||
119
+ err1.code !== DbErrorCode.NO_ACTIVE_TRANSACTION) {
120
+ err.cause = err1;
121
+ }
122
+ }
123
+ this.status = "connect";
124
+ throw err;
125
+ }
126
+ return result;
127
+ }
128
+ finally {
129
+ try {
130
+ await this._executor.close();
131
+ }
132
+ finally {
133
+ this.status = "ready";
134
+ }
135
+ }
136
+ }
137
+ async connectWithoutTransaction(callback) {
138
+ if (this.status !== "ready") {
139
+ throw new Error(`이미 ${this.status === "connect" ? "CONNECT" : "TRANSACTION"} 상태입니다.`);
140
+ }
141
+ if (!this._relationsValidated) {
142
+ validateRelationsImpl(this);
143
+ this._relationsValidated = true;
144
+ }
145
+ this.resetAliasCounter();
146
+ await this._executor.connect();
147
+ this.status = "connect";
148
+ try {
149
+ return await callback();
150
+ }
151
+ finally {
152
+ try {
153
+ await this._executor.close();
154
+ }
155
+ finally {
156
+ this.status = "ready";
157
+ }
158
+ }
159
+ }
160
+ async transaction(fn, isolationLevel) {
161
+ if (this.status === "transact") {
162
+ throw new Error("이미 TRANSACTION 상태입니다.");
163
+ }
164
+ await this._executor.beginTransaction(isolationLevel);
165
+ this.status = "transact";
166
+ let result;
167
+ try {
168
+ result = await fn();
169
+ await this._executor.commitTransaction();
170
+ this.status = "connect";
171
+ }
172
+ catch (err) {
173
+ try {
174
+ await this._executor.rollbackTransaction();
175
+ }
176
+ catch (err1) {
177
+ if (!(err1 instanceof DbTransactionError) ||
178
+ err1.code !== DbErrorCode.NO_ACTIVE_TRANSACTION) {
179
+ err.cause = err1;
180
+ }
181
+ }
182
+ this.status = "connect";
183
+ throw err;
184
+ }
185
+ return result;
186
+ }
187
+ // ── DDL 실행 메서드 ──
188
+ async createTable(table) {
189
+ await this.executeDefs([tableDdl.getCreateTableQueryDef(this, table)]);
190
+ }
191
+ async dropTable(table) {
192
+ await this.executeDefs([tableDdl.getDropTableQueryDef(table)]);
193
+ }
194
+ async renameTable(table, newName) {
195
+ await this.executeDefs([tableDdl.getRenameTableQueryDef(table, newName)]);
196
+ }
197
+ async createView(view) {
198
+ await this.executeDefs([tableDdl.getCreateViewQueryDef(this, view)]);
199
+ }
200
+ async dropView(view) {
201
+ await this.executeDefs([tableDdl.getDropViewQueryDef(view)]);
202
+ }
203
+ async createProc(procedure) {
204
+ await this.executeDefs([tableDdl.getCreateProcQueryDef(this, procedure)]);
205
+ }
206
+ async dropProc(procedure) {
207
+ await this.executeDefs([tableDdl.getDropProcQueryDef(procedure)]);
208
+ }
209
+ async addColumn(table, columnName, column) {
210
+ await this.executeDefs([columnDdl.getAddColumnQueryDef(table, columnName, column)]);
211
+ }
212
+ async dropColumn(table, column) {
213
+ await this.executeDefs([columnDdl.getDropColumnQueryDef(table, column)]);
214
+ }
215
+ async modifyColumn(table, columnName, column) {
216
+ await this.executeDefs([columnDdl.getModifyColumnQueryDef(table, columnName, column)]);
217
+ }
218
+ async renameColumn(table, column, newName) {
219
+ await this.executeDefs([columnDdl.getRenameColumnQueryDef(table, column, newName)]);
220
+ }
221
+ async addPrimaryKey(table, columns) {
222
+ await this.executeDefs([relationDdl.getAddPrimaryKeyQueryDef(table, columns)]);
223
+ }
224
+ async dropPrimaryKey(table) {
225
+ await this.executeDefs([relationDdl.getDropPrimaryKeyQueryDef(table)]);
226
+ }
227
+ async addForeignKey(table, relationName, relationDef) {
228
+ await this.executeDefs([
229
+ relationDdl.getAddForeignKeyQueryDef(this, table, relationName, relationDef),
230
+ ]);
231
+ }
232
+ async addIndex(table, indexBuilder) {
233
+ await this.executeDefs([relationDdl.getAddIndexQueryDef(table, indexBuilder)]);
234
+ }
235
+ async dropForeignKey(table, relationName) {
236
+ await this.executeDefs([relationDdl.getDropForeignKeyQueryDef(table, relationName)]);
237
+ }
238
+ async dropIndex(table, columns) {
239
+ await this.executeDefs([relationDdl.getDropIndexQueryDef(table, columns)]);
240
+ }
241
+ async clearSchema(params) {
242
+ await this.executeDefs([schemaDdl.getClearSchemaQueryDef(params)]);
243
+ }
244
+ async schemaExists(database, schema) {
245
+ const result = await this.executeDefs([schemaDdl.getSchemaExistsQueryDef(database, schema)]);
246
+ return result[0].length > 0;
247
+ }
248
+ async truncate(table) {
249
+ await this.executeDefs([schemaDdl.getTruncateQueryDef(table)]);
250
+ }
251
+ // ── DDL QueryDef 생성기 ──
252
+ getCreateTableQueryDef(table) {
253
+ return tableDdl.getCreateTableQueryDef(this, table);
254
+ }
255
+ getCreateViewQueryDef(view) {
256
+ return tableDdl.getCreateViewQueryDef(this, view);
257
+ }
258
+ getCreateProcQueryDef(procedure) {
259
+ return tableDdl.getCreateProcQueryDef(this, procedure);
260
+ }
261
+ getCreateObjectQueryDef(builder) {
262
+ return tableDdl.getCreateObjectQueryDef(this, builder);
263
+ }
264
+ getDropTableQueryDef(table) {
265
+ return tableDdl.getDropTableQueryDef(table);
266
+ }
267
+ getRenameTableQueryDef(table, newName) {
268
+ return tableDdl.getRenameTableQueryDef(table, newName);
269
+ }
270
+ getDropViewQueryDef(view) {
271
+ return tableDdl.getDropViewQueryDef(view);
272
+ }
273
+ getDropProcQueryDef(procedure) {
274
+ return tableDdl.getDropProcQueryDef(procedure);
275
+ }
276
+ getAddColumnQueryDef(table, columnName, column) {
277
+ return columnDdl.getAddColumnQueryDef(table, columnName, column);
278
+ }
279
+ getDropColumnQueryDef(table, column) {
280
+ return columnDdl.getDropColumnQueryDef(table, column);
281
+ }
282
+ getModifyColumnQueryDef(table, columnName, column) {
283
+ return columnDdl.getModifyColumnQueryDef(table, columnName, column);
284
+ }
285
+ getRenameColumnQueryDef(table, column, newName) {
286
+ return columnDdl.getRenameColumnQueryDef(table, column, newName);
287
+ }
288
+ getAddPrimaryKeyQueryDef(table, columns) {
289
+ return relationDdl.getAddPrimaryKeyQueryDef(table, columns);
290
+ }
291
+ getDropPrimaryKeyQueryDef(table) {
292
+ return relationDdl.getDropPrimaryKeyQueryDef(table);
293
+ }
294
+ getAddForeignKeyQueryDef(table, relationName, relationDef) {
295
+ return relationDdl.getAddForeignKeyQueryDef(this, table, relationName, relationDef);
296
+ }
297
+ getAddIndexQueryDef(table, indexBuilder) {
298
+ return relationDdl.getAddIndexQueryDef(table, indexBuilder);
299
+ }
300
+ getDropForeignKeyQueryDef(table, relationName) {
301
+ return relationDdl.getDropForeignKeyQueryDef(table, relationName);
302
+ }
303
+ getDropIndexQueryDef(table, columns) {
304
+ return relationDdl.getDropIndexQueryDef(table, columns);
305
+ }
306
+ getClearSchemaQueryDef(params) {
307
+ return schemaDdl.getClearSchemaQueryDef(params);
308
+ }
309
+ getSchemaExistsQueryDef(database, schema) {
310
+ return schemaDdl.getSchemaExistsQueryDef(database, schema);
311
+ }
312
+ getTruncateQueryDef(table) {
313
+ return schemaDdl.getTruncateQueryDef(table);
314
+ }
315
+ getSwitchFkQueryDef(table, enabled) {
316
+ return schemaDdl.getSwitchFkQueryDef(table, enabled);
317
+ }
318
+ // ── 초기화 ──
319
+ async initialize(options) {
320
+ await initializeImpl(this, options);
321
+ }
322
+ /** 마이그레이션 정의 — 서브클래스에서 오버라이드 */
323
+ migrations = [];
324
+ }
325
+ //# sourceMappingURL=db-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-context.js","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { DbContextBase, DbContextDef, DbContextDdlMethods } from "../types/db-context-def";
1
+ import type { DbContextBase, DbContextDdlMethods } from "../types/db-context-def";
2
2
  import type { Queryable } from "../exec/queryable";
3
+ import type { Migration } from "../types/db";
3
4
  /**
4
5
  * Code First 데이터베이스 초기화
5
6
  *
@@ -24,7 +25,8 @@ export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
24
25
  _migration: () => Queryable<{
25
26
  code: string;
26
27
  }, any>;
27
- }, def: DbContextDef<any, any, any>, options?: {
28
+ migrations: Migration[];
29
+ }, options?: {
28
30
  dbs?: string[];
29
31
  force?: boolean;
30
32
  }): Promise<void>;
@@ -32,5 +34,5 @@ export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
32
34
  * ForeignKeyTarget/RelationKeyTarget 관계 검증
33
35
  * - targetTableFn()이 반환하는 테이블에 relationName과 일치하는 FK/RelationKey가 있는지 확인
34
36
  */
35
- export declare function validateRelations(def: DbContextDef<any, any, any>): void;
37
+ export declare function validateRelations(dbContext: object): void;
36
38
  //# sourceMappingURL=initialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../src/ddl/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAenD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,aAAa,GAAG,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,CAAA;CAAE,EAChG,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CA6Df;AAsFD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CA4BxE"}
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../src/ddl/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,aAAa,GACf,mBAAmB,GAAG;IACpB,UAAU,EAAE,MAAM,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,CAAC;IACnD,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,EACH,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAqEf;AAqFD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CA4BzD"}