litedbmodel 1.0.0 → 1.1.0

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 (92) hide show
  1. package/README.md +18 -14
  2. package/dist/DBModel.d.ts +23 -20
  3. package/dist/DBModel.d.ts.map +1 -1
  4. package/dist/DBModel.js +64 -31
  5. package/dist/DBModel.js.map +1 -1
  6. package/dist/LazyRelation.d.ts.map +1 -1
  7. package/dist/LazyRelation.js +16 -10
  8. package/dist/LazyRelation.js.map +1 -1
  9. package/dist/SqlFragment.js +1 -1
  10. package/dist/SqlFragment.js.map +1 -1
  11. package/dist/decorators.d.ts +6 -7
  12. package/dist/decorators.d.ts.map +1 -1
  13. package/dist/decorators.js +42 -23
  14. package/dist/decorators.js.map +1 -1
  15. package/dist/drivers/PostgresHelper.d.ts.map +1 -1
  16. package/dist/drivers/PostgresHelper.js +4 -0
  17. package/dist/drivers/PostgresHelper.js.map +1 -1
  18. package/dist/drivers/postgres.d.ts.map +1 -1
  19. package/dist/drivers/postgres.js +57 -10
  20. package/dist/drivers/postgres.js.map +1 -1
  21. package/dist/types.d.ts +0 -9
  22. package/dist/types.d.ts.map +1 -1
  23. package/docs/BENCHMARK.md +52 -52
  24. package/docs/COMPARISON.md +9 -7
  25. package/docs/api/README.md +61 -9
  26. package/docs/api/classes/Conditions.md +75 -8
  27. package/docs/api/classes/DBHandler.md +3 -3
  28. package/docs/api/classes/DBModel.md +260 -106
  29. package/docs/api/classes/LimitExceededError.md +1 -1
  30. package/docs/api/classes/Middleware.md +1 -1
  31. package/docs/api/classes/SqlRaw.md +53 -0
  32. package/docs/api/classes/SqlRef.md +59 -0
  33. package/docs/api/classes/Values.md +6 -6
  34. package/docs/api/classes/WriteInReadOnlyContextError.md +1 -1
  35. package/docs/api/classes/WriteOutsideTransactionError.md +1 -1
  36. package/docs/api/functions/belongsTo.md +2 -2
  37. package/docs/api/functions/closeAllPools.md +1 -1
  38. package/docs/api/functions/condsToRecord.md +23 -0
  39. package/docs/api/functions/createMiddleware.md +68 -0
  40. package/docs/api/functions/createPostgresDriver.md +2 -2
  41. package/docs/api/functions/createSqliteDriver.md +1 -1
  42. package/docs/api/functions/dbCast.md +1 -1
  43. package/docs/api/functions/dbCastIn.md +1 -1
  44. package/docs/api/functions/dbDynamic.md +1 -1
  45. package/docs/api/functions/dbFalse.md +1 -1
  46. package/docs/api/functions/dbImmediate.md +1 -1
  47. package/docs/api/functions/dbIn.md +1 -1
  48. package/docs/api/functions/dbNotNull.md +1 -1
  49. package/docs/api/functions/dbNow.md +1 -1
  50. package/docs/api/functions/dbNull.md +1 -1
  51. package/docs/api/functions/dbRaw.md +1 -1
  52. package/docs/api/functions/dbTrue.md +1 -1
  53. package/docs/api/functions/dbUuid.md +1 -1
  54. package/docs/api/functions/dbUuidIn.md +1 -1
  55. package/docs/api/functions/getDBConfig.md +1 -1
  56. package/docs/api/functions/getDBHandler.md +1 -1
  57. package/docs/api/functions/getTransactionConnection.md +2 -2
  58. package/docs/api/functions/getTransactionContext.md +2 -2
  59. package/docs/api/functions/hasMany.md +2 -2
  60. package/docs/api/functions/hasOne.md +2 -2
  61. package/docs/api/functions/initDBHandler.md +1 -1
  62. package/docs/api/functions/isAnySqlFragment.md +25 -0
  63. package/docs/api/functions/isSqlCondition.md +23 -0
  64. package/docs/api/functions/isSqlFragment.md +23 -0
  65. package/docs/api/functions/isSqlRaw.md +23 -0
  66. package/docs/api/functions/isSqlRef.md +23 -0
  67. package/docs/api/functions/isSqlTypedFragment.md +23 -0
  68. package/docs/api/functions/model.md +4 -4
  69. package/docs/api/functions/parentRef.md +1 -1
  70. package/docs/api/functions/sql.md +182 -0
  71. package/docs/api/globals.md +71 -19
  72. package/docs/api/interfaces/Column.md +31 -31
  73. package/docs/api/interfaces/ColumnOptions.md +4 -4
  74. package/docs/api/interfaces/CreatedMiddlewareClass.md +110 -0
  75. package/docs/api/interfaces/DBConfig.md +2 -2
  76. package/docs/api/interfaces/DBConfigOptions.md +1 -1
  77. package/docs/api/interfaces/DeleteOptions.md +1 -1
  78. package/docs/api/interfaces/InsertOptions.md +2 -2
  79. package/docs/api/interfaces/LimitConfig.md +1 -1
  80. package/docs/api/interfaces/MiddlewareConfig.md +40 -0
  81. package/docs/api/interfaces/ModelOptions.md +1 -1
  82. package/docs/api/interfaces/PkeyResult.md +1 -1
  83. package/docs/api/interfaces/SelectOptions.md +1 -1
  84. package/docs/api/interfaces/SqlCondition.md +27 -0
  85. package/docs/api/interfaces/SqlFragment.md +20 -0
  86. package/docs/api/interfaces/SqlTypedFragment.md +29 -0
  87. package/docs/api/interfaces/TransactionOptions.md +1 -1
  88. package/docs/api/interfaces/UpdateManyOptions.md +1 -1
  89. package/docs/api/interfaces/UpdateOptions.md +1 -1
  90. package/docs/benchmark-chart.svg +163 -163
  91. package/docs/sql-tagged-template.md +5 -5
  92. package/package.json +1 -1
