linkgress-orm 0.0.1
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/LICENSE +21 -0
- package/README.md +196 -0
- package/dist/database/database-client.interface.d.ts +45 -0
- package/dist/database/database-client.interface.d.ts.map +1 -0
- package/dist/database/database-client.interface.js +20 -0
- package/dist/database/database-client.interface.js.map +1 -0
- package/dist/database/index.d.ts +5 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +10 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/pg-client.d.ts +30 -0
- package/dist/database/pg-client.d.ts.map +1 -0
- package/dist/database/pg-client.js +76 -0
- package/dist/database/pg-client.js.map +1 -0
- package/dist/database/postgres-client.d.ts +44 -0
- package/dist/database/postgres-client.d.ts.map +1 -0
- package/dist/database/postgres-client.js +111 -0
- package/dist/database/postgres-client.js.map +1 -0
- package/dist/database/types.d.ts +200 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +8 -0
- package/dist/database/types.js.map +1 -0
- package/dist/entity/base-entity.d.ts +21 -0
- package/dist/entity/base-entity.d.ts.map +1 -0
- package/dist/entity/base-entity.js +27 -0
- package/dist/entity/base-entity.js.map +1 -0
- package/dist/entity/db-column.d.ts +61 -0
- package/dist/entity/db-column.d.ts.map +1 -0
- package/dist/entity/db-column.js +35 -0
- package/dist/entity/db-column.js.map +1 -0
- package/dist/entity/db-context.d.ts +665 -0
- package/dist/entity/db-context.d.ts.map +1 -0
- package/dist/entity/db-context.js +1463 -0
- package/dist/entity/db-context.js.map +1 -0
- package/dist/entity/entity-base.d.ts +76 -0
- package/dist/entity/entity-base.d.ts.map +1 -0
- package/dist/entity/entity-base.js +42 -0
- package/dist/entity/entity-base.js.map +1 -0
- package/dist/entity/entity-builder.d.ts +171 -0
- package/dist/entity/entity-builder.d.ts.map +1 -0
- package/dist/entity/entity-builder.js +376 -0
- package/dist/entity/entity-builder.js.map +1 -0
- package/dist/entity/model-config.d.ts +18 -0
- package/dist/entity/model-config.d.ts.map +1 -0
- package/dist/entity/model-config.js +157 -0
- package/dist/entity/model-config.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/migration/db-schema-manager.d.ts +228 -0
- package/dist/migration/db-schema-manager.d.ts.map +1 -0
- package/dist/migration/db-schema-manager.js +1055 -0
- package/dist/migration/db-schema-manager.js.map +1 -0
- package/dist/migration/enum-migrator.d.ts +29 -0
- package/dist/migration/enum-migrator.d.ts.map +1 -0
- package/dist/migration/enum-migrator.js +137 -0
- package/dist/migration/enum-migrator.js.map +1 -0
- package/dist/query/collection-strategy.factory.d.ts +16 -0
- package/dist/query/collection-strategy.factory.d.ts.map +1 -0
- package/dist/query/collection-strategy.factory.js +37 -0
- package/dist/query/collection-strategy.factory.js.map +1 -0
- package/dist/query/collection-strategy.interface.d.ts +146 -0
- package/dist/query/collection-strategy.interface.d.ts.map +1 -0
- package/dist/query/collection-strategy.interface.js +3 -0
- package/dist/query/collection-strategy.interface.js.map +1 -0
- package/dist/query/conditions.d.ts +222 -0
- package/dist/query/conditions.d.ts.map +1 -0
- package/dist/query/conditions.js +446 -0
- package/dist/query/conditions.js.map +1 -0
- package/dist/query/cte-builder.d.ts +95 -0
- package/dist/query/cte-builder.d.ts.map +1 -0
- package/dist/query/cte-builder.js +172 -0
- package/dist/query/cte-builder.js.map +1 -0
- package/dist/query/grouped-query.d.ts +186 -0
- package/dist/query/grouped-query.d.ts.map +1 -0
- package/dist/query/grouped-query.js +588 -0
- package/dist/query/grouped-query.js.map +1 -0
- package/dist/query/join-builder.d.ts +106 -0
- package/dist/query/join-builder.d.ts.map +1 -0
- package/dist/query/join-builder.js +275 -0
- package/dist/query/join-builder.js.map +1 -0
- package/dist/query/query-builder.d.ts +543 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +2649 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/strategies/jsonb-collection-strategy.d.ts +51 -0
- package/dist/query/strategies/jsonb-collection-strategy.d.ts.map +1 -0
- package/dist/query/strategies/jsonb-collection-strategy.js +210 -0
- package/dist/query/strategies/jsonb-collection-strategy.js.map +1 -0
- package/dist/query/strategies/temptable-collection-strategy.d.ts +95 -0
- package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -0
- package/dist/query/strategies/temptable-collection-strategy.js +456 -0
- package/dist/query/strategies/temptable-collection-strategy.js.map +1 -0
- package/dist/query/subquery.d.ts +152 -0
- package/dist/query/subquery.d.ts.map +1 -0
- package/dist/query/subquery.js +206 -0
- package/dist/query/subquery.js.map +1 -0
- package/dist/schema/column-builder.d.ts +127 -0
- package/dist/schema/column-builder.d.ts.map +1 -0
- package/dist/schema/column-builder.js +184 -0
- package/dist/schema/column-builder.js.map +1 -0
- package/dist/schema/inference.d.ts +26 -0
- package/dist/schema/inference.d.ts.map +1 -0
- package/dist/schema/inference.js +3 -0
- package/dist/schema/inference.js.map +1 -0
- package/dist/schema/navigation.d.ts +215 -0
- package/dist/schema/navigation.d.ts.map +1 -0
- package/dist/schema/navigation.js +233 -0
- package/dist/schema/navigation.js.map +1 -0
- package/dist/schema/row-type.d.ts +26 -0
- package/dist/schema/row-type.d.ts.map +1 -0
- package/dist/schema/row-type.js +3 -0
- package/dist/schema/row-type.js.map +1 -0
- package/dist/schema/sequence-builder.d.ts +87 -0
- package/dist/schema/sequence-builder.d.ts.map +1 -0
- package/dist/schema/sequence-builder.js +123 -0
- package/dist/schema/sequence-builder.js.map +1 -0
- package/dist/schema/table-builder.d.ts +122 -0
- package/dist/schema/table-builder.d.ts.map +1 -0
- package/dist/schema/table-builder.js +132 -0
- package/dist/schema/table-builder.js.map +1 -0
- package/dist/schema/typed-schema.d.ts +22 -0
- package/dist/schema/typed-schema.d.ts.map +1 -0
- package/dist/schema/typed-schema.js +28 -0
- package/dist/schema/typed-schema.js.map +1 -0
- package/dist/types/column-types.d.ts +20 -0
- package/dist/types/column-types.d.ts.map +1 -0
- package/dist/types/column-types.js +14 -0
- package/dist/types/column-types.js.map +1 -0
- package/dist/types/custom-types.d.ts +85 -0
- package/dist/types/custom-types.d.ts.map +1 -0
- package/dist/types/custom-types.js +132 -0
- package/dist/types/custom-types.js.map +1 -0
- package/dist/types/enum-builder.d.ts +31 -0
- package/dist/types/enum-builder.d.ts.map +1 -0
- package/dist/types/enum-builder.js +46 -0
- package/dist/types/enum-builder.js.map +1 -0
- package/dist/types/metadata.d.ts +67 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +57 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/type-mapper.d.ts +49 -0
- package/dist/types/type-mapper.d.ts.map +1 -0
- package/dist/types/type-mapper.js +49 -0
- package/dist/types/type-mapper.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration types for database clients
|
|
3
|
+
* These are based on the actual pg and postgres libraries but defined here
|
|
4
|
+
* to avoid requiring the packages at compile time.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Connection pool configuration for node-postgres (pg) library
|
|
8
|
+
* @see https://node-postgres.com/apis/pool
|
|
9
|
+
*/
|
|
10
|
+
export interface PoolConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Database host (default: localhost)
|
|
13
|
+
*/
|
|
14
|
+
host?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Database server port (default: 5432)
|
|
17
|
+
*/
|
|
18
|
+
port?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Database name
|
|
21
|
+
*/
|
|
22
|
+
database?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Database user
|
|
25
|
+
*/
|
|
26
|
+
user?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Database password
|
|
29
|
+
*/
|
|
30
|
+
password?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Connection string (alternative to individual options)
|
|
33
|
+
* Format: postgres://user:password@host:port/database
|
|
34
|
+
*/
|
|
35
|
+
connectionString?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Maximum number of clients in the pool (default: 10)
|
|
38
|
+
*/
|
|
39
|
+
max?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Minimum number of clients in the pool (default: 0)
|
|
42
|
+
*/
|
|
43
|
+
min?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Number of milliseconds to wait before timing out when connecting a new client (default: 0 - no timeout)
|
|
46
|
+
*/
|
|
47
|
+
connectionTimeoutMillis?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Number of milliseconds a client must sit idle in the pool before being closed (default: 10000)
|
|
50
|
+
*/
|
|
51
|
+
idleTimeoutMillis?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Maximum number of milliseconds to wait for a query to complete (default: 0 - no timeout)
|
|
54
|
+
*/
|
|
55
|
+
query_timeout?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Maximum number of milliseconds to wait for a connection (default: 0 - no timeout)
|
|
58
|
+
*/
|
|
59
|
+
statement_timeout?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Number of milliseconds before a query will time out (default: 0 - no timeout)
|
|
62
|
+
*/
|
|
63
|
+
idle_in_transaction_session_timeout?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Application name for logging (default: undefined)
|
|
66
|
+
*/
|
|
67
|
+
application_name?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Whether to use SSL (default: false)
|
|
70
|
+
*/
|
|
71
|
+
ssl?: boolean | {
|
|
72
|
+
rejectUnauthorized?: boolean;
|
|
73
|
+
ca?: string;
|
|
74
|
+
key?: string;
|
|
75
|
+
cert?: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Custom types parser
|
|
79
|
+
*/
|
|
80
|
+
types?: any;
|
|
81
|
+
/**
|
|
82
|
+
* Whether to allow exiting the pool (default: true)
|
|
83
|
+
*/
|
|
84
|
+
allowExitOnIdle?: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Connection options for postgres.js library
|
|
88
|
+
* @see https://github.com/porsager/postgres
|
|
89
|
+
*/
|
|
90
|
+
export interface PostgresOptions {
|
|
91
|
+
/**
|
|
92
|
+
* Database host (default: localhost)
|
|
93
|
+
*/
|
|
94
|
+
host?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Database server port (default: 5432)
|
|
97
|
+
*/
|
|
98
|
+
port?: number;
|
|
99
|
+
/**
|
|
100
|
+
* Database name
|
|
101
|
+
*/
|
|
102
|
+
database?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Database user (default: process.env.USER)
|
|
105
|
+
*/
|
|
106
|
+
user?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Username (alias for user)
|
|
109
|
+
*/
|
|
110
|
+
username?: string;
|
|
111
|
+
/**
|
|
112
|
+
* Database password
|
|
113
|
+
*/
|
|
114
|
+
password?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Pass phrase for encrypted key
|
|
117
|
+
*/
|
|
118
|
+
pass?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Maximum number of connections (default: 10)
|
|
121
|
+
*/
|
|
122
|
+
max?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Minimum number of idle connections (default: 0)
|
|
125
|
+
*/
|
|
126
|
+
min?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Idle connection timeout in seconds (default: undefined)
|
|
129
|
+
*/
|
|
130
|
+
idle_timeout?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Connection timeout in seconds (default: undefined)
|
|
133
|
+
*/
|
|
134
|
+
connect_timeout?: number;
|
|
135
|
+
/**
|
|
136
|
+
* Max lifetime of a connection in seconds (default: 3600)
|
|
137
|
+
*/
|
|
138
|
+
max_lifetime?: number;
|
|
139
|
+
/**
|
|
140
|
+
* Timeout for queries in seconds (default: undefined)
|
|
141
|
+
*/
|
|
142
|
+
timeout?: number;
|
|
143
|
+
/**
|
|
144
|
+
* SSL configuration (default: false)
|
|
145
|
+
*/
|
|
146
|
+
ssl?: boolean | 'require' | 'allow' | 'prefer' | 'verify-full' | {
|
|
147
|
+
rejectUnauthorized?: boolean;
|
|
148
|
+
ca?: string;
|
|
149
|
+
key?: string;
|
|
150
|
+
cert?: string;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Whether to use prepared statements (default: true)
|
|
154
|
+
*/
|
|
155
|
+
prepare?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Transform column names (default: undefined)
|
|
158
|
+
*/
|
|
159
|
+
transform?: {
|
|
160
|
+
column?: (column: string) => string;
|
|
161
|
+
value?: (value: any) => any;
|
|
162
|
+
row?: (row: any) => any;
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Custom types mapping
|
|
166
|
+
*/
|
|
167
|
+
types?: any;
|
|
168
|
+
/**
|
|
169
|
+
* Connection properties
|
|
170
|
+
*/
|
|
171
|
+
connection?: {
|
|
172
|
+
application_name?: string;
|
|
173
|
+
[key: string]: any;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Called when connection is established
|
|
177
|
+
*/
|
|
178
|
+
onnotice?: (notice: any) => void;
|
|
179
|
+
/**
|
|
180
|
+
* Called when connection is closed
|
|
181
|
+
*/
|
|
182
|
+
onclose?: (connectionId: number) => void;
|
|
183
|
+
/**
|
|
184
|
+
* Called for query logging
|
|
185
|
+
*/
|
|
186
|
+
debug?: boolean | ((connection: number, query: string, params: any[], types: any[]) => void);
|
|
187
|
+
/**
|
|
188
|
+
* Fetch array mode (default: false)
|
|
189
|
+
*/
|
|
190
|
+
fetch_types?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Publications for logical replication
|
|
193
|
+
*/
|
|
194
|
+
publications?: string;
|
|
195
|
+
/**
|
|
196
|
+
* Target session attributes (default: any)
|
|
197
|
+
*/
|
|
198
|
+
target_session_attrs?: 'any' | 'read-write' | 'read-only' | 'primary' | 'standby' | 'prefer-standby';
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration types for database clients
|
|
4
|
+
* These are based on the actual pg and postgres libraries but defined here
|
|
5
|
+
* to avoid requiring the packages at compile time.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all entities
|
|
3
|
+
* Provides common functionality and ensures proper type handling
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class DbEntity {
|
|
6
|
+
/** @internal */
|
|
7
|
+
static readonly __isEntity = true;
|
|
8
|
+
/** @internal */
|
|
9
|
+
static __tableName?: string;
|
|
10
|
+
/** @internal */
|
|
11
|
+
static __tableBuilder?: any;
|
|
12
|
+
/**
|
|
13
|
+
* Converts entity to plain object
|
|
14
|
+
*/
|
|
15
|
+
toJSON(): Record<string, any>;
|
|
16
|
+
/**
|
|
17
|
+
* Creates entity from plain object
|
|
18
|
+
*/
|
|
19
|
+
static fromJSON<T extends DbEntity>(this: new () => T, data: Record<string, any>): T;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=base-entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../src/entity/base-entity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,QAAQ;IAC5B,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,QAAQ;IAElC,gBAAgB;IAChB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE5B,gBAAgB;IAChB,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IAE5B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI7B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;CAKrF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DbEntity = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base class for all entities
|
|
6
|
+
* Provides common functionality and ensures proper type handling
|
|
7
|
+
*/
|
|
8
|
+
class DbEntity {
|
|
9
|
+
/**
|
|
10
|
+
* Converts entity to plain object
|
|
11
|
+
*/
|
|
12
|
+
toJSON() {
|
|
13
|
+
return { ...this };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates entity from plain object
|
|
17
|
+
*/
|
|
18
|
+
static fromJSON(data) {
|
|
19
|
+
const instance = new this();
|
|
20
|
+
Object.assign(instance, data);
|
|
21
|
+
return instance;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DbEntity = DbEntity;
|
|
25
|
+
/** @internal */
|
|
26
|
+
DbEntity.__isEntity = true;
|
|
27
|
+
//# sourceMappingURL=base-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../src/entity/base-entity.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAsB,QAAQ;IAU5B;;OAEG;IACH,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAwC,IAAyB;QAC9E,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAxBH,4BAyBC;AAxBC,gBAAgB;AACA,mBAAU,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database column wrapper that provides type-safe query operations
|
|
3
|
+
* while automatically unwrapping to the underlying type in results
|
|
4
|
+
*
|
|
5
|
+
* DbColumn implements the FieldRef interface so it can be used in conditions
|
|
6
|
+
*/
|
|
7
|
+
export declare class DbColumn<TValue> {
|
|
8
|
+
/** @internal */
|
|
9
|
+
readonly __isDbColumn = true;
|
|
10
|
+
/** @internal */
|
|
11
|
+
readonly __fieldName: string;
|
|
12
|
+
/** @internal */
|
|
13
|
+
readonly __dbColumnName: string;
|
|
14
|
+
/** @internal */
|
|
15
|
+
readonly __valueType: TValue;
|
|
16
|
+
constructor(
|
|
17
|
+
/** @internal */
|
|
18
|
+
columnName: string);
|
|
19
|
+
/**
|
|
20
|
+
* This is a compile-time only type - at runtime this is never called
|
|
21
|
+
* The actual value is returned by the query execution
|
|
22
|
+
*/
|
|
23
|
+
valueOf(): TValue;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Type helper to unwrap DbColumn types to their underlying values
|
|
27
|
+
*/
|
|
28
|
+
export type UnwrapDbColumns<T> = T extends DbColumn<infer V> ? V : T extends object ? {
|
|
29
|
+
[K in keyof T]: T[K] extends DbColumn<infer V> ? V : T[K] extends (infer U)[] | undefined ? U extends DbEntity ? UnwrapDbColumns<U>[] : T[K] : T[K] extends DbEntity | undefined ? UnwrapDbColumns<NonNullable<T[K]>> : T[K];
|
|
30
|
+
} : T;
|
|
31
|
+
/**
|
|
32
|
+
* Helper to check if a type includes DbColumn
|
|
33
|
+
*/
|
|
34
|
+
type IncludesDbColumn<T> = T extends DbColumn<any> ? true : T extends DbColumn<any> | undefined ? true : T extends undefined | DbColumn<any> ? true : false;
|
|
35
|
+
/**
|
|
36
|
+
* Helper to unwrap DbColumn from potentially optional type
|
|
37
|
+
*/
|
|
38
|
+
type UnwrapOptionalDbColumn<T> = T extends DbColumn<infer V> | undefined ? V : T extends DbColumn<infer V> ? V : never;
|
|
39
|
+
/**
|
|
40
|
+
* Type helper to extract only DbColumn properties from an entity
|
|
41
|
+
* This is used for insert/update operations where only actual columns are needed,
|
|
42
|
+
* excluding navigation properties
|
|
43
|
+
*/
|
|
44
|
+
export type ExtractDbColumns<T> = {
|
|
45
|
+
[K in keyof T as IncludesDbColumn<T[K]> extends true ? K : never]: UnwrapOptionalDbColumn<T[K]>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Type for insert data - only includes DbColumn properties, unwrapped to their values
|
|
49
|
+
*/
|
|
50
|
+
export type InsertData<TEntity> = Partial<ExtractDbColumns<TEntity>>;
|
|
51
|
+
/**
|
|
52
|
+
* Marker to indicate DbEntity type (imported to avoid circular dependency)
|
|
53
|
+
*/
|
|
54
|
+
interface DbEntity {
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if a value is a DbColumn
|
|
58
|
+
*/
|
|
59
|
+
export declare function isDbColumn(value: any): value is DbColumn<any>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=db-column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-column.d.ts","sourceRoot":"","sources":["../../src/entity/db-column.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,MAAM;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,YAAY,QAAQ;IAE7B,gBAAgB;IAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB;IAChB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,gBAAgB;IAChB,QAAQ,CAAC,WAAW,EAAG,MAAM,CAAC;;IAG5B,gBAAgB;IAChB,UAAU,EAAE,MAAM;IAMpB;;;OAGG;IACH,OAAO,IAAI,MAAM;CAGlB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GACxD,CAAC,GACD,CAAC,SAAS,MAAM,GAChB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAC1C,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,SAAS,GACpC,CAAC,SAAS,QAAQ,GAChB,eAAe,CAAC,CAAC,CAAC,EAAE,GACpB,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,GACjC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,CAAC,CAAC;CACT,GACD,CAAC,CAAC;AAEN;;GAEG;AACH,KAAK,gBAAgB,CAAC,CAAC,IACrB,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAC9B,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1C,CAAC,SAAS,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAC1C,KAAK,CAAC;AAER;;GAEG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAC3B,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAC3C,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAC/B,KAAK,CAAC;AAER;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChG,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAErE;;GAEG;AACH,UAAU,QAAQ;CAEjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,CAE7D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DbColumn = void 0;
|
|
4
|
+
exports.isDbColumn = isDbColumn;
|
|
5
|
+
/**
|
|
6
|
+
* Database column wrapper that provides type-safe query operations
|
|
7
|
+
* while automatically unwrapping to the underlying type in results
|
|
8
|
+
*
|
|
9
|
+
* DbColumn implements the FieldRef interface so it can be used in conditions
|
|
10
|
+
*/
|
|
11
|
+
class DbColumn {
|
|
12
|
+
constructor(
|
|
13
|
+
/** @internal */
|
|
14
|
+
columnName) {
|
|
15
|
+
/** @internal */
|
|
16
|
+
this.__isDbColumn = true;
|
|
17
|
+
this.__fieldName = columnName;
|
|
18
|
+
this.__dbColumnName = columnName;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* This is a compile-time only type - at runtime this is never called
|
|
22
|
+
* The actual value is returned by the query execution
|
|
23
|
+
*/
|
|
24
|
+
valueOf() {
|
|
25
|
+
throw new Error('DbColumn.valueOf() should never be called at runtime');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.DbColumn = DbColumn;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a value is a DbColumn
|
|
31
|
+
*/
|
|
32
|
+
function isDbColumn(value) {
|
|
33
|
+
return value && typeof value === 'object' && value.__isDbColumn === true;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=db-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-column.js","sourceRoot":"","sources":["../../src/entity/db-column.ts"],"names":[],"mappings":";;;AAgGA,gCAEC;AAlGD;;;;;GAKG;AACH,MAAa,QAAQ;IAanB;IACE,gBAAgB;IAChB,UAAkB;QAdpB,gBAAgB;QACP,iBAAY,GAAG,IAAI,CAAC;QAe3B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;CACF;AA5BD,4BA4BC;AA2DD;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;AAC3E,CAAC"}
|