litedbmodel 2.2.6 → 2.2.8

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 (142) hide show
  1. package/README.md +146 -86
  2. package/dist/Column.d.ts +30 -6
  3. package/dist/Column.d.ts.map +1 -1
  4. package/dist/Column.js +30 -10
  5. package/dist/Column.js.map +1 -1
  6. package/dist/DBModel.d.ts +28 -16
  7. package/dist/DBModel.d.ts.map +1 -1
  8. package/dist/DBModel.js +60 -46
  9. package/dist/DBModel.js.map +1 -1
  10. package/dist/LazyRelation.d.ts +2 -2
  11. package/dist/LazyRelation.js +2 -2
  12. package/dist/TypeCast.d.ts +2 -2
  13. package/dist/TypeCast.d.ts.map +1 -1
  14. package/dist/TypeCast.js +7 -9
  15. package/dist/TypeCast.js.map +1 -1
  16. package/dist/decorators.d.ts +128 -60
  17. package/dist/decorators.d.ts.map +1 -1
  18. package/dist/decorators.js +393 -251
  19. package/dist/decorators.js.map +1 -1
  20. package/dist/drivers/MysqlHelper.d.ts +3 -3
  21. package/dist/drivers/MysqlHelper.d.ts.map +1 -1
  22. package/dist/drivers/MysqlHelper.js +3 -17
  23. package/dist/drivers/MysqlHelper.js.map +1 -1
  24. package/dist/drivers/MysqlSqlBuilder.d.ts.map +1 -1
  25. package/dist/drivers/MysqlSqlBuilder.js +2 -13
  26. package/dist/drivers/MysqlSqlBuilder.js.map +1 -1
  27. package/dist/drivers/PostgresHelper.d.ts +3 -2
  28. package/dist/drivers/PostgresHelper.d.ts.map +1 -1
  29. package/dist/drivers/PostgresHelper.js +3 -16
  30. package/dist/drivers/PostgresHelper.js.map +1 -1
  31. package/dist/drivers/PostgresSqlBuilder.d.ts.map +1 -1
  32. package/dist/drivers/PostgresSqlBuilder.js +2 -14
  33. package/dist/drivers/PostgresSqlBuilder.js.map +1 -1
  34. package/dist/drivers/SqliteHelper.d.ts +4 -2
  35. package/dist/drivers/SqliteHelper.d.ts.map +1 -1
  36. package/dist/drivers/SqliteHelper.js +4 -2
  37. package/dist/drivers/SqliteHelper.js.map +1 -1
  38. package/dist/drivers/SqliteSqlBuilder.d.ts.map +1 -1
  39. package/dist/drivers/SqliteSqlBuilder.js +2 -13
  40. package/dist/drivers/SqliteSqlBuilder.js.map +1 -1
  41. package/dist/index.cjs +861 -816
  42. package/dist/index.d.ts +2 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/scp/coltype.d.ts +14 -5
  46. package/dist/scp/coltype.d.ts.map +1 -1
  47. package/dist/scp/coltype.js +35 -36
  48. package/dist/scp/coltype.js.map +1 -1
  49. package/dist/scp/decorator-adapter.d.ts +12 -15
  50. package/dist/scp/decorator-adapter.d.ts.map +1 -1
  51. package/dist/scp/decorator-adapter.js +13 -15
  52. package/dist/scp/decorator-adapter.js.map +1 -1
  53. package/dist/scp/index.cjs +237 -233
  54. package/dist/scp/index.mjs +237 -233
  55. package/dist/scp/makesql/json-array.d.ts +6 -0
  56. package/dist/scp/makesql/json-array.d.ts.map +1 -1
  57. package/dist/scp/makesql/json-array.js +17 -2
  58. package/dist/scp/makesql/json-array.js.map +1 -1
  59. package/dist/scp/makesql/tx.d.ts.map +1 -1
  60. package/dist/scp/makesql/tx.js +1 -3
  61. package/dist/scp/makesql/tx.js.map +1 -1
  62. package/dist/scp/relation.d.ts.map +1 -1
  63. package/dist/scp/relation.js +8 -10
  64. package/dist/scp/relation.js.map +1 -1
  65. package/docs/BENCHMARK.md +3 -3
  66. package/docs/COMPARISON.md +7 -7
  67. package/docs/api/README.md +18 -18
  68. package/docs/api/classes/Conditions.md +10 -10
  69. package/docs/api/classes/DBHandler.md +1 -1
  70. package/docs/api/classes/DBModel.md +84 -84
  71. package/docs/api/classes/LimitExceededError.md +1 -1
  72. package/docs/api/classes/Middleware.md +1 -1
  73. package/docs/api/classes/SqlRaw.md +1 -1
  74. package/docs/api/classes/SqlRef.md +1 -1
  75. package/docs/api/classes/Values.md +6 -6
  76. package/docs/api/classes/WriteInReadOnlyContextError.md +1 -1
  77. package/docs/api/classes/WriteOutsideTransactionError.md +1 -1
  78. package/docs/api/functions/belongsTo.md +10 -4
  79. package/docs/api/functions/closeAllPools.md +1 -1
  80. package/docs/api/functions/condsToRecord.md +4 -3
  81. package/docs/api/functions/createMiddleware.md +1 -1
  82. package/docs/api/functions/createPostgresDriver.md +1 -1
  83. package/docs/api/functions/createSqliteDriver.md +1 -1
  84. package/docs/api/functions/dbCast.md +1 -1
  85. package/docs/api/functions/dbCastIn.md +1 -1
  86. package/docs/api/functions/dbDynamic.md +1 -1
  87. package/docs/api/functions/dbFalse.md +1 -1
  88. package/docs/api/functions/dbImmediate.md +1 -1
  89. package/docs/api/functions/dbIn.md +1 -1
  90. package/docs/api/functions/dbNotNull.md +1 -1
  91. package/docs/api/functions/dbNow.md +1 -1
  92. package/docs/api/functions/dbNull.md +1 -1
  93. package/docs/api/functions/dbRaw.md +1 -1
  94. package/docs/api/functions/dbTrue.md +1 -1
  95. package/docs/api/functions/dbUuid.md +1 -1
  96. package/docs/api/functions/dbUuidIn.md +1 -1
  97. package/docs/api/functions/formatLocalDate.md +2 -2
  98. package/docs/api/functions/formatUTCDate.md +2 -2
  99. package/docs/api/functions/getDBConfig.md +1 -1
  100. package/docs/api/functions/getDBHandler.md +1 -1
  101. package/docs/api/functions/getTransactionConnection.md +2 -2
  102. package/docs/api/functions/getTransactionContext.md +2 -2
  103. package/docs/api/functions/hasMany.md +11 -5
  104. package/docs/api/functions/hasOne.md +10 -4
  105. package/docs/api/functions/initDBHandler.md +1 -1
  106. package/docs/api/functions/isAnySqlFragment.md +1 -1
  107. package/docs/api/functions/isConnectionError.md +1 -1
  108. package/docs/api/functions/isSqlCondition.md +1 -1
  109. package/docs/api/functions/isSqlFragment.md +1 -1
  110. package/docs/api/functions/isSqlRaw.md +1 -1
  111. package/docs/api/functions/isSqlRef.md +1 -1
  112. package/docs/api/functions/isSqlTypedFragment.md +1 -1
  113. package/docs/api/functions/model.md +8 -155
  114. package/docs/api/functions/parentRef.md +1 -1
  115. package/docs/api/functions/sql.md +1 -1
  116. package/docs/api/globals.md +99 -58
  117. package/docs/api/interfaces/Column.md +32 -31
  118. package/docs/api/interfaces/ColumnDecorator.md +81 -0
  119. package/docs/api/interfaces/ColumnOptions.md +6 -10
  120. package/docs/api/interfaces/CreatedMiddlewareClass.md +1 -1
  121. package/docs/api/interfaces/DBConfig.md +1 -1
  122. package/docs/api/interfaces/DBConfigOptions.md +1 -1
  123. package/docs/api/interfaces/DeleteOptions.md +1 -1
  124. package/docs/api/interfaces/InsertOptions.md +1 -1
  125. package/docs/api/interfaces/LimitConfig.md +1 -1
  126. package/docs/api/interfaces/MiddlewareConfig.md +1 -1
  127. package/docs/api/interfaces/ModelClassDecorator.md +64 -0
  128. package/docs/api/interfaces/ModelOptions.md +1 -1
  129. package/docs/api/interfaces/PkeyResult.md +1 -1
  130. package/docs/api/interfaces/RelationDecorator.md +72 -0
  131. package/docs/api/interfaces/SelectOptions.md +1 -1
  132. package/docs/api/interfaces/SqlCondition.md +1 -1
  133. package/docs/api/interfaces/SqlFragment.md +1 -1
  134. package/docs/api/interfaces/SqlTypedFragment.md +1 -1
  135. package/docs/api/interfaces/TransactionOptions.md +1 -1
  136. package/docs/api/interfaces/UpdateManyOptions.md +1 -1
  137. package/docs/api/interfaces/UpdateOptions.md +1 -1
  138. package/docs/api-guide.md +17 -17
  139. package/docs/architecture.md +14 -10
  140. package/docs/sql-tagged-template.md +5 -5
  141. package/eslint-plugin/rules/require-declare-for-relations.js +59 -4
  142. package/package.json +8 -7
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: Values\<Model\>
8
8
 