package/README.md CHANGED
@@ -214,7 +214,7 @@ Types are inferred from TypeScript property types:
214
214
  Use explicit type decorators when auto-inference isn't sufficient:
215
215
 
216
216
  ```typescript
217
- @column.date() birth_date?: Date; // Date only (no time)
217
+ @column.date() birth_date?: string; // Date only (YYYY-MM-DD string)
218
218
  @column.datetime() updated_at?: Date; // DateTime with timezone
219
219
  @column.boolean() is_active?: boolean; // Explicit boolean
220
220
  @column.number() amount?: number; // Explicit number
@@ -229,20 +229,20 @@ Use explicit type decorators when auto-inference isn't sufficient:
229
229
 
230
230
  ### Date vs DateTime: Important Distinction
231
231
 
232
- TypeScript has only one `Date` type, but databases distinguish between:
232
+ Databases distinguish between date-only and datetime columns. `@column.date()` returns a **`string`** (`YYYY-MM-DD`), not a `Date` object, because a calendar date has no timezone concept:
233
233
 
234
- | DB Column Type | Decorator | Example |
235
- |----------------|-----------|---------|
236
- | `TIMESTAMP` / `DATETIME` | `@column()` or `@column.datetime()` | `created_at`, `updated_at` |
237
- | `DATE` | `@column.date()` | `birth_date`, `settlement_date` |
234
+ | DB Column Type | Decorator | TypeScript Type | Example |
235
+ |----------------|-----------|-----------------|---------|
236
+ | `TIMESTAMP` / `DATETIME` | `@column()` or `@column.datetime()` | `Date` | `created_at`, `updated_at` |
237
+ | `DATE` | `@column.date()` | `string` | `birth_date`, `settlement_date` |
238
238
 
239
239
  **⚠️ Important**: `@column()` with `Date` type is treated as `TIMESTAMP/DATETIME`. For date-only columns (no time component), you **must** use `@column.date()` explicitly.
240
240
 
241
241
  ```typescript
