edinburgh 0.6.1 → 0.6.3
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/README.md +49 -30
- package/build/src/indexes.d.ts +4 -1
- package/build/src/indexes.js +10 -1
- package/build/src/indexes.js.map +1 -1
- package/build/src/models.d.ts +56 -34
- package/build/src/models.js +10 -2
- package/build/src/models.js.map +1 -1
- package/build/src/types.d.ts +28 -3
- package/build/src/types.js.map +1 -1
- package/package.json +2 -2
- package/skill/AnyModelClass.md +1 -1
- package/skill/FindOptions.md +4 -1
- package/skill/SKILL.md +16 -0
- package/skill/defineModel.md +3 -3
- package/skill/field.md +4 -4
- package/skill/link.md +1 -1
- package/src/indexes.ts +16 -2
- package/src/models.ts +91 -49
- package/src/types.ts +45 -5
package/README.md
CHANGED
|
@@ -192,6 +192,22 @@ await E.transact(() => {
|
|
|
192
192
|
});
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
+
If a primary key or named index includes a `link(...)` field, lookup helpers either accept the linked row's instance object or its primary key. For linked models with composite primary keys, pass the full tuple in that slot:
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
await E.transact(() => {
|
|
199
|
+
// So instead of..
|
|
200
|
+
const post1 = Post.getBy("author", Author.get(user.id), "Hello World");
|
|
201
|
+
// We can do..
|
|
202
|
+
const post2 = Post.getBy("author", user.id, "Hello World");
|
|
203
|
+
// Or..
|
|
204
|
+
const post3 = Post.getBy("author", [user.id], "Hello World");
|
|
205
|
+
|
|
206
|
+
// For an index that includes a link with a composite primary key..
|
|
207
|
+
const page = Comment.getBy("target", ["docs", "intro"], "overview");
|
|
208
|
+
});
|
|
209
|
+
```
|
|
210
|
+
|
|
195
211
|
#### Range Queries
|
|
196
212
|
|
|
197
213
|
Primary-key queries use `.find()`. Named unique and secondary indexes use `.findBy(name, ...)`:
|
|
@@ -593,13 +609,13 @@ Prefer the `ModelClass` type alias for annotations and the result of
|
|
|
593
609
|
|
|
594
610
|
**Type:** `typeof ModelClassRuntime`
|
|
595
611
|
|
|
596
|
-
### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
612
|
+
### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L132)
|
|
597
613
|
|
|
598
614
|
A model constructor with its generic information erased.
|
|
599
615
|
|
|
600
616
|
Useful when accepting or storing arbitrary registered model classes.
|
|
601
617
|
|
|
602
|
-
**Type:** `ModelClass<
|
|
618
|
+
**Type:** `ModelClass<object, any, any, readonly any[], any, any>`
|
|
603
619
|
|
|
604
620
|
### ModelBase · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L252)
|
|
605
621
|
|
|
@@ -815,14 +831,14 @@ Register a model class with the Edinburgh ORM system.
|
|
|
815
831
|
Converts a plain class into a fully-featured model with database persistence,
|
|
816
832
|
typed fields, primary key access, and optional secondary and unique indexes.
|
|
817
833
|
|
|
818
|
-
**Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string,
|
|
834
|
+
**Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, IndexSpec<T>>, const INDEX extends Record<string, IndexSpec<T>>>(tableName: string, cls: T, opts?: { ...; }) => ModelClass<...>`
|
|
819
835
|
|
|
820
836
|
**Type Parameters:**
|
|
821
837
|
|
|
822
838
|
- `T extends new () => any`
|
|
823
839
|
- `PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[]`
|
|
824
|
-
- `UNIQUE extends Record<string,
|
|
825
|
-
- `INDEX extends Record<string,
|
|
840
|
+
- `UNIQUE extends Record<string, IndexSpec<T>>`
|
|
841
|
+
- `INDEX extends Record<string, IndexSpec<T>>`
|
|
826
842
|
|
|
827
843
|
**Parameters:**
|
|
828
844
|
|
|
@@ -841,7 +857,7 @@ for tests, local resets, or tooling that needs a completely empty database.
|
|
|
841
857
|
|
|
842
858
|
**Signature:** `() => Promise<void>`
|
|
843
859
|
|
|
844
|
-
### field · [function](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
860
|
+
### field · [function](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L77)
|
|
845
861
|
|
|
846
862
|
Create a field definition for a model property.
|
|
847
863
|
|
|
@@ -849,16 +865,16 @@ This function uses TypeScript magic to return the field configuration object
|
|
|
849
865
|
while appearing to return the actual field value type to the type system.
|
|
850
866
|
This allows for both runtime introspection and compile-time type safety.
|
|
851
867
|
|
|
852
|
-
**Signature:** `<
|
|
868
|
+
**Signature:** `<TYPE extends TypeWrapper<any>>(type: TYPE, options?: Partial<FieldConfig<FieldValue<TYPE>>>) => FieldValue<TYPE>`
|
|
853
869
|
|
|
854
870
|
**Type Parameters:**
|
|
855
871
|
|
|
856
|
-
- `
|
|
872
|
+
- `TYPE extends TypeWrapper<any>` - The field type.
|
|
857
873
|
|
|
858
874
|
**Parameters:**
|
|
859
875
|
|
|
860
|
-
- `type:
|
|
861
|
-
- `options: Partial<FieldConfig<
|
|
876
|
+
- `type: TYPE` - The type wrapper for this field.
|
|
877
|
+
- `options: Partial<FieldConfig<FieldValue<TYPE>>>` (optional) - Additional field configuration options.
|
|
862
878
|
|
|
863
879
|
**Returns:** The field value (typed as T, but actually returns FieldConfig<T>).
|
|
864
880
|
|
|
@@ -1060,7 +1076,7 @@ const countType = E.literal(42);
|
|
|
1060
1076
|
|
|
1061
1077
|
Create a link type wrapper for model relationships.
|
|
1062
1078
|
|
|
1063
|
-
**Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T
|
|
1079
|
+
**Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>> & QueryArgCarrier<InstanceType<T> | LinkPrimaryKeyInput<LinkTargetPKArgs<T>>>; <const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<...>; }`
|
|
1064
1080
|
|
|
1065
1081
|
**Type Parameters:**
|
|
1066
1082
|
|
|
@@ -1090,7 +1106,7 @@ const Book = E.defineModel("Book", class {
|
|
|
1090
1106
|
|
|
1091
1107
|
**Signature:** `() => void`
|
|
1092
1108
|
|
|
1093
|
-
### FindOptions · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1109
|
+
### FindOptions · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L141)
|
|
1094
1110
|
|
|
1095
1111
|
Range-query options accepted by `find()`, `findBy()`, `batchProcess()`, and `batchProcessBy()`.
|
|
1096
1112
|
|
|
@@ -1098,7 +1114,10 @@ Supports exact-match lookups via `is`, inclusive bounds via `from` / `to`,
|
|
|
1098
1114
|
exclusive bounds via `after` / `before`, and reverse scans.
|
|
1099
1115
|
|
|
1100
1116
|
For single-field indexes, values can be passed directly. For composite indexes,
|
|
1101
|
-
pass tuples or partial tuples for prefix matching.
|
|
1117
|
+
pass tuples or partial tuples for prefix matching. If an index field is a
|
|
1118
|
+
`link(...)`, you may pass either the linked model instance or the linked
|
|
1119
|
+
model's primary key. Composite linked primary keys are passed as tuples in
|
|
1120
|
+
that slot.
|
|
1102
1121
|
|
|
1103
1122
|
**Type:** `(
|
|
1104
1123
|
(
|
|
@@ -1128,7 +1147,7 @@ pass tuples or partial tuples for prefix matching.
|
|
|
1128
1147
|
& (FETCH extends undefined ? { fetch?: undefined } : { fetch: FETCH })
|
|
1129
1148
|
)`
|
|
1130
1149
|
|
|
1131
|
-
### IndexRangeIterator · [class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1150
|
+
### IndexRangeIterator · [class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L90)
|
|
1132
1151
|
|
|
1133
1152
|
Iterator for range queries on indexes.
|
|
1134
1153
|
Handles common iteration logic for both primary and unique indexes.
|
|
@@ -1138,27 +1157,27 @@ Extends built-in Iterator to provide map/filter/reduce/toArray/etc.
|
|
|
1138
1157
|
|
|
1139
1158
|
- `ITEM`
|
|
1140
1159
|
|
|
1141
|
-
#### indexRangeIterator.[Symbol.iterator] · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1160
|
+
#### indexRangeIterator.[Symbol.iterator] · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L100)
|
|
1142
1161
|
|
|
1143
1162
|
**Signature:** `() => this`
|
|
1144
1163
|
|
|
1145
|
-
#### indexRangeIterator.next · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1164
|
+
#### indexRangeIterator.next · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L102)
|
|
1146
1165
|
|
|
1147
1166
|
**Signature:** `() => IteratorResult<ITEM, any>`
|
|
1148
1167
|
|
|
1149
|
-
#### indexRangeIterator.count · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1168
|
+
#### indexRangeIterator.count · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L110)
|
|
1150
1169
|
|
|
1151
1170
|
**Signature:** `() => number`
|
|
1152
1171
|
|
|
1153
|
-
#### indexRangeIterator.fetch · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1172
|
+
#### indexRangeIterator.fetch · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L112)
|
|
1154
1173
|
|
|
1155
1174
|
**Signature:** `() => ITEM`
|
|
1156
1175
|
|
|
1157
|
-
### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1176
|
+
### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L93)
|
|
1158
1177
|
|
|
1159
1178
|
**Type:** `Record<any, any> | "created" | "deleted"`
|
|
1160
1179
|
|
|
1161
|
-
### FieldConfig · [interface](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1180
|
+
### FieldConfig · [interface](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L40)
|
|
1162
1181
|
|
|
1163
1182
|
Configuration interface for model fields.
|
|
1164
1183
|
|
|
@@ -1172,25 +1191,25 @@ The type wrapper that defines how this field is serialized/validated.
|
|
|
1172
1191
|
|
|
1173
1192
|
**Type:** `TypeWrapper<T>`
|
|
1174
1193
|
|
|
1175
|
-
#### fieldConfig.description · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1194
|
+
#### fieldConfig.description · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L48)
|
|
1176
1195
|
|
|
1177
1196
|
Optional human-readable description of the field.
|
|
1178
1197
|
|
|
1179
1198
|
**Type:** `string`
|
|
1180
1199
|
|
|
1181
|
-
#### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1200
|
+
#### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L51)
|
|
1182
1201
|
|
|
1183
1202
|
Optional default value or function that generates default values.
|
|
1184
1203
|
|
|
1185
1204
|
**Type:** `T | ((model: Record<string, any>) => T)`
|
|
1186
1205
|
|
|
1187
|
-
### TypeWrapper · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1206
|
+
### TypeWrapper · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L36)
|
|
1188
1207
|
|
|
1189
1208
|
**Type Parameters:**
|
|
1190
1209
|
|
|
1191
1210
|
- `T` - The TypeScript type this wrapper represents.
|
|
1192
1211
|
|
|
1193
|
-
#### typeWrapper.kind · [abstract property](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1212
|
+
#### typeWrapper.kind · [abstract property](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L48)
|
|
1194
1213
|
|
|
1195
1214
|
A string identifier for this type, used during serialization
|
|
1196
1215
|
|
|
@@ -1217,7 +1236,7 @@ Deserialize a value from a Pack into an object property.
|
|
|
1217
1236
|
|
|
1218
1237
|
- `pack: DataPack` - The Pack instance to read from.
|
|
1219
1238
|
|
|
1220
|
-
#### typeWrapper.getError · [abstract method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1239
|
+
#### typeWrapper.getError · [abstract method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L66)
|
|
1221
1240
|
|
|
1222
1241
|
Validate a value.
|
|
1223
1242
|
|
|
@@ -1239,7 +1258,7 @@ Serialize type metadata to a Pack (for schema serialization).
|
|
|
1239
1258
|
|
|
1240
1259
|
- `pack: DataPack` - The Pack instance to write to.
|
|
1241
1260
|
|
|
1242
|
-
#### typeWrapper.containsNull · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1261
|
+
#### typeWrapper.containsNull · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L78)
|
|
1243
1262
|
|
|
1244
1263
|
Check if indexing should be skipped for this field value.
|
|
1245
1264
|
|
|
@@ -1251,11 +1270,11 @@ Check if indexing should be skipped for this field value.
|
|
|
1251
1270
|
|
|
1252
1271
|
**Returns:** true if indexing should be skipped.
|
|
1253
1272
|
|
|
1254
|
-
#### typeWrapper.toString · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1273
|
+
#### typeWrapper.toString · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L79)
|
|
1255
1274
|
|
|
1256
1275
|
**Signature:** `() => string`
|
|
1257
1276
|
|
|
1258
|
-
#### typeWrapper.clone · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1277
|
+
#### typeWrapper.clone · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L83)
|
|
1259
1278
|
|
|
1260
1279
|
**Signature:** `(value: T) => T`
|
|
1261
1280
|
|
|
@@ -1263,7 +1282,7 @@ Check if indexing should be skipped for this field value.
|
|
|
1263
1282
|
|
|
1264
1283
|
- `value: T`
|
|
1265
1284
|
|
|
1266
|
-
#### typeWrapper.equals · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1285
|
+
#### typeWrapper.equals · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L86)
|
|
1267
1286
|
|
|
1268
1287
|
**Signature:** `(value1: T, value2: T) => boolean`
|
|
1269
1288
|
|
|
@@ -1276,7 +1295,7 @@ Check if indexing should be skipped for this field value.
|
|
|
1276
1295
|
|
|
1277
1296
|
**Signature:** `() => AnyModelClass`
|
|
1278
1297
|
|
|
1279
|
-
### DatabaseError · [constant](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#
|
|
1298
|
+
### DatabaseError · [constant](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L182)
|
|
1280
1299
|
|
|
1281
1300
|
The DatabaseError class is used to represent errors that occur during database operations.
|
|
1282
1301
|
It extends the built-in Error class and has a machine readable error code string property.
|
package/build/src/indexes.d.ts
CHANGED
|
@@ -48,7 +48,10 @@ type ArrayOrOnlyItem<ARG_TYPES extends readonly any[]> = ARG_TYPES extends reado
|
|
|
48
48
|
* exclusive bounds via `after` / `before`, and reverse scans.
|
|
49
49
|
*
|
|
50
50
|
* For single-field indexes, values can be passed directly. For composite indexes,
|
|
51
|
-
* pass tuples or partial tuples for prefix matching.
|
|
51
|
+
* pass tuples or partial tuples for prefix matching. If an index field is a
|
|
52
|
+
* `link(...)`, you may pass either the linked model instance or the linked
|
|
53
|
+
* model's primary key. Composite linked primary keys are passed as tuples in
|
|
54
|
+
* that slot.
|
|
52
55
|
*
|
|
53
56
|
* @template ARG_TYPES - Tuple of index argument types.
|
|
54
57
|
* @template FETCH - Optional fetch mode used by overloads that return one row.
|
package/build/src/indexes.js
CHANGED
|
@@ -4,6 +4,15 @@ import DataPack from "./datapack.js";
|
|
|
4
4
|
import { currentTxn, transact } from "./edinburgh.js";
|
|
5
5
|
import { assert, logLevel, dbGet, dbPut, dbDel, hashBytes, hashFunction, bytesEqual, toBuffer } from "./utils.js";
|
|
6
6
|
import { deserializeType, serializeType } from "./types.js";
|
|
7
|
+
function serializeIndexArg(fieldType, arg, pack) {
|
|
8
|
+
const linkedModel = fieldType.getLinkedModel();
|
|
9
|
+
if (!linkedModel || arg instanceof linkedModel) {
|
|
10
|
+
fieldType.serialize(arg, pack);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Link lookups may pass the target row's primary key instead of a loaded instance.
|
|
14
|
+
pack.write(linkedModel._argsToKeyBytes(Array.isArray(arg) ? arg : [arg], false).toUint8Array());
|
|
15
|
+
}
|
|
7
16
|
const MAX_INDEX_ID_PREFIX = -1;
|
|
8
17
|
const INDEX_ID_PREFIX = -2;
|
|
9
18
|
const VERSION_INFO_PREFIX = -3;
|
|
@@ -107,7 +116,7 @@ export class BaseIndex {
|
|
|
107
116
|
for (const fieldType of this._indexFields.values()) {
|
|
108
117
|
if (index >= args.length)
|
|
109
118
|
break;
|
|
110
|
-
fieldType
|
|
119
|
+
serializeIndexArg(fieldType, args[index++], bytes);
|
|
111
120
|
}
|
|
112
121
|
}
|
|
113
122
|
return bytes;
|
package/build/src/indexes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
|
package/build/src/models.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import DataPack from "./datapack.js";
|
|
2
|
-
import { TypeWrapper } from "./types.js";
|
|
2
|
+
import { TypeWrapper, type FieldQueryArg, type FieldValue, type StripQueryArg } from "./types.js";
|
|
3
3
|
import { type Transaction } from "./edinburgh.js";
|
|
4
4
|
import { PrimaryKey, NonPrimaryIndex, IndexRangeIterator, FindOptions, VersionInfo } from "./indexes.js";
|
|
5
5
|
/**
|
|
@@ -34,29 +34,42 @@ export interface FieldConfig<T> {
|
|
|
34
34
|
* });
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
|
-
export declare function field<
|
|
37
|
+
export declare function field<TYPE extends TypeWrapper<any>>(type: TYPE, options?: Partial<FieldConfig<FieldValue<TYPE>>>): FieldValue<TYPE>;
|
|
38
38
|
export type Change = Record<any, any> | "created" | "deleted";
|
|
39
39
|
type FieldsOf<T> = T extends new () => infer I ? I : never;
|
|
40
|
-
type
|
|
41
|
-
[
|
|
42
|
-
}
|
|
43
|
-
type
|
|
44
|
-
[
|
|
45
|
-
}
|
|
40
|
+
type PublicFields<FIELDS> = {
|
|
41
|
+
[K in keyof FIELDS]: StripQueryArg<FIELDS[K]>;
|
|
42
|
+
};
|
|
43
|
+
type QueryFields<FIELDS> = {
|
|
44
|
+
[K in keyof FIELDS]: FieldQueryArg<FIELDS[K]>;
|
|
45
|
+
};
|
|
46
|
+
type PublicModelOf<T extends new () => any> = Model<PublicFields<FieldsOf<T>>>;
|
|
47
|
+
type IndexSpec<T extends new () => any> = (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: PublicModelOf<T>) => any);
|
|
48
|
+
type PKArgs<QUERY_FIELDS, PK> = PK extends readonly (keyof QUERY_FIELDS & string)[] ? {
|
|
49
|
+
[I in keyof PK]: PK[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[PK[I]] : never;
|
|
50
|
+
} : PK extends keyof QUERY_FIELDS & string ? [QUERY_FIELDS[PK]] : [string];
|
|
51
|
+
type IndexArgs<QUERY_FIELDS, SPEC> = SPEC extends readonly (keyof QUERY_FIELDS & string)[] ? {
|
|
52
|
+
[I in keyof SPEC]: SPEC[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[SPEC[I]] : never;
|
|
53
|
+
} : SPEC extends keyof QUERY_FIELDS & string ? [QUERY_FIELDS[SPEC]] : SPEC extends (instance: any) => infer R ? R extends (infer V)[] ? [V] : [R] : never;
|
|
54
|
+
type PublicIndexSpec<SPEC> = SPEC extends (instance: infer INSTANCE) => infer R ? (instance: INSTANCE) => R : SPEC;
|
|
55
|
+
type PublicIndexSpecs<SPECS> = {
|
|
56
|
+
[K in keyof SPECS]: PublicIndexSpec<SPECS[K]>;
|
|
57
|
+
};
|
|
46
58
|
/**
|
|
47
59
|
* A model constructor with its generic information erased.
|
|
48
60
|
*
|
|
49
61
|
* Useful when accepting or storing arbitrary registered model classes.
|
|
50
62
|
*/
|
|
51
|
-
export type AnyModelClass = ModelClass<
|
|
63
|
+
export type AnyModelClass = ModelClass<object, any, any, readonly any[], any, any>;
|
|
64
|
+
type StaticMembers<T extends new () => any> = Pick<T, Exclude<keyof T, 'prototype'>>;
|
|
52
65
|
type SecondaryRegistry<FIELDS> = Record<string, NonPrimaryIndex<Model<FIELDS>, readonly (keyof FIELDS & string)[], readonly any[]>>;
|
|
53
66
|
export declare const modelRegistry: Record<string, AnyModelClass>;
|
|
54
67
|
export declare const pendingModelInits: Set<AnyModelClass>;
|
|
55
|
-
declare class ModelClassRuntime<
|
|
68
|
+
declare class ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> extends PrimaryKey<Model<PUBLIC_FIELDS>, readonly (keyof PUBLIC_FIELDS & string)[], PKA> {
|
|
56
69
|
tableName: string;
|
|
57
70
|
fields: Record<string | symbol | number, FieldConfig<unknown>>;
|
|
58
|
-
_secondaries?: SecondaryRegistry<
|
|
59
|
-
_nonKeyFields: (keyof
|
|
71
|
+
_secondaries?: SecondaryRegistry<PUBLIC_FIELDS>;
|
|
72
|
+
_nonKeyFields: (keyof PUBLIC_FIELDS & string)[];
|
|
60
73
|
_lazyDescriptors: Record<string | symbol | number, PropertyDescriptor>;
|
|
61
74
|
_resetDescriptors: Record<string | symbol | number, PropertyDescriptor>;
|
|
62
75
|
_freezePrimaryKeyDescriptors: Record<string | symbol | number, PropertyDescriptor>;
|
|
@@ -65,23 +78,29 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
|
|
|
65
78
|
_versions: Map<number, VersionInfo>;
|
|
66
79
|
_serializeVersionValue(): Uint8Array;
|
|
67
80
|
_initialize(reset?: boolean): Promise<void>;
|
|
68
|
-
_getSecondary(name: string): NonPrimaryIndex<Model<
|
|
69
|
-
_get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<
|
|
70
|
-
_get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<
|
|
71
|
-
_lazyLoad(model: Model<
|
|
81
|
+
_getSecondary(name: string): NonPrimaryIndex<Model<PUBLIC_FIELDS>, readonly (keyof PUBLIC_FIELDS & string)[], readonly any[]>;
|
|
82
|
+
_get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<PUBLIC_FIELDS>;
|
|
83
|
+
_get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<PUBLIC_FIELDS> | undefined;
|
|
84
|
+
_lazyLoad(model: Model<PUBLIC_FIELDS>): void;
|
|
72
85
|
/**
|
|
73
86
|
* Load a model by primary key inside the current transaction.
|
|
87
|
+
*
|
|
88
|
+
* For `link(...)` primary-key fields, each argument may be the linked model
|
|
89
|
+
* instance or the linked model's primary key. Composite linked primary keys
|
|
90
|
+
* are passed as a tuple in that argument slot.
|
|
74
91
|
*
|
|
75
92
|
* @returns The matching model, or `undefined` if no row exists.
|
|
76
93
|
*/
|
|
77
|
-
get(...args: PKA): Model<
|
|
94
|
+
get(...args: PKA): Model<PUBLIC_FIELDS> | undefined;
|
|
78
95
|
/**
|
|
79
96
|
* Load a model by primary key without fetching its non-key fields immediately.
|
|
97
|
+
*
|
|
98
|
+
* Link-valued primary-key fields accept the same shorthand as `get()`.
|
|
80
99
|
*
|
|
81
100
|
* Accessing a lazy field later will load the remaining fields transparently.
|
|
82
101
|
*/
|
|
83
|
-
getLazy(...args: PKA): Model<
|
|
84
|
-
_pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<
|
|
102
|
+
getLazy(...args: PKA): Model<PUBLIC_FIELDS>;
|
|
103
|
+
_pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<PUBLIC_FIELDS>;
|
|
85
104
|
/**
|
|
86
105
|
* Load an existing instance by primary key and update it, or create a new one.
|
|
87
106
|
* If a row already exists, its non-primary-key fields are updated in place.
|
|
@@ -90,36 +109,39 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
|
|
|
90
109
|
* @param obj Partial model data that **must** include every primary key field.
|
|
91
110
|
* @returns The loaded-and-updated or newly created instance.
|
|
92
111
|
*/
|
|
93
|
-
replaceInto(obj: Partial<
|
|
112
|
+
replaceInto(obj: Partial<PUBLIC_FIELDS>): Model<PUBLIC_FIELDS>;
|
|
94
113
|
/**
|
|
95
114
|
* Look up a model through a named unique index.
|
|
96
115
|
*
|
|
97
116
|
* @param name The name from the model's `unique` definition.
|
|
98
|
-
|
|
117
|
+
* @param args The unique-index key values. For `link(...)` fields, pass
|
|
118
|
+
* either the linked model instance or the linked model's primary key. If the
|
|
119
|
+
* linked model uses a composite primary key, pass the full tuple in that slot.
|
|
99
120
|
* @returns The matching model instance, if any.
|
|
100
121
|
*/
|
|
101
|
-
getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<
|
|
122
|
+
getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<QUERY_FIELDS, UNIQUE[K]>): Model<PUBLIC_FIELDS> | undefined;
|
|
102
123
|
/**
|
|
103
124
|
* Query rows through a named unique or secondary index.
|
|
104
125
|
*
|
|
105
126
|
* This mirrors `find()`, but targets a named entry from the model's `unique`
|
|
106
|
-
|
|
127
|
+
* or `index` registration. Link-valued index fields accept either the linked
|
|
128
|
+
* model instance or the linked model's primary key tuple/value.
|
|
107
129
|
*/
|
|
108
|
-
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<
|
|
109
|
-
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<
|
|
110
|
-
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<
|
|
130
|
+
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<PUBLIC_FIELDS> | undefined;
|
|
131
|
+
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<PUBLIC_FIELDS>;
|
|
132
|
+
findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>>): IndexRangeIterator<Model<PUBLIC_FIELDS>>;
|
|
111
133
|
/**
|
|
112
134
|
* Process rows from a named unique or secondary index in batched transactions.
|
|
113
135
|
*
|
|
114
136
|
* Uses the same range options as `findBy()`, plus batch limits.
|
|
115
137
|
*/
|
|
116
|
-
batchProcessBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<
|
|
138
|
+
batchProcessBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>> & {
|
|
117
139
|
limitSeconds?: number;
|
|
118
140
|
limitRows?: number;
|
|
119
|
-
}, callback: (row: Model<
|
|
120
|
-
_loadValueFields(model: Model<
|
|
141
|
+
}, callback: (row: Model<PUBLIC_FIELDS>) => any): Promise<void>;
|
|
142
|
+
_loadValueFields(model: Model<PUBLIC_FIELDS>, valueArray: Uint8Array): void;
|
|
121
143
|
_loadVersionInfo(txnId: number, version: number): VersionInfo;
|
|
122
|
-
_migrateValueFields(model: Model<
|
|
144
|
+
_migrateValueFields(model: Model<PUBLIC_FIELDS>, version: number, valuePack: DataPack): void;
|
|
123
145
|
_serializeValue(data: Record<string, any>): Uint8Array;
|
|
124
146
|
}
|
|
125
147
|
/**
|
|
@@ -141,8 +163,8 @@ export declare const ModelClass: typeof ModelClassRuntime;
|
|
|
141
163
|
* @template UNIQUE - Named unique-index specifications.
|
|
142
164
|
* @template INDEX - Named secondary-index specifications.
|
|
143
165
|
*/
|
|
144
|
-
export type ModelClass<
|
|
145
|
-
new (initial?: Partial<
|
|
166
|
+
export type ModelClass<STATICS, PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> = STATICS & ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA, UNIQUE, INDEX> & {
|
|
167
|
+
new (initial?: Partial<PUBLIC_FIELDS>, txn?: Transaction): Model<PUBLIC_FIELDS>;
|
|
146
168
|
};
|
|
147
169
|
/**
|
|
148
170
|
* Minimal instance-side model shape used for typing the constructor property.
|
|
@@ -165,12 +187,12 @@ export interface ModelBase {
|
|
|
165
187
|
* @param opts.override Replace a previous model with the same table name.
|
|
166
188
|
* @returns The enhanced model constructor.
|
|
167
189
|
*/
|
|
168
|
-
export declare function defineModel<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string,
|
|
190
|
+
export declare function defineModel<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, IndexSpec<T>>, const INDEX extends Record<string, IndexSpec<T>>>(tableName: string, cls: T, opts?: {
|
|
169
191
|
pk?: PK;
|
|
170
192
|
unique?: UNIQUE;
|
|
171
193
|
index?: INDEX;
|
|
172
194
|
override?: boolean;
|
|
173
|
-
}): ModelClass<T
|
|
195
|
+
}): ModelClass<StaticMembers<T>, PublicFields<FieldsOf<T>>, QueryFields<FieldsOf<T>>, PKArgs<QueryFields<FieldsOf<T>>, PK>, PublicIndexSpecs<UNIQUE>, PublicIndexSpecs<INDEX>>;
|
|
174
196
|
/**
|
|
175
197
|
* Base class for all database models in the Edinburgh ORM.
|
|
176
198
|
*
|
package/build/src/models.js
CHANGED
|
@@ -144,7 +144,7 @@ class ModelClassRuntime extends PrimaryKey {
|
|
|
144
144
|
}
|
|
145
145
|
else {
|
|
146
146
|
key = this._argsToKeyBytes(args, false).toUint8Array();
|
|
147
|
-
keyParts =
|
|
147
|
+
keyParts = this._pkToArray(key);
|
|
148
148
|
}
|
|
149
149
|
const keyHash = hashBytes(key);
|
|
150
150
|
const cached = txn.instances.get(keyHash);
|
|
@@ -202,6 +202,10 @@ class ModelClassRuntime extends PrimaryKey {
|
|
|
202
202
|
}
|
|
203
203
|
/**
|
|
204
204
|
* Load a model by primary key inside the current transaction.
|
|
205
|
+
*
|
|
206
|
+
* For `link(...)` primary-key fields, each argument may be the linked model
|
|
207
|
+
* instance or the linked model's primary key. Composite linked primary keys
|
|
208
|
+
* are passed as a tuple in that argument slot.
|
|
205
209
|
*
|
|
206
210
|
* @returns The matching model, or `undefined` if no row exists.
|
|
207
211
|
*/
|
|
@@ -210,6 +214,8 @@ class ModelClassRuntime extends PrimaryKey {
|
|
|
210
214
|
}
|
|
211
215
|
/**
|
|
212
216
|
* Load a model by primary key without fetching its non-key fields immediately.
|
|
217
|
+
*
|
|
218
|
+
* Link-valued primary-key fields accept the same shorthand as `get()`.
|
|
213
219
|
*
|
|
214
220
|
* Accessing a lazy field later will load the remaining fields transparently.
|
|
215
221
|
*/
|
|
@@ -250,7 +256,9 @@ class ModelClassRuntime extends PrimaryKey {
|
|
|
250
256
|
* Look up a model through a named unique index.
|
|
251
257
|
*
|
|
252
258
|
* @param name The name from the model's `unique` definition.
|
|
253
|
-
|
|
259
|
+
* @param args The unique-index key values. For `link(...)` fields, pass
|
|
260
|
+
* either the linked model instance or the linked model's primary key. If the
|
|
261
|
+
* linked model uses a composite primary key, pass the full tuple in that slot.
|
|
254
262
|
* @returns The matching model instance, if any.
|
|
255
263
|
*/
|
|
256
264
|
getBy(name, ...args) {
|