9
- Defined in: [Column.ts:566](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L566)
9
+ Defined in: [Column.ts:577](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L577)
10
10
 
11
11
  Type-safe builder for update/create value pairs.
12
12
  Use array literals for static values, builder for dynamic construction.
@@ -48,7 +48,7 @@ await User.create(values.build());
48
48
  new Values<Model>(initial?: readonly readonly [Column<any, Model>, unknown][]): Values<Model>;
49
49
  ```
50
50
 
51
- Defined in: [Column.ts:572](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L572)
51
+ Defined in: [Column.ts:583](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L583)
52
52
 
53
53
  Create a Values builder, optionally with initial pairs.
54
54
 
@@ -72,7 +72,7 @@ Create a Values builder, optionally with initial pairs.
72
72
  get length(): number;
73
73
  ```
74
74
 
75
- Defined in: [Column.ts:596](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L596)
75
+ Defined in: [Column.ts:607](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L607)
76
76
 
77
77
  Get the number of pairs.
78
78
 
@@ -88,7 +88,7 @@ Get the number of pairs.
88
88
  add<V>(column: Column<V, Model>, value: V | null | undefined): this;
89
89
  ```
90
90
 
91
- Defined in: [Column.ts:581](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L581)
91
+ Defined in: [Column.ts:592](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L592)
92
92
 
93
93
  Add a type-safe column-value pair.
94
94
 
@@ -117,7 +117,7 @@ Add a type-safe column-value pair.
117
117
  build(): readonly readonly [Column<any, any>, unknown][];
118
118
  ```
