convex-ents 0.7.1 → 0.7.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/dist/deletion.js.map +1 -1
- package/dist/functions.d.ts +1 -1
- package/dist/functions.js +20 -6
- package/dist/functions.js.map +1 -1
- package/dist/{index-Yi-8Q5Zu.d.ts → index-vd8irkPR.d.ts} +35 -15
- package/dist/index.d.ts +1 -1
- package/dist/index.js +37 -16
- package/dist/index.js.map +1 -1
- package/dist/schema.js +17 -10
- package/dist/schema.js.map +1 -1
- package/dist/writer.d.ts +1 -1
- package/dist/writer.js +3 -3
- package/dist/writer.js.map +1 -1
- package/package.json +1 -1
|
@@ -96,7 +96,6 @@ interface PromiseTable<EntsDataModel extends GenericEntsDataModel, Table extends
|
|
|
96
96
|
}
|
|
97
97
|
interface PromiseOrderedQueryBase<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
98
98
|
filter(predicate: (q: FilterBuilder<NamedTableInfo<EntsDataModel, Table>>) => ExpressionOrValue<boolean>): this;
|
|
99
|
-
paginate(paginationOpts: PaginationOptions): PromisePaginationResult<EntsDataModel, Table>;
|
|
100
99
|
docs(): Promise<DocumentByName<EntsDataModel, Table>[]>;
|
|
101
100
|
}
|
|
102
101
|
interface PromiseOrderedQuery<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]>, PromiseOrderedQueryBase<EntsDataModel, Table> {
|
|
@@ -122,6 +121,10 @@ interface PromiseEntsOrNull<EntsDataModel extends GenericEntsDataModel, Table ex
|
|
|
122
121
|
map<TOutput>(callbackFn: (value: Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>, index: number, array: Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]) => Promise<TOutput> | TOutput): PromiseArrayOrNull<TOutput>;
|
|
123
122
|
docs(): Promise<DocumentByName<EntsDataModel, Table>[] | null>;
|
|
124
123
|
}
|
|
124
|
+
interface PromiseEntsWriterOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[] | null> {
|
|
125
|
+
map<TOutput>(callbackFn: (value: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>, index: number, array: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]) => Promise<TOutput> | TOutput): PromiseArrayOrNull<TOutput>;
|
|
126
|
+
docs(): Promise<DocumentByName<EntsDataModel, Table>[] | null>;
|
|
127
|
+
}
|
|
125
128
|
interface PromiseEnts<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]> {
|
|
126
129
|
map<TOutput>(callbackFn: (value: Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>, index: number, array: Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]) => Promise<TOutput> | TOutput): PromiseArray<TOutput>;
|
|
127
130
|
docs(): Promise<DocumentByName<EntsDataModel, Table>[]>;
|
|
@@ -136,6 +139,14 @@ interface PromiseEdgeEntsOrNull<EntsDataModel extends GenericEntsDataModel, Tabl
|
|
|
136
139
|
*/
|
|
137
140
|
has(id: GenericId<Table>): Promise<boolean | null>;
|
|
138
141
|
}
|
|
142
|
+
interface PromiseEdgeEntsWriterOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends PromiseEntsWriterOrNull<EntsDataModel, Table> {
|
|
143
|
+
/**
|
|
144
|
+
* Returns whether there is an ent with given ID on the other side
|
|
145
|
+
* the edge. Returns null if chained to a null result.
|
|
146
|
+
* @param id The ID of the ent on the other end of the edge
|
|
147
|
+
*/
|
|
148
|
+
has(id: GenericId<Table>): Promise<boolean | null>;
|
|
149
|
+
}
|
|
139
150
|
interface PromiseEdgeEnts<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends PromiseEnts<EntsDataModel, Table> {
|
|
140
151
|
/**
|
|
141
152
|
* Returns whether there is an ent with given ID on the other side
|
|
@@ -144,6 +155,14 @@ interface PromiseEdgeEnts<EntsDataModel extends GenericEntsDataModel, Table exte
|
|
|
144
155
|
*/
|
|
145
156
|
has(id: GenericId<Table>): Promise<boolean>;
|
|
146
157
|
}
|
|
158
|
+
interface PromiseEdgeEntsWriter<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends PromiseEntsWriter<EntsDataModel, Table> {
|
|
159
|
+
/**
|
|
160
|
+
* Returns whether there is an ent with given ID on the other side
|
|
161
|
+
* the edge.
|
|
162
|
+
* @param id The ID of the ent on the other end of the edge
|
|
163
|
+
*/
|
|
164
|
+
has(id: GenericId<Table>): Promise<boolean>;
|
|
165
|
+
}
|
|
147
166
|
interface PromiseEntOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel> | null> {
|
|
148
167
|
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeOrNull<EntsDataModel, Table, Edge>;
|
|
149
168
|
doc(): Promise<DocumentByName<EntsDataModel, Table> | null>;
|
|
@@ -192,13 +211,15 @@ type GenericEnt<EntsDataModel extends GenericEntsDataModel, Table extends TableN
|
|
|
192
211
|
type PromiseEdge<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, Edge extends keyof EntsDataModel[Table]["edges"]> = EntsDataModel[Table]["edges"][Edge]["cardinality"] extends "multiple" ? EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEdgeEnts<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseQuery<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEntOrNull<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseEnt<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]>;
|
|
193
212
|
type PromiseEdgeOrThrow<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, Edge extends keyof EntsDataModel[Table]["edges"]> = EntsDataModel[Table]["edges"][Edge]["cardinality"] extends "multiple" ? EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEdgeEnts<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseQuery<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEnt<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseEnt<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]>;
|
|
194
213
|
type PromiseEdgeOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, Edge extends keyof EntsDataModel[Table]["edges"]> = EntsDataModel[Table]["edges"][Edge]["cardinality"] extends "multiple" ? EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEdgeEntsOrNull<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseQueryOrNull<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseEntOrNull<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]>;
|
|
214
|
+
type PromiseEdgeWriter<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, Edge extends keyof EntsDataModel[Table]["edges"]> = EntsDataModel[Table]["edges"][Edge]["cardinality"] extends "multiple" ? EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEdgeEntsWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseQueryWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEntOrNull<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseEntWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]>;
|
|
215
|
+
type PromiseEdgeWriterOrThrow<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, Edge extends keyof EntsDataModel[Table]["edges"]> = EntsDataModel[Table]["edges"][Edge]["cardinality"] extends "multiple" ? EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEdgeEntsWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseQueryWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : EntsDataModel[Table]["edges"][Edge]["type"] extends "ref" ? PromiseEntWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]> : PromiseEntWriter<EntsDataModel, EntsDataModel[Table]["edges"][Edge]["to"]>;
|
|
195
216
|
interface PromiseOrderedQueryWriter<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]>, PromiseOrderedQueryBase<EntsDataModel, Table> {
|
|
196
217
|
paginate(paginationOpts: PaginationOptions): PromisePaginationResultWriter<EntsDataModel, Table>;
|
|
197
218
|
map<TOutput>(callbackFn: (value: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>, index: number, array: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]) => Promise<TOutput> | TOutput): PromiseArray<TOutput>;
|
|
198
219
|
take(n: number): PromiseEntsWriter<EntsDataModel, Table>;
|
|
199
|
-
first():
|
|
220
|
+
first(): PromiseEntOrNull<EntsDataModel, Table>;
|
|
200
221
|
firstX(): PromiseEntWriter<EntsDataModel, Table>;
|
|
201
|
-
unique():
|
|
222
|
+
unique(): PromiseEntOrNull<EntsDataModel, Table>;
|
|
202
223
|
uniqueX(): PromiseEntWriter<EntsDataModel, Table>;
|
|
203
224
|
}
|
|
204
225
|
interface PromiseQueryWriter<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends PromiseOrderedQueryWriter<EntsDataModel, Table> {
|
|
@@ -213,8 +234,8 @@ interface PromisePaginationResultWriter<EntsDataModel extends GenericEntsDataMod
|
|
|
213
234
|
map<TOutput>(callbackFn: (value: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>, index: number, array: EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[]) => Promise<TOutput> | TOutput): Promise<PaginationResult<TOutput>>;
|
|
214
235
|
}
|
|
215
236
|
interface PromiseTableWriter<Table extends TableNamesInDataModel<EntsDataModel>, EntsDataModel extends GenericEntsDataModel> extends PromiseQueryWriter<EntsDataModel, Table>, PromiseTableBase<EntsDataModel, Table> {
|
|
216
|
-
get<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, ...values: IndexFieldTypesForEq<EntsDataModel, Table, Indexes[Index]>):
|
|
217
|
-
get(id: GenericId<Table>):
|
|
237
|
+
get<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, ...values: IndexFieldTypesForEq<EntsDataModel, Table, Indexes[Index]>): PromiseEntOrNull<EntsDataModel, Table>;
|
|
238
|
+
get(id: GenericId<Table>): PromiseEntOrNull<EntsDataModel, Table>;
|
|
218
239
|
/**
|
|
219
240
|
* Fetch a unique document from the DB using given index, throw if it doesn't exist.
|
|
220
241
|
*/
|
|
@@ -260,13 +281,9 @@ interface PromiseTableWriter<Table extends TableNamesInDataModel<EntsDataModel>,
|
|
|
260
281
|
*/
|
|
261
282
|
insertMany(values: Expand<WithoutSystemFields<WithEdgeInserts<DocumentByName<EntsDataModel, Table>, EntsDataModel[Table]["edges"]>>>[]): Promise<GenericId<Table>[]>;
|
|
262
283
|
}
|
|
263
|
-
interface PromiseEntWriterOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel> | null> {
|
|
264
|
-
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeOrNull<EntsDataModel, Table, Edge>;
|
|
265
|
-
doc(): Promise<DocumentByName<EntsDataModel, Table> | null>;
|
|
266
|
-
}
|
|
267
284
|
interface PromiseEntWriter<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<EntWriter<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>> {
|
|
268
|
-
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge):
|
|
269
|
-
edgeX<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge):
|
|
285
|
+
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeWriter<EntsDataModel, Table, Edge>;
|
|
286
|
+
edgeX<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeWriterOrThrow<EntsDataModel, Table, Edge>;
|
|
270
287
|
doc(): Promise<DocumentByName<EntsDataModel, Table>>;
|
|
271
288
|
/**
|
|
272
289
|
* Patch this existing document, shallow merging it with the given partial
|
|
@@ -278,14 +295,14 @@ interface PromiseEntWriter<EntsDataModel extends GenericEntsDataModel, Table ext
|
|
|
278
295
|
* @param value - The partial {@link GenericDocument} to merge into this document. If this new value
|
|
279
296
|
* specifies system fields like `_id`, they must match the document's existing field values.
|
|
280
297
|
*/
|
|
281
|
-
patch(value: Partial<Expand<WithEdgePatches<DocumentByName<EntsDataModel, Table>, EntsDataModel[Table]["edges"]>>>):
|
|
298
|
+
patch(value: Partial<Expand<WithEdgePatches<DocumentByName<EntsDataModel, Table>, EntsDataModel[Table]["edges"]>>>): PromiseEntId<EntsDataModel, Table>;
|
|
282
299
|
/**
|
|
283
300
|
* Replace the value of an existing document, overwriting its old value.
|
|
284
301
|
*
|
|
285
302
|
* @param value - The new {@link GenericDocument} for the document. This value can omit the system fields,
|
|
286
303
|
* and the database will preserve them in.
|
|
287
304
|
*/
|
|
288
|
-
replace(value: Expand<WithOptionalSystemFields<WithEdges<DocumentByName<EntsDataModel, Table>, EntsDataModel[Table]["edges"]>>>):
|
|
305
|
+
replace(value: Expand<WithOptionalSystemFields<WithEdges<DocumentByName<EntsDataModel, Table>, EntsDataModel[Table]["edges"]>>>): PromiseEntId<EntsDataModel, Table>;
|
|
289
306
|
/**
|
|
290
307
|
* Delete this existing document.
|
|
291
308
|
*
|
|
@@ -293,7 +310,10 @@ interface PromiseEntWriter<EntsDataModel extends GenericEntsDataModel, Table ext
|
|
|
293
310
|
*/
|
|
294
311
|
delete(): Promise<GenericId<Table>>;
|
|
295
312
|
}
|
|
296
|
-
declare class EntWriterInstance<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>
|
|
313
|
+
declare class EntWriterInstance<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
314
|
+
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeWriter<EntsDataModel, Table, Edge>;
|
|
315
|
+
edgeX<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdgeWriterOrThrow<EntsDataModel, Table, Edge>;
|
|
316
|
+
doc(): DocumentByName<EntsDataModel, Table>;
|
|
297
317
|
/**
|
|
298
318
|
* Patch this existing document, shallow merging it with the given partial
|
|
299
319
|
* document.
|
|
@@ -378,4 +398,4 @@ declare function getWriteRule(entDefinitions: GenericEntsDataModel, table: strin
|
|
|
378
398
|
declare function getEdgeDefinitions<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): Record<keyof EntsDataModel[Table]["edges"], EdgeConfig>;
|
|
379
399
|
declare function getDeletionConfig<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): DeletionConfig | undefined;
|
|
380
400
|
|
|
381
|
-
export { type
|
|
401
|
+
export { type EntsTableWriter as A, type Ent as B, type PromiseEdge as C, type PromiseEdgeOrThrow as D, type EdgeChanges as E, type PromiseEdgeWriter as F, type GenericEnt as G, type PromiseEdgeWriterOrThrow as H, type PromiseOrderedQueryWriter as I, type PromiseQueryWriter as J, type PromiseEntsWriter as K, type PromisePaginationResultWriter as L, type PromiseTableWriter as M, type PromiseEntWriter as N, type GenericEntWriter as O, type PromiseOrderedQueryOrNull as P, type PromiseEntId as Q, type EntQueryCtx as R, type EntMutationCtx as S, type DocRetriever as T, addEntRules as U, getReadRule as V, WriterImplBase as W, getWriteRule as X, getEdgeDefinitions as Y, getDeletionConfig as Z, type WithEdgeInserts as a, type WithEdges as b, type WithEdgePatches as c, type PromiseQueryOrNull as d, type PromiseTableBase as e, type PromiseTable as f, type PromiseOrderedQueryBase as g, type PromiseOrderedQuery as h, type PromiseQuery as i, type PromisePaginationResultOrNull as j, type PromisePaginationResult as k, type PromiseEntsOrNull as l, type PromiseEntsWriterOrNull as m, type PromiseEnts as n, type PromiseEntsOrNulls as o, type PromiseEdgeEntsOrNull as p, type PromiseEdgeEntsWriterOrNull as q, type PromiseEdgeEnts as r, type PromiseEdgeEntsWriter as s, type PromiseEntOrNull as t, type PromiseEnt as u, type PromiseArrayOrNull as v, type PromiseArray as w, entWrapper as x, entsTableFactory as y, type EntsTable as z };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { EntDefinition, defineEnt, defineEntFromTable, defineEntSchema, getEntDefinitions } from './schema.js';
|
|
2
|
-
export { G as GenericEnt,
|
|
2
|
+
export { G as GenericEnt, O as GenericEntWriter, r as PromiseEdgeEnts, p as PromiseEdgeEntsOrNull, u as PromiseEnt, Q as PromiseEntId, t as PromiseEntOrNull, N as PromiseEntWriter, n as PromiseEnts, l as PromiseEntsOrNull, o as PromiseEntsOrNulls, K as PromiseEntsWriter, h as PromiseOrderedQuery, g as PromiseOrderedQueryBase, P as PromiseOrderedQueryOrNull, I as PromiseOrderedQueryWriter, i as PromiseQuery, d as PromiseQueryOrNull, J as PromiseQueryWriter, f as PromiseTable, e as PromiseTableBase, M as PromiseTableWriter, U as addEntRules, y as entsTableFactory } from './index-vd8irkPR.js';
|
|
3
3
|
export { scheduledDeleteFactory } from './deletion.js';
|
|
4
4
|
import 'convex/server';
|
|
5
5
|
import 'convex/values';
|
package/dist/index.js
CHANGED
|
@@ -367,16 +367,23 @@ var EntDefinitionImpl = class {
|
|
|
367
367
|
};
|
|
368
368
|
function getEntDefinitions(schema) {
|
|
369
369
|
const tables = schema.tables;
|
|
370
|
-
return Object.
|
|
371
|
-
(acc, tableName) =>
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
370
|
+
return Object.entries(tables).reduce(
|
|
371
|
+
(acc, [tableName, table]) => {
|
|
372
|
+
acc[tableName] = {
|
|
373
|
+
indexes: table.indexes.reduce(
|
|
374
|
+
(acc2, { indexDescriptor, fields }) => {
|
|
375
|
+
acc2[indexDescriptor] = fields;
|
|
376
|
+
return acc2;
|
|
377
|
+
},
|
|
378
|
+
{}
|
|
379
|
+
),
|
|
380
|
+
defaults: table.defaults,
|
|
381
|
+
edges: table.edgeConfigs,
|
|
382
|
+
fields: table.fieldConfigs,
|
|
383
|
+
deletionConfig: table.deletionConfig
|
|
384
|
+
};
|
|
385
|
+
return acc;
|
|
386
|
+
},
|
|
380
387
|
{}
|
|
381
388
|
);
|
|
382
389
|
}
|
|
@@ -932,11 +939,22 @@ var PromiseTableImpl = class extends PromiseQueryOrNullImpl {
|
|
|
932
939
|
}
|
|
933
940
|
};
|
|
934
941
|
} : async () => {
|
|
935
|
-
const [indexName,
|
|
936
|
-
const
|
|
942
|
+
const [indexName, ...values] = args;
|
|
943
|
+
const fieldNames = getIndexFields(
|
|
944
|
+
this.entDefinitions,
|
|
945
|
+
this.table,
|
|
946
|
+
indexName
|
|
947
|
+
);
|
|
948
|
+
const doc = await this.ctx.db.query(this.table).withIndex(
|
|
949
|
+
indexName,
|
|
950
|
+
(q) => values.reduce((q2, value, i) => q2.eq(fieldNames[i], value), q)
|
|
951
|
+
).unique();
|
|
937
952
|
if (throwIfNull && doc === null) {
|
|
938
953
|
throw new Error(
|
|
939
|
-
`Table "${this.table}" does not contain document with field
|
|
954
|
+
`Table "${this.table}" does not contain document with field${values.reduce(
|
|
955
|
+
(message, value, i) => `${message} "${fieldNames[i]}" = \`${value}\``,
|
|
956
|
+
""
|
|
957
|
+
)}`
|
|
940
958
|
);
|
|
941
959
|
}
|
|
942
960
|
return loadedRetriever(doc);
|
|
@@ -1141,7 +1159,7 @@ var PromiseEdgeOrNullImpl = class extends PromiseEntsOrNullImpl {
|
|
|
1141
1159
|
return (docs?.length ?? 0) > 0;
|
|
1142
1160
|
}
|
|
1143
1161
|
};
|
|
1144
|
-
var PromiseEntOrNullImpl = class
|
|
1162
|
+
var PromiseEntOrNullImpl = class extends Promise {
|
|
1145
1163
|
constructor(ctx, entDefinitions, table, retrieve, throwIfNull) {
|
|
1146
1164
|
super(() => {
|
|
1147
1165
|
});
|
|
@@ -1234,7 +1252,7 @@ var PromiseEntOrNullImpl = class _PromiseEntOrNullImpl extends Promise {
|
|
|
1234
1252
|
}
|
|
1235
1253
|
);
|
|
1236
1254
|
}
|
|
1237
|
-
return new
|
|
1255
|
+
return new PromiseEntWriterImpl(
|
|
1238
1256
|
this.ctx,
|
|
1239
1257
|
this.entDefinitions,
|
|
1240
1258
|
edgeDefinition.to,
|
|
@@ -1578,7 +1596,7 @@ var PromiseEntIdImpl = class extends Promise {
|
|
|
1578
1596
|
this.retrieve = retrieve;
|
|
1579
1597
|
}
|
|
1580
1598
|
get() {
|
|
1581
|
-
return new
|
|
1599
|
+
return new PromiseEntWriterImpl(
|
|
1582
1600
|
this.ctx,
|
|
1583
1601
|
this.entDefinitions,
|
|
1584
1602
|
this.table,
|
|
@@ -1629,6 +1647,9 @@ async function filterByReadRule(ctx, entDefinitions, table, docs, throwIfNull) {
|
|
|
1629
1647
|
);
|
|
1630
1648
|
return docs.filter((_, i) => decisions[i]);
|
|
1631
1649
|
}
|
|
1650
|
+
function getIndexFields(entDefinitions, table, index) {
|
|
1651
|
+
return entDefinitions[table].indexes[index];
|
|
1652
|
+
}
|
|
1632
1653
|
function getReadRule(entDefinitions, table) {
|
|
1633
1654
|
return entDefinitions.rules?.[table]?.read;
|
|
1634
1655
|
}
|