242
242
  // ✅ Correct usage
243
- @column() created_at?: Date; // TIMESTAMP column (datetime)
244
- @column.datetime() updated_at?: Date; // TIMESTAMP column (explicit)
245
- @column.date() settlement_date?: Date; // DATE column (date only)
243
+ @column() created_at?: Date; // TIMESTAMP column (datetime → Date)
244
+ @column.datetime() updated_at?: Date; // TIMESTAMP column (datetime → Date)
245
+ @column.date() settlement_date?: string; // DATE column (date only → 'YYYY-MM-DD')
246
246
 
247
247
  // ❌ Wrong: will cause type mismatch errors
248
248
  @column() settlement_date?: Date; // Treated as TIMESTAMP, not DATE!
@@ -250,7 +250,7 @@ TypeScript has only one `Date` type, but databases distinguish between:
250
250
 
251
251
  **Serialization behavior** (PostgreSQL):
252
252
  - `@column()` / `@column.datetime()` → ISO 8601 UTC: `2024-06-15T10:30:00.000Z`
253
- - `@column.date()` → UTC date only: `2024-06-15`
253
+ - `@column.date()` → date string: `2024-06-15`
254
254
 
255
255
  ---
256
256
 
@@ -650,6 +650,8 @@ await User.updateMany([
650
650
 
651
651
  Records with the same SKIP pattern are batched together for efficient INSERT. Each database uses native batch syntax while ensuring SKIPped columns receive DEFAULT values (createMany) or retain existing values (updateMany).
652
652
 
653
+ > **Note on `createMany` with SKIP:** `createMany` groups records by their SKIP pattern and issues a separate INSERT per group, because SQL does not allow mixing `DEFAULT` with array-based bulk insert (`UNNEST`). `updateMany` does not have this limitation — it handles SKIP in a single query using boolean flags. For best performance with `createMany`, prefer providing explicit values for all columns instead of using SKIP.
654
+
653
655
  ---
654
656
 
655
657
  ## Relation Decorators
@@ -1136,7 +1138,7 @@ The `sql` tag automatically converts interpolated values to `?` placeholders and
1136
1138
 
1137
1139
  ### Type-Safe Column References in QUERY
1138
1140
 
1139
- Use the `sql` tag with Column and `TABLE_NAME` references for refactoring safety. Columns and table names are embedded directly in SQL; they are not parameterized:
1141
+ Use the `sql` tag with Column references and **Model classes** for refactoring safety. Columns and table names are embedded directly in SQL; they are not parameterized:
1140
1142
 
1141
1143
  ```typescript
1142
1144
  import { sql } from 'litedbmodel';
@@ -1152,13 +1154,15 @@ class UserActivityModel extends DBModel {
1152
1154
  ${User.id} AS user_id,
1153
1155
  ${User.name} AS user_name,
1154
1156
  COUNT(${Post.id}) AS total_posts
1155
- FROM ${User.TABLE_NAME}
1156
- LEFT JOIN ${Post.TABLE_NAME} ON ${User.id} = ${Post.user_id}
1157
+ FROM ${User}
1158
+ LEFT JOIN ${Post} ON ${User.id} = ${Post.user_id}
1157
1159
  GROUP BY ${User.id}, ${User.name}
1158
1160
  `;
1159
1161
  }
1160
1162
  ```
1161
1163
 
1164
+ Passing a Model class (`${User}`) in the `sql` tag expands to its `TABLE_NAME`. This is consistent with column references (`${User.id}` → column name).
1165
+
1162
1166
  ### Use Cases
1163
1167
 
1164
1168
  | Use Case | Example |
@@ -1338,7 +1342,7 @@ const article = await CmsDB.withWriter(async () => {
1338
1342
  | **IDE Refactoring** | ✅ | ❌ | ⚠️ Partial | ❌ | ❌ |
1339
1343
  | **SKIP Pattern** | ✅ | ❌ | ❌ | ❌ | ❌ |
1340
1344
  | **Extensibility** | Middleware | Plugins | ❌ Manual | Subscribers | Extensions |
1341
- | **Performance** | 🏆 Fastest | 🏆 Fastest | Fast | Medium | Slow |
1345
+ | **Performance** | 🏆 Fastest (9/19 wins) | Fast | Fast | Medium | Slow |
1342
1346
 
1343
1347
  > See [COMPARISON.md](./docs/COMPARISON.md) for detailed analysis and [BENCHMARK.md](./docs/BENCHMARK.md) for benchmarks.
1344
1348
 
package/dist/DBModel.d.ts CHANGED
@@ -13,6 +13,7 @@ import { type KeyPair, type CompositeKeyPairs } from './decorators';
13
13
  import { LazyRelationContext, type RelationType } from './LazyRelation';
14
14
  interface TransactionContext {
15
15
  connection: DBConnection;
16
+ handler?: DBHandler;
16
17
  }
17
18
  interface WriterContext {
18
19
  readonly: true;
@@ -80,8 +81,8 @@ export declare function getTransactionClient(): DBConnection | undefined;
80
81
  * @category Core
81
82
  */
82
83
  export declare abstract class DBModel {
83
- /** Table name */
84
- static TABLE_NAME: string;
84
+ /** @internal Table name — use getTableName() for external access */
85
+ protected static TABLE_NAME: string;
85
86
  /**
86
87
  * Returns the model class with type-safe column properties.
87
88
  * Use this instead of manual casting with `ColumnsOf`.
@@ -101,16 +102,16 @@ export declare abstract class DBModel {
101
102
  * ```
102
103
  */
103
104
  static asModel<T extends typeof DBModel>(this: T): T & ColumnsOf<InstanceType<T>>;
104
- /** Table name for UPDATE/DELETE (if different from TABLE_NAME) */
105
- static UPDATE_TABLE_NAME: string | null;
106
- /** Default SELECT columns */
107
- static SELECT_COLUMN: string;
108
- /** Default ORDER BY clause (type-safe OrderColumn or OrderColumn[]) */
109
- static DEFAULT_ORDER: OrderSpec | null;
110
- /** Default GROUP BY clause (Column, Column[], or raw string) */
111
- static DEFAULT_GROUP: Column | Column[] | string | null;
112
- /** Default filter conditions applied to all queries (use tuple format like find()) */
113
- static FIND_FILTER: Conds | null;
105
+ /** @internal Table name for UPDATE/DELETE — use getUpdateTableName() for external access */
106
+ protected static UPDATE_TABLE_NAME: string | null;
107
+ /** @internal Default SELECT columns — set via @model decorator */
108
+ protected static SELECT_COLUMN: string;
109
+ /** @internal Default ORDER BY — set via @model decorator */
110
+ protected static DEFAULT_ORDER: OrderSpec | null;
111
+ /** @internal Default GROUP BY — set via @model decorator */
112
+ protected static DEFAULT_GROUP: Column | Column[] | string | null;
113
+ /** @internal Default filter conditions — set via @model decorator */
114
+ protected static FIND_FILTER: Conds | null;
114
115
  /**
115
116
  * SQL query for query-based models (view models, aggregations, etc.)
116
117
  * When defined, the model uses this query as a CTE instead of TABLE_NAME.
@@ -131,12 +132,12 @@ export declare abstract class DBModel {
131
132
  * @internal
132
133
  */
133
134
  protected static _queryParams: unknown[] | null;
134
- /** Primary key columns (use getter to reference Model.column) */
135
- static PKEY_COLUMNS: Column[] | null;
136
- /** Sequence name for auto-increment (use getter if needed) */
137
- static SEQ_NAME: string | null;
138
- /** ID type: 'serial' for auto-increment, 'uuid' for UUID generation */
139
- static ID_TYPE: 'serial' | 'uuid' | null;
135
+ /** @internal Primary key columns — set via @model decorator */
136
+ protected static PKEY_COLUMNS: Column[] | null;
137
+ /** @internal Sequence name — set via @model decorator */
138
+ protected static SEQ_NAME: string | null;
139
+ /** @internal ID type — set via @model decorator */
140
+ protected static ID_TYPE: 'serial' | 'uuid' | null;
140
141
  /** Database config */
141
142
  protected static _dbConfig: DBConfig | null;
142
143
  /** Limit config for safety guards */
@@ -633,10 +634,12 @@ export declare abstract class DBModel {
633
634
  static getUpdateTableName(): string;
634
635
  /** Instance reference to the static class */
635
636
  protected _modelClass: typeof DBModel;
636
- /** Per-instance cache for loaded relations */
637
- protected _relationCache: Map<string, unknown>;
637
+ /** Per-instance cache for loaded relations (lazy-initialized) */
638
+ protected _relationCache: Map<string, unknown> | null;
638
639
  /** Reference to the relation context (for batch loading) */
639
640
  private _relationContext;
641
+ /** Deferred context info: [sourceClass, records] set by _select, resolved on first relation access */
642
+ _deferredContext: [typeof DBModel, DBModel[]] | null;
640
643
  constructor();
641
644
  /**
642
645
  * Set the relation context for this record.
@@ -1 +1 @@
1
- {"version":3,"file":"DBModel.d.ts","sourceRoot":"","sources":["../src/DBModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DBModel.d.ts","sourceRoot":"","sources":["../src/DBModel.ts"],"names":[],"mappings":"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"}
package/dist/DBModel.js CHANGED
@@ -99,7 +99,7 @@ class DBModel {
99
99
  // ============================================
100
100
  // Static Table Configuration (Override in derived classes)
101
101
  // ============================================
102
- /** Table name */
102
+ /** @internal Table name — use getTableName() for external access */
103
103
  static TABLE_NAME = '';
104
104
  /**
105
105
  * Returns the model class with type-safe column properties.
@@ -122,15 +122,15 @@ class DBModel {
122
122
  static asModel() {
123
123
  return this;
124
124
  }
125
- /** Table name for UPDATE/DELETE (if different from TABLE_NAME) */
125
+ /** @internal Table name for UPDATE/DELETE — use getUpdateTableName() for external access */
126
126
  static UPDATE_TABLE_NAME = null;
127
- /** Default SELECT columns */
127
+ /** @internal Default SELECT columns — set via @model decorator */
128
128
  static SELECT_COLUMN = '*';
129
- /** Default ORDER BY clause (type-safe OrderColumn or OrderColumn[]) */
129
+ /** @internal Default ORDER BY — set via @model decorator */
130
130
  static DEFAULT_ORDER = null;
131
- /** Default GROUP BY clause (Column, Column[], or raw string) */
131
+ /** @internal Default GROUP BY — set via @model decorator */
132
132
  static DEFAULT_GROUP = null;
133
- /** Default filter conditions applied to all queries (use tuple format like find()) */
133
+ /** @internal Default filter conditions — set via @model decorator */
134
134
  static FIND_FILTER = null;
135
135
  /**
136
136
  * SQL query for query-based models (view models, aggregations, etc.)
@@ -152,11 +152,11 @@ class DBModel {
152
152
  * @internal
153
153
  */
154
154
  static _queryParams = null;
155
- /** Primary key columns (use getter to reference Model.column) */
155
+ /** @internal Primary key columns — set via @model decorator */
156
156
  static PKEY_COLUMNS = null;
157
- /** Sequence name for auto-increment (use getter if needed) */
157
+ /** @internal Sequence name — set via @model decorator */
158
158
  static SEQ_NAME = null;
159
- /** ID type: 'serial' for auto-increment, 'uuid' for UUID generation */
159
+ /** @internal ID type — set via @model decorator */
160
160
  static ID_TYPE = null;
161
161
  // ============================================
162
162
  // Database Configuration
@@ -276,7 +276,10 @@ class DBModel {
276
276
  // Check if we're in a transaction
277
277
  const txContext = this._getTransactionContext().getStore();
278
278
  if (txContext) {
279
- return (0, DBHandler_1.createHandlerWithConnection)(txContext.connection);
279
+ if (!txContext.handler) {
280
+ txContext.handler = (0, DBHandler_1.createHandlerWithConnection)(txContext.connection);
281
+ }
282
+ return txContext.handler;
280
283
  }
281
284
  const handler = (0, DBHandler_1.getDBHandler)();
282
285
  // Check if we're in withWriter context
@@ -759,26 +762,39 @@ class DBModel {
759
762
  const records = rawRecords.map(r => (0, decorators_1.serializeRecord)(this, r, typeCast));
760
763
  // Group records by their column pattern (SKIP pattern grouping)
761
764
  // Each group has the same set of columns, enabling batch INSERT without DEFAULT keyword
762
- const groupedByPattern = new Map();
763
- for (let i = 0; i < records.length; i++) {
764
- const record = records[i];
765
- // Get columns present in this record (excluding undefined/SKIP values)
765
+ // Fast path: single record — skip Map/sort/join overhead
766
+ let groupedByPattern;
767
+ if (records.length === 1) {
768
+ const record = records[0];
766
769
  const recordColumns = [];
767
770
  for (const key of Object.keys(record)) {
768
771
  const val = record[key];
769
- // Skip DBImmediateValue with 'DEFAULT' and undefined values
770
772
  if (val !== undefined && !(val instanceof DBValues_1.DBImmediateValue && val.value === 'DEFAULT')) {
771
773
  recordColumns.push(key);
772
774
  }
773
775
  }
774
- recordColumns.sort(); // Sort for consistent pattern key
775
- const patternKey = recordColumns.join(',');
776
- if (!groupedByPattern.has(patternKey)) {
777
- groupedByPattern.set(patternKey, { columns: recordColumns, records: [], rawRecords: [] });
776
+ groupedByPattern = new Map([['_', { columns: recordColumns, records: [record], rawRecords: [rawRecords[0]] }]]);
777
+ }
778
+ else {
779
+ groupedByPattern = new Map();
780
+ for (let i = 0; i < records.length; i++) {
781
+ const record = records[i];
782
+ const recordColumns = [];
783
+ for (const key of Object.keys(record)) {
784
+ const val = record[key];
785
+ if (val !== undefined && !(val instanceof DBValues_1.DBImmediateValue && val.value === 'DEFAULT')) {
786
+ recordColumns.push(key);
787
+ }
788
+ }
789
+ recordColumns.sort();
790
+ const patternKey = recordColumns.join(',');
791
+ if (!groupedByPattern.has(patternKey)) {
792
+ groupedByPattern.set(patternKey, { columns: recordColumns, records: [], rawRecords: [] });
793
+ }
794
+ const group = groupedByPattern.get(patternKey);
795
+ group.records.push(record);
796
+ group.rawRecords.push(rawRecords[i]);
778
797
  }
779
- const group = groupedByPattern.get(patternKey);
780
- group.records.push(record);
781
- group.rawRecords.push(rawRecords[i]);
782
798
  }
783
799
  // Helper to convert Column symbols to strings
784
800
  const toColName = (col) => typeof col === 'function' || typeof col === 'object' ? String(col) : String(col);
@@ -1296,10 +1312,12 @@ class DBModel {
1296
1312
  // ============================================
1297
1313
  /** Instance reference to the static class */
1298
1314
  _modelClass;
1299
- /** Per-instance cache for loaded relations */
1300
- _relationCache = new Map();
1315
+ /** Per-instance cache for loaded relations (lazy-initialized) */
1316
+ _relationCache = null;
1301
1317
  /** Reference to the relation context (for batch loading) */
1302
1318
  _relationContext = null;
1319
+ /** Deferred context info: [sourceClass, records] set by _select, resolved on first relation access */
1320
+ _deferredContext = null;
1303
1321
  constructor() {
1304
1322
  this._modelClass = this.constructor;
1305
1323
  }
@@ -1313,6 +1331,7 @@ class DBModel {
1313
1331
  */
1314
1332
  _setRelationContext(context) {
1315
1333
  this._relationContext = context;
1334
+ this._deferredContext = null;
1316
1335
  }
1317
1336
  /**
1318
1337
  * Get the relation context (or create one for single record).
@@ -1320,8 +1339,16 @@ class DBModel {
1320
1339
  */
1321
1340
  _getRelationContext() {
1322
1341
  if (!this._relationContext) {
1323
- const ModelClass = this.constructor;
1324
- this._relationContext = new LazyRelation_1.LazyRelationContext(ModelClass, [this]);
1342
+ if (this._deferredContext) {
1343
+ const [sourceClass, records] = this._deferredContext;
1344
+ // Materialize context for all records in the batch
1345
+ new LazyRelation_1.LazyRelationContext(sourceClass, records);
1346
+ // Constructor calls _setRelationContext on each record, clearing _deferredContext
1347
+ }
1348
+ else {
1349
+ const ModelClass = this.constructor;
1350
+ this._relationContext = new LazyRelation_1.LazyRelationContext(ModelClass, [this]);
1351
+ }
1325
1352
  }
1326
1353
  return this._relationContext;
1327
1354
  }
@@ -1330,7 +1357,9 @@ class DBModel {
1330
1357
  * Also clears the context cache to force reload from DB.
1331
1358
  */
1332
1359
  clearRelationCache() {
1333
- this._relationCache.clear();
1360
+ if (this._relationCache) {
1361
+ this._relationCache.clear();
1362
+ }
1334
1363
  if (this._relationContext) {
1335
1364
  this._relationContext.clearCache();
1336
1365
  }
@@ -1372,7 +1401,7 @@ class DBModel {
1372
1401
  const context = this._getRelationContext();
1373
1402
  const cacheKey = context.getCacheKey(relationType, relationConfig);
1374
1403
  // Return cached value if available
1375
- if (this._relationCache.has(cacheKey)) {
1404
+ if (this._relationCache?.has(cacheKey)) {
1376
1405
  const cached = this._relationCache.get(cacheKey);
1377
1406
  if (relationType === 'hasMany') {
1378
1407
  return cached;
@@ -1392,6 +1421,8 @@ class DBModel {
1392
1421
  throw new types_1.LimitExceededError(effectiveLimit, result.length, 'relation', this.constructor.name, config.relationName);
1393
1422
  }
1394
1423
  }
1424
+ if (!this._relationCache)
1425
+ this._relationCache = new Map();
1395
1426
  this._relationCache.set(cacheKey, result);
1396
1427
  if (relationType === 'hasMany') {
1397
1428
  return result;
@@ -2175,10 +2206,12 @@ class DBModel {
2175
2206
  const result = await this.execute(s, p);
2176
2207
  // Create model instances from raw rows
2177
2208
  const instances = result.rows.map((row) => this._createInstance(row));
2178
- // Auto-setup relation context for batch loading when multiple records
2209
+ // Defer relation context setup — only materialized on first relation access
2179
2210
  if (instances.length > 1) {
2180
- // Context constructor sets itself on each record automatically
2181
- new LazyRelation_1.LazyRelationContext(this, instances);
2211
+ const deferredRef = [this, instances];
2212
+ for (const inst of instances) {
2213
+ inst._deferredContext = deferredRef;
2214
+ }
2182
2215
  }
2183
2216
  return instances;
2184
2217
  };