119
119
 
120
- Defined in: [Column.ts:589](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L589)
120
+ Defined in: [Column.ts:600](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L600)
121
121
 
122
122
  Build the final array for use with update/create.
123
123
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -7,14 +7,20 @@
7
7
  # Function: belongsTo()
8
8
 
9
9
  ```ts
10
- function belongsTo(keys: KeysFactory, options?: RelationDecoratorOptions): PropertyDecorator;
10
+ function belongsTo<Value>(keys: KeysFactory, options?: RelationDecoratorOptions): RelationDecorator<Value>;
11
11
  ```
12
12
 
13
- Defined in: [decorators.ts:909](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L909)
13
+ Defined in: [decorators.ts:1050](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1050)
14
14
 
15
15
  BelongsTo relation decorator (N:1).
16
16
  Defines a many-to-one relationship where this model belongs to a parent record.
17
17
 
18
+ ## Type Parameters
19
+
20
+ | Type Parameter | Default type |
21
+ | ------ | ------ |
22
+ | `Value` | `unknown` |
23
+
18
24
  ## Parameters
19
25
 
20
26
  | Parameter | Type | Description |
@@ -24,7 +30,7 @@ Defines a many-to-one relationship where this model belongs to a parent record.
24
30
 
25
31
  ## Returns
26
32
 
27
- `PropertyDecorator`
33
+ [`RelationDecorator`](../interfaces/RelationDecorator.md)\<`Value`\>
28
34
 
