convex-ents 0.4.2 → 0.4.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 +21 -11
- package/dist/functions.js.map +1 -1
- package/dist/{index-6qe2c6eO.d.ts → index-WGlX_PmZ.d.ts} +14 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.js +21 -11
- package/dist/index.js.map +1 -1
- package/dist/writer.d.ts +1 -1
- package/dist/writer.js +2 -2
- package/dist/writer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GenericEntsDataModel, GenericEdgeConfig, Expand, EdgeConfig, DeletionConfig } from './schema.js';
|
|
2
2
|
import * as convex_values from 'convex/values';
|
|
3
3
|
import { GenericId } from 'convex/values';
|
|
4
|
-
import { TableNamesInDataModel, GenericDocument, DocumentByName, FilterBuilder, NamedTableInfo, ExpressionOrValue, PaginationOptions, IndexNames, FieldTypeFromFieldPath, SearchIndexNames, SearchFilterBuilder, NamedSearchIndex, SearchFilter, PaginationResult, IndexRangeBuilder, NamedIndex, IndexRange, WithoutSystemFields, WithOptionalSystemFields, GenericDataModel, GenericDatabaseReader, GenericDatabaseWriter, Scheduler } from 'convex/server';
|
|
4
|
+
import { TableNamesInDataModel, GenericDocument, DocumentByName, FilterBuilder, NamedTableInfo, ExpressionOrValue, PaginationOptions, IndexNames, FieldTypeFromFieldPath, SearchIndexNames, SearchFilterBuilder, NamedSearchIndex, SearchFilter, PaginationResult, SystemDataModel, IndexRangeBuilder, NamedIndex, IndexRange, WithoutSystemFields, WithOptionalSystemFields, GenericDataModel, GenericDatabaseReader, GenericDatabaseWriter, Scheduler } from 'convex/server';
|
|
5
5
|
import { ScheduledDeleteFuncRef } from './deletion.js';
|
|
6
6
|
|
|
7
7
|
declare class WriterImplBase<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
@@ -66,7 +66,7 @@ interface PromiseTable<EntsDataModel extends GenericEntsDataModel, Table extends
|
|
|
66
66
|
get<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, value0: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][0]>): PromiseEntOrNull<EntsDataModel, Table>;
|
|
67
67
|
get(id: GenericId<Table>): PromiseEntOrNull<EntsDataModel, Table>;
|
|
68
68
|
/**
|
|
69
|
-
* Fetch a document from the DB using given index, throw if it doesn't exist.
|
|
69
|
+
* Fetch a unique document from the DB using given index, throw if it doesn't exist.
|
|
70
70
|
*/
|
|
71
71
|
getX<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, value0: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][0]>): PromiseEnt<EntsDataModel, Table>;
|
|
72
72
|
/**
|
|
@@ -165,13 +165,22 @@ declare function entWrapper<EntsDataModel extends GenericEntsDataModel, Table ex
|
|
|
165
165
|
declare function entsTableFactory<Ctx extends EntQueryCtx<any>, EntsDataModel extends GenericEntsDataModel>(ctx: Ctx, entDefinitions: EntsDataModel, options?: {
|
|
166
166
|
scheduledDelete: ScheduledDeleteFuncRef;
|
|
167
167
|
}): Ctx extends EntMutationCtx<any> ? EntsTableWriter<EntsDataModel> : EntsTable<EntsDataModel>;
|
|
168
|
-
type
|
|
168
|
+
type EntsTableReader<EntsDataModel extends GenericEntsDataModel> = {
|
|
169
169
|
<Table extends TableNamesInDataModel<EntsDataModel>, IndexName extends IndexNames<NamedTableInfo<EntsDataModel, Table>>>(table: Table, indexName: IndexName, indexRange?: (q: IndexRangeBuilder<DocumentByName<EntsDataModel, Table>, NamedIndex<NamedTableInfo<EntsDataModel, Table>, IndexName>>) => IndexRange): PromiseQuery<EntsDataModel, Table>;
|
|
170
170
|
<Table extends TableNamesInDataModel<EntsDataModel>>(table: Table): PromiseTable<EntsDataModel, Table>;
|
|
171
171
|
};
|
|
172
|
+
type EntsTable<EntsDataModel extends GenericEntsDataModel> = EntsTableReader<EntsDataModel> & {
|
|
173
|
+
system: EntsTableReader<EntsSystemDataModel>;
|
|
174
|
+
};
|
|
175
|
+
type EntsSystemDataModel = {
|
|
176
|
+
[key in keyof SystemDataModel]: SystemDataModel[key] & {
|
|
177
|
+
edges: Record<string, never>;
|
|
178
|
+
};
|
|
179
|
+
};
|
|
172
180
|
type EntsTableWriter<EntsDataModel extends GenericEntsDataModel> = {
|
|
173
181
|
<Table extends TableNamesInDataModel<EntsDataModel>, IndexName extends IndexNames<NamedTableInfo<EntsDataModel, Table>>>(table: Table, indexName: IndexName, indexRange?: (q: IndexRangeBuilder<DocumentByName<EntsDataModel, Table>, NamedIndex<NamedTableInfo<EntsDataModel, Table>, IndexName>>) => IndexRange): PromiseTableWriter<Table, EntsDataModel>;
|
|
174
182
|
<Table extends TableNamesInDataModel<EntsDataModel>>(table: Table): PromiseTableWriter<Table, EntsDataModel>;
|
|
183
|
+
system: EntsTableReader<EntsSystemDataModel>;
|
|
175
184
|
};
|
|
176
185
|
declare class EntInstance<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
177
186
|
edge<Edge extends keyof EntsDataModel[Table]["edges"]>(edge: Edge): PromiseEdge<EntsDataModel, Table, Edge>;
|
|
@@ -207,7 +216,7 @@ interface PromiseTableWriter<Table extends TableNamesInDataModel<EntsDataModel>,
|
|
|
207
216
|
get<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, value0: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][0]>): PromiseEntWriterOrNull<EntsDataModel, Table>;
|
|
208
217
|
get(id: GenericId<Table>): PromiseEntWriterOrNull<EntsDataModel, Table>;
|
|
209
218
|
/**
|
|
210
|
-
* Fetch a document from the DB using given index, throw if it doesn't exist.
|
|
219
|
+
* Fetch a unique document from the DB using given index, throw if it doesn't exist.
|
|
211
220
|
*/
|
|
212
221
|
getX<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, value0: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][0]>): PromiseEntWriter<EntsDataModel, Table>;
|
|
213
222
|
/**
|
|
@@ -365,4 +374,4 @@ declare function getWriteRule(entDefinitions: GenericEntsDataModel, table: strin
|
|
|
365
374
|
declare function getEdgeDefinitions<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): Record<keyof EntsDataModel[Table]["edges"], EdgeConfig>;
|
|
366
375
|
declare function getDeletionConfig<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): DeletionConfig | undefined;
|
|
367
376
|
|
|
368
|
-
export { type
|
|
377
|
+
export { type PromiseEdgeOrThrow as A, type PromiseOrderedQueryWriter as B, type PromiseQueryWriter as C, type PromiseEntsWriter as D, type EdgeChanges as E, type PromisePaginationResultWriter as F, type GenericEnt as G, type PromiseTableWriter as H, type PromiseEntWriterOrNull as I, type PromiseEntWriter as J, type GenericEntWriter as K, type PromiseEntId as L, type EntQueryCtx as M, type EntMutationCtx as N, type DocRetriever as O, type PromiseOrderedQueryOrNull as P, addEntRules as Q, getReadRule as R, getWriteRule as S, getEdgeDefinitions as T, getDeletionConfig as U, WriterImplBase as W, 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 PromiseEnts as m, type PromiseEntsOrNulls as n, type PromiseEdgeEntsOrNull as o, type PromiseEdgeEnts as p, type PromiseEntOrNull as q, type PromiseEnt as r, type PromiseArrayOrNull as s, type PromiseArray as t, entWrapper as u, entsTableFactory as v, type EntsTable as w, type EntsTableWriter as x, type Ent as y, type PromiseEdge as z };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { EntDefinition, defineEnt, defineEntSchema, getEntDefinitions } from './schema.js';
|
|
2
|
-
export { G as GenericEnt,
|
|
2
|
+
export { G as GenericEnt, K as GenericEntWriter, p as PromiseEdgeEnts, o as PromiseEdgeEntsOrNull, r as PromiseEnt, L as PromiseEntId, q as PromiseEntOrNull, J as PromiseEntWriter, I as PromiseEntWriterOrNull, m as PromiseEnts, l as PromiseEntsOrNull, n as PromiseEntsOrNulls, D as PromiseEntsWriter, h as PromiseOrderedQuery, g as PromiseOrderedQueryBase, P as PromiseOrderedQueryOrNull, B as PromiseOrderedQueryWriter, i as PromiseQuery, d as PromiseQueryOrNull, C as PromiseQueryWriter, f as PromiseTable, e as PromiseTableBase, H as PromiseTableWriter, Q as addEntRules, v as entsTableFactory } from './index-WGlX_PmZ.js';
|
|
3
3
|
export { scheduledDeleteFactory } from './deletion.js';
|
|
4
4
|
import 'convex/server';
|
|
5
5
|
import 'convex/values';
|
package/dist/index.js
CHANGED
|
@@ -856,7 +856,12 @@ var PromisePaginationResultOrNullImpl = class extends Promise {
|
|
|
856
856
|
};
|
|
857
857
|
var PromiseTableImpl = class extends PromiseQueryOrNullImpl {
|
|
858
858
|
constructor(ctx, entDefinitions, table) {
|
|
859
|
-
super(
|
|
859
|
+
super(
|
|
860
|
+
ctx,
|
|
861
|
+
entDefinitions,
|
|
862
|
+
table,
|
|
863
|
+
async () => isSystemTable(table) ? ctx.db.system.query(table) : ctx.db.query(table)
|
|
864
|
+
);
|
|
860
865
|
}
|
|
861
866
|
get(...args) {
|
|
862
867
|
return this.getImpl(args);
|
|
@@ -883,7 +888,7 @@ var PromiseTableImpl = class extends PromiseQueryOrNullImpl {
|
|
|
883
888
|
return {
|
|
884
889
|
id,
|
|
885
890
|
doc: async () => {
|
|
886
|
-
const doc = await this.ctx.db.get(id);
|
|
891
|
+
const doc = await (isSystemTable(this.table) ? this.ctx.db.system.get(id) : this.ctx.db.get(id));
|
|
887
892
|
if (throwIfNull && doc === null) {
|
|
888
893
|
throw new Error(
|
|
889
894
|
`Document not found with id \`${id}\` in table "${this.table}"`
|
|
@@ -921,7 +926,7 @@ var PromiseTableImpl = class extends PromiseQueryOrNullImpl {
|
|
|
921
926
|
});
|
|
922
927
|
return await Promise.all(
|
|
923
928
|
ids.map(async (id) => {
|
|
924
|
-
const doc = await this.ctx.db.get(id);
|
|
929
|
+
const doc = await (isSystemTable(this.table) ? this.ctx.db.system.get(id) : this.ctx.db.get(id));
|
|
925
930
|
if (doc === null) {
|
|
926
931
|
throw new Error(
|
|
927
932
|
`Document not found with id \`${id}\` in table "${this.table}"`
|
|
@@ -1310,7 +1315,7 @@ function entWrapper(fields, ctx, entDefinitions, table) {
|
|
|
1310
1315
|
writable: false,
|
|
1311
1316
|
configurable: false
|
|
1312
1317
|
});
|
|
1313
|
-
Object.entries(entDefinitions[table]
|
|
1318
|
+
Object.entries(entDefinitions[table]?.defaults ?? []).map(
|
|
1314
1319
|
([field, value]) => {
|
|
1315
1320
|
if (doc[field] === void 0) {
|
|
1316
1321
|
doc[field] = value;
|
|
@@ -1321,26 +1326,28 @@ function entWrapper(fields, ctx, entDefinitions, table) {
|
|
|
1321
1326
|
}
|
|
1322
1327
|
function entsTableFactory(ctx, entDefinitions, options) {
|
|
1323
1328
|
const enrichedCtx = options !== void 0 ? { ...ctx, ...options } : ctx;
|
|
1324
|
-
|
|
1325
|
-
if (typeof
|
|
1326
|
-
throw new Error(`Expected table name, got \`${
|
|
1329
|
+
const table = (table2, indexName, indexRange) => {
|
|
1330
|
+
if (typeof table2 !== "string") {
|
|
1331
|
+
throw new Error(`Expected table name, got \`${table2}\``);
|
|
1327
1332
|
}
|
|
1328
1333
|
if (indexName !== void 0) {
|
|
1329
1334
|
return new PromiseTableImpl(
|
|
1330
1335
|
enrichedCtx,
|
|
1331
1336
|
entDefinitions,
|
|
1332
|
-
|
|
1337
|
+
table2
|
|
1333
1338
|
).withIndex(indexName, indexRange);
|
|
1334
1339
|
}
|
|
1335
1340
|
if (ctx.db.insert !== void 0) {
|
|
1336
1341
|
return new PromiseTableWriterImpl(
|
|
1337
1342
|
enrichedCtx,
|
|
1338
1343
|
entDefinitions,
|
|
1339
|
-
|
|
1344
|
+
table2
|
|
1340
1345
|
);
|
|
1341
1346
|
}
|
|
1342
|
-
return new PromiseTableImpl(enrichedCtx, entDefinitions,
|
|
1347
|
+
return new PromiseTableImpl(enrichedCtx, entDefinitions, table2);
|
|
1343
1348
|
};
|
|
1349
|
+
table.system = table;
|
|
1350
|
+
return table;
|
|
1344
1351
|
}
|
|
1345
1352
|
var PromiseTableWriterImpl = class extends PromiseTableImpl {
|
|
1346
1353
|
constructor(ctx, entDefinitions, table) {
|
|
@@ -1444,7 +1451,7 @@ var PromiseEntWriterImpl = class extends PromiseEntOrNullImpl {
|
|
|
1444
1451
|
).collect() : []
|
|
1445
1452
|
)
|
|
1446
1453
|
)
|
|
1447
|
-
)).map((edgeDoc) => edgeDoc._id);
|
|
1454
|
+
)).flat().map((edgeDoc) => edgeDoc._id);
|
|
1448
1455
|
edges[key] = {
|
|
1449
1456
|
add,
|
|
1450
1457
|
removeEdges
|
|
@@ -1600,6 +1607,9 @@ function getEdgeDefinitions(entDefinitions, table) {
|
|
|
1600
1607
|
function getDeletionConfig(entDefinitions, table) {
|
|
1601
1608
|
return entDefinitions[table].deletionConfig;
|
|
1602
1609
|
}
|
|
1610
|
+
function isSystemTable(table) {
|
|
1611
|
+
return table.startsWith("_");
|
|
1612
|
+
}
|
|
1603
1613
|
|
|
1604
1614
|
// src/deletion.ts
|
|
1605
1615
|
var import_server3 = require("convex/server");
|