29
35
  ## Example
30
36
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -7,16 +7,17 @@
7
7
  # Function: condsToRecord()
8
8
 
9
9
  ```ts
10
- function condsToRecord(conditions: Conds): Record<string, unknown>;
10
+ function condsToRecord(conditions: Conds, typeCast?: DriverTypeCast): Record<string, unknown>;
11
11
  ```
12
12
 
13
- Defined in: [Column.ts:1006](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L1006)
13
+ Defined in: [Column.ts:1044](https://github.com/foo-ogawa/litedbmodel/blob/main/src/Column.ts#L1044)
14
14
 
15
15
  ## Parameters
16
16
 
17
17
  | Parameter | Type |
18
18
  | ------ | ------ |
19
19
  | `conditions` | `Conds` |
20
+ | `typeCast?` | `DriverTypeCast` |
20
21
 
21
22
  ## Returns
22
23
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -10,7 +10,7 @@
10
10
  function formatLocalDate(d: Date): string;
11
11
  ```
12
12
 
13
- Defined in: [TypeCast.ts:310](https://github.com/foo-ogawa/litedbmodel/blob/main/src/TypeCast.ts#L310)
13
+ Defined in: [TypeCast.ts:308](https://github.com/foo-ogawa/litedbmodel/blob/main/src/TypeCast.ts#L308)
14
14
 
15
15
  Format Date as YYYY-MM-DD using local time components
16
16
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -10,7 +10,7 @@
10
10
  function formatUTCDate(d: Date): string;
11
11
  ```
12
12
 
13
- Defined in: [TypeCast.ts:318](https://github.com/foo-ogawa/litedbmodel/blob/main/src/TypeCast.ts#L318)
13
+ Defined in: [TypeCast.ts:316](https://github.com/foo-ogawa/litedbmodel/blob/main/src/TypeCast.ts#L316)
14
14
 
15
15
  Format Date as YYYY-MM-DD using UTC components
16
16
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -10,7 +10,7 @@
10
10
  function getTransactionConnection(): DBConnection | undefined;
11
11
  ```
12
12
 
13
- Defined in: [DBModel.ts:74](https://github.com/foo-ogawa/litedbmodel/blob/main/src/DBModel.ts#L74)
13
+ Defined in: [DBModel.ts:75](https://github.com/foo-ogawa/litedbmodel/blob/main/src/DBModel.ts#L75)
14
14
 
15
15
  Get current transaction connection (if in a transaction)
16
16
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -10,7 +10,7 @@
10
10
  function getTransactionContext(): TransactionContext | undefined;
11
11
  ```
12
12
 
13
- Defined in: [DBModel.ts:67](https://github.com/foo-ogawa/litedbmodel/blob/main/src/DBModel.ts#L67)
13
+ Defined in: [DBModel.ts:68](https://github.com/foo-ogawa/litedbmodel/blob/main/src/DBModel.ts#L68)
14
14
 
15
15
  Get current transaction context (if in a transaction)
16
16
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -7,14 +7,20 @@
7
7
  # Function: hasMany()
8
8
 
9
9
  ```ts
10
- function hasMany(keys: KeysFactory, options?: RelationDecoratorOptions): PropertyDecorator;
10
+ function hasMany<Value>(keys: KeysFactory, options?: RelationDecoratorOptions): RelationDecorator<Value>;
11
11
  ```
12
12
 
13
- Defined in: [decorators.ts:877](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L877)
13
+ Defined in: [decorators.ts:1020](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1020)
14
14
 
15
15
  HasMany relation decorator (1:N).
16
16
  Defines a one-to-many relationship where this model has many related records.
17
17
 
18
+ ## Type Parameters
19
+
20
+ | Type Parameter | Default type |
21
+ | ------ | ------ |
22
+ | `Value` | `unknown` |
23
+
18
24
  ## Parameters
19
25
 
20
26
  | Parameter | Type | Description |
@@ -24,12 +30,12 @@ Defines a one-to-many relationship where this model has many related records.
24
30
 
25
31
  ## Returns
26
32
 
27
- `PropertyDecorator`
33
+ [`RelationDecorator`](../interfaces/RelationDecorator.md)\<`Value`\>
28
34
 
29
35
  ## Example
30
36
 
31
37
  ```typescript
32
- // Single key relation
38
+ // Single key relation (legacy decorators: `declare`; standard decorators: `posts!: …`)
33
39
  @hasMany(() => [User.id, Post.author_id])
34
40
  declare posts: Promise<Post[]>;
35
41
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -7,14 +7,20 @@
7
7
  # Function: hasOne()
8
8
 
9
9
  ```ts
10
- function hasOne(keys: KeysFactory, options?: RelationDecoratorOptions): PropertyDecorator;
10
+ function hasOne<Value>(keys: KeysFactory, options?: RelationDecoratorOptions): RelationDecorator<Value>;
11
11
  ```
12
12
 
13
- Defined in: [decorators.ts:941](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L941)
13
+ Defined in: [decorators.ts:1080](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1080)
14
14
 
15
15
  HasOne relation decorator (1:1).
16
16
  Defines a one-to-one relationship where this model has one related record.
17
17
 
18
+ ## Type Parameters
19
+
20
+ | Type Parameter | Default type |
21
+ | ------ | ------ |
22
+ | `Value` | `unknown` |
23
+
18
24
  ## Parameters
19
25
 
20
26
  | Parameter | Type | Description |
@@ -24,7 +30,7 @@ Defines a one-to-one relationship where this model has one related record.
24
30
 
25
31
  ## Returns
26
32
 
27
- `PropertyDecorator`
33
+ [`RelationDecorator`](../interfaces/RelationDecorator.md)\<`Value`\>
28
34
 
29
35
  ## Example
30
36
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -1,4 +1,4 @@
1
- [**litedbmodel v2.2.6**](../README.md)
1
+ [**litedbmodel v2.2.8**](../README.md)
2
2
 
3
3
  ***
4
4
 
@@ -12,17 +12,7 @@
12
12
  function model<T>(constructor: T): T;
13
13
  ```
14
14
 
15
- Defined in: [decorators.ts:1006](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1006)
16
-
17
- Model class decorator.
18
-
19
- Can be used with or without table name:
20
- - `@model` - uses class name as table name (via TABLE_NAME)
21
- - `@model('users')` - sets TABLE_NAME to 'users'
22
-
23
- Automatically:
24
- 1. Sets static TABLE_NAME property (if table name provided)
25
- 2. Creates static Column properties for each
15
+ Defined in: [decorators.ts:1149](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1149)
26
16
 
27
17
  ### Type Parameters
28
18
 
@@ -40,62 +30,13 @@ Automatically:
40
30
 
41
31
  `T`
42
32
 
43
- ### Column
44
-
45
- decorated property
46
- 3. Generates typeCastFromDB() method from
47
-
48
- ### Column
49
-
50
- type conversion settings
51
- 4. Creates relation getters from @hasMany, @belongsTo,
52
-
53
- ### Has One
54
-
55
- decorators
56
-
57
- ### Example
58
-
59
- ```typescript
60
- @model('users')
61
- class User extends DBModel {
62
- @column() id?: number;
63
- @column() name?: string;
64
- @column.boolean() is_active?: boolean;
65
- @column.datetime() created_at?: Date;
66
-
67
- @hasMany(() => [User.id, Post.author_id])
68
- declare posts: Promise<Post[]>;
69
- }
70
-
71
- // Usage - call column to get name as string for computed property key
72
- await User.findAll({ [User.id()]: 1 });
73
-
74
- // Or use condition builders with spread
75
- await User.findAll({ ...User.is_active.eq(true) });
76
-
77
- // Access relations
78
- const user = await User.findOne([[User.id, 1]]);
79
- const posts = await user.posts; // Batch loads with other users in context
80
- ```
81
-
82
33
  ## Call Signature
83
34
 
84
35
  ```ts
85
- function model(tableName: string): <T>(constructor: T) => T;
36
+ function model(tableName: string): ModelClassDecorator;
86
37
  ```
87
38
 
88
- Defined in: [decorators.ts:1010](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1010)
89
-
90
- Model class decorator.
91
-
92
- Can be used with or without table name:
93
- - `@model` - uses class name as table name (via TABLE_NAME)
94
- - `@model('users')` - sets TABLE_NAME to 'users'
95
-
96
- Automatically:
97
- 1. Sets static TABLE_NAME property (if table name provided)
98
- 2. Creates static Column properties for each
39
+ Defined in: [decorators.ts:1153](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1153)
99
40
 
100
41
  ### Parameters
101
42
 
@@ -105,64 +46,15 @@ Automatically:
105
46
 
106
47
  ### Returns
107
48
 
108
- \<`T`\>(`constructor`: `T`) => `T`
109
-
110
- ### Column
111
-
112
- decorated property
113
- 3. Generates typeCastFromDB() method from
114
-
115
- ### Column
116
-
117
- type conversion settings
118
- 4. Creates relation getters from @hasMany, @belongsTo,
119
-
120
- ### Has One
121
-
122
- decorators
123
-
124
- ### Example
125
-
126
- ```typescript
127
- @model('users')
128
- class User extends DBModel {
129
- @column() id?: number;
130
- @column() name?: string;
131
- @column.boolean() is_active?: boolean;
132
- @column.datetime() created_at?: Date;
133
-
134
- @hasMany(() => [User.id, Post.author_id])
135
- declare posts: Promise<Post[]>;
136
- }
137
-
138
- // Usage - call column to get name as string for computed property key
139
- await User.findAll({ [User.id()]: 1 });
140
-
141
- // Or use condition builders with spread
142
- await User.findAll({ ...User.is_active.eq(true) });
143
-
144
- // Access relations
145
- const user = await User.findOne([[User.id, 1]]);
146
- const posts = await user.posts; // Batch loads with other users in context
147
- ```
49
+ [`ModelClassDecorator`](../interfaces/ModelClassDecorator.md)
148
50
 
149
51
  ## Call Signature
150
52
 
151
53
  ```ts
152
- function model(tableName: string, options: ModelOptions): <T>(constructor: T) => T;
54
+ function model(tableName: string, options: ModelOptions): ModelClassDecorator;
153
55
  ```
154
56
 
155
- Defined in: [decorators.ts:1014](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1014)
156
-
157
- Model class decorator.
158
-
159
- Can be used with or without table name:
160
- - `@model` - uses class name as table name (via TABLE_NAME)
161
- - `@model('users')` - sets TABLE_NAME to 'users'
162
-
163
- Automatically:
164
- 1. Sets static TABLE_NAME property (if table name provided)
165
- 2. Creates static Column properties for each
57
+ Defined in: [decorators.ts:1155](https://github.com/foo-ogawa/litedbmodel/blob/main/src/decorators.ts#L1155)
166
58
 
167
59
  ### Parameters
168
60
 
@@ -173,43 +65,4 @@ Automatically:
173
65
 
174
66
  ### Returns
175
67
 
176
- \<`T`\>(`constructor`: `T`) => `T`
177
-
178
- ### Column
179
-
180
- decorated property
181
- 3. Generates typeCastFromDB() method from
182
-
183
- ### Column
184
-
185
- type conversion settings
186
- 4. Creates relation getters from @hasMany, @belongsTo,
187
-
188
- ### Has One
189
-
190
- decorators
191
-
192
- ### Example
193
-
194
- ```typescript
195
- @model('users')
196
- class User extends DBModel {
197
- @column() id?: number;
198
- @column() name?: string;
199
- @column.boolean() is_active?: boolean;
200
- @column.datetime() created_at?: Date;
201
-
202
- @hasMany(() => [User.id, Post.author_id])
203
- declare posts: Promise<Post[]>;
204
- }
205
-
206
- // Usage - call column to get name as string for computed property key
207
- await User.findAll({ [User.id()]: 1 });
208
-
209
- // Or use condition builders with spread
210
- await User.findAll({ ...User.is_active.eq(true) });
211
-
212
- // Access relations
213
- const user = await User.findOne([[User.id, 1]]);
214
- const posts = await user.posts; // Batch loads with other users in context
215
- ```
68
+ [`ModelClassDecorator`](../interfaces/ModelClassDecorator.md)