convex-ents 0.18.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deletion.js +2 -6
- package/dist/deletion.js.map +1 -1
- package/dist/functions.js +50 -16
- package/dist/functions.js.map +1 -1
- package/dist/index.js +52 -22
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +9 -5
- package/dist/shared.js +17 -2
- package/dist/shared.js.map +1 -1
- package/dist/writer.d.ts +4 -5
- package/dist/writer.js +26 -14
- package/dist/writer.js.map +1 -1
- package/package.json +6 -4
package/dist/shared.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SystemDataModel, TableNamesInDataModel, FieldTypeFromFieldPath, DocumentByName } from 'convex/server';
|
|
1
|
+
import { SystemDataModel, TableNamesInDataModel, FieldTypeFromFieldPath, DocumentByName, GenericDataModel, GenericDatabaseReader, QueryInitializer, NamedTableInfo, SystemTableNames } from 'convex/server';
|
|
2
2
|
import { GenericEdgeConfig, GenericEntsDataModel, EdgeConfig } from './schema.js';
|
|
3
|
-
import 'convex/values';
|
|
3
|
+
import { GenericId } from 'convex/values';
|
|
4
4
|
|
|
5
5
|
type EntsSystemDataModel = {
|
|
6
6
|
[key in keyof SystemDataModel]: SystemDataModel[key] & {
|
|
@@ -8,10 +8,14 @@ type EntsSystemDataModel = {
|
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
type PromiseEdgeResult<EdgeConfig extends GenericEdgeConfig, MultipleRef, MultipleField, SingleOptional, Single> = EdgeConfig["cardinality"] extends "multiple" ? EdgeConfig["type"] extends "ref" ? MultipleRef : MultipleField : EdgeConfig["type"] extends "ref" ? SingleOptional : EdgeConfig["optional"] extends true ? SingleOptional : Single;
|
|
11
|
-
type IndexFieldTypesForEq<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, T extends string[]> =
|
|
11
|
+
type IndexFieldTypesForEq<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>, T extends string[]> = PopIfSeveral<{
|
|
12
12
|
[K in keyof T]: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, T[K]>;
|
|
13
13
|
}>;
|
|
14
|
-
type
|
|
14
|
+
type PopIfSeveral<T extends any[]> = T extends [infer Only] ? [Only] : T extends [...infer Rest, infer _Last] ? Rest : never;
|
|
15
15
|
declare function getEdgeDefinitions<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): Record<keyof EntsDataModel[Table]["edges"], EdgeConfig>;
|
|
16
|
+
type UniqueIndexFieldName<T extends string[]> = T extends [infer Only] ? Only : T extends [infer Single, "_creationTime"] ? Single : never;
|
|
17
|
+
declare function systemAwareGet<DataModel extends GenericDataModel, Table extends TableNamesInDataModel<DataModel>>(db: GenericDatabaseReader<DataModel>, table: Table, id: GenericId<Table>): Promise<DocumentByName<SystemDataModel, (Table & "_storage") | (Table & "_scheduled_functions")> | null> | Promise<DocumentByName<DataModel, Table> | null>;
|
|
18
|
+
declare function systemAwareQuery<DataModel extends GenericDataModel, Table extends TableNamesInDataModel<DataModel>>(db: GenericDatabaseReader<DataModel>, table: Table): QueryInitializer<NamedTableInfo<DataModel, Table>>;
|
|
19
|
+
declare function isSystemTable(table: string): table is SystemTableNames;
|
|
16
20
|
|
|
17
|
-
export { type EntsSystemDataModel, type IndexFieldTypesForEq, type PromiseEdgeResult, getEdgeDefinitions };
|
|
21
|
+
export { type EntsSystemDataModel, type IndexFieldTypesForEq, type PromiseEdgeResult, type UniqueIndexFieldName, getEdgeDefinitions, isSystemTable, systemAwareGet, systemAwareQuery };
|
package/dist/shared.js
CHANGED
|
@@ -20,14 +20,29 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/shared.ts
|
|
21
21
|
var shared_exports = {};
|
|
22
22
|
__export(shared_exports, {
|
|
23
|
-
getEdgeDefinitions: () => getEdgeDefinitions
|
|
23
|
+
getEdgeDefinitions: () => getEdgeDefinitions,
|
|
24
|
+
isSystemTable: () => isSystemTable,
|
|
25
|
+
systemAwareGet: () => systemAwareGet,
|
|
26
|
+
systemAwareQuery: () => systemAwareQuery
|
|
24
27
|
});
|
|
25
28
|
module.exports = __toCommonJS(shared_exports);
|
|
26
29
|
function getEdgeDefinitions(entDefinitions, table) {
|
|
27
30
|
return entDefinitions[table].edges;
|
|
28
31
|
}
|
|
32
|
+
function systemAwareGet(db, table, id) {
|
|
33
|
+
return isSystemTable(table) ? db.system.get(table, id) : db.get(table, id);
|
|
34
|
+
}
|
|
35
|
+
function systemAwareQuery(db, table) {
|
|
36
|
+
return isSystemTable(table) ? db.system.query(table) : db.query(table);
|
|
37
|
+
}
|
|
38
|
+
function isSystemTable(table) {
|
|
39
|
+
return table.startsWith("_");
|
|
40
|
+
}
|
|
29
41
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
42
|
0 && (module.exports = {
|
|
31
|
-
getEdgeDefinitions
|
|
43
|
+
getEdgeDefinitions,
|
|
44
|
+
isSystemTable,
|
|
45
|
+
systemAwareGet,
|
|
46
|
+
systemAwareQuery
|
|
32
47
|
});
|
|
33
48
|
//# sourceMappingURL=shared.js.map
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared.ts"],"sourcesContent":["import {\n DocumentByName,\n FieldTypeFromFieldPath,\n SystemDataModel,\n TableNamesInDataModel,\n} from \"convex/server\";\nimport { EdgeConfig, GenericEdgeConfig, GenericEntsDataModel } from \"./schema\";\n\nexport type EntsSystemDataModel = {\n [key in keyof SystemDataModel]: SystemDataModel[key] & {\n edges: Record<string, never>;\n };\n};\n\nexport type PromiseEdgeResult<\n EdgeConfig extends GenericEdgeConfig,\n MultipleRef,\n MultipleField,\n SingleOptional,\n Single,\n> = EdgeConfig[\"cardinality\"] extends \"multiple\"\n ? EdgeConfig[\"type\"] extends \"ref\"\n ? MultipleRef\n : MultipleField\n : EdgeConfig[\"type\"] extends \"ref\"\n ? SingleOptional\n : EdgeConfig[\"optional\"] extends true\n ? SingleOptional\n : Single;\n\nexport type IndexFieldTypesForEq<\n EntsDataModel extends GenericEntsDataModel,\n Table extends TableNamesInDataModel<EntsDataModel>,\n T extends string[],\n> =
|
|
1
|
+
{"version":3,"sources":["../src/shared.ts"],"sourcesContent":["import {\n DocumentByName,\n FieldTypeFromFieldPath,\n GenericDatabaseReader,\n GenericDataModel,\n NamedTableInfo,\n QueryInitializer,\n SystemDataModel,\n SystemTableNames,\n TableNamesInDataModel,\n} from \"convex/server\";\nimport { EdgeConfig, GenericEdgeConfig, GenericEntsDataModel } from \"./schema\";\nimport { GenericId } from \"convex/values\";\n\nexport type EntsSystemDataModel = {\n [key in keyof SystemDataModel]: SystemDataModel[key] & {\n edges: Record<string, never>;\n };\n};\n\nexport type PromiseEdgeResult<\n EdgeConfig extends GenericEdgeConfig,\n MultipleRef,\n MultipleField,\n SingleOptional,\n Single,\n> = EdgeConfig[\"cardinality\"] extends \"multiple\"\n ? EdgeConfig[\"type\"] extends \"ref\"\n ? MultipleRef\n : MultipleField\n : EdgeConfig[\"type\"] extends \"ref\"\n ? SingleOptional\n : EdgeConfig[\"optional\"] extends true\n ? SingleOptional\n : Single;\n\nexport type IndexFieldTypesForEq<\n EntsDataModel extends GenericEntsDataModel,\n Table extends TableNamesInDataModel<EntsDataModel>,\n T extends string[],\n> = PopIfSeveral<{\n [K in keyof T]: FieldTypeFromFieldPath<\n DocumentByName<EntsDataModel, Table>,\n T[K]\n >;\n}>;\n\n// System indexes have only a single field, so we won't to perform\n// equality check on that field. Normal indexes always have _creationTime as the last field.\ntype PopIfSeveral<T extends any[]> = T extends [infer Only]\n ? [Only]\n : T extends [...infer Rest, infer _Last]\n ? Rest\n : never;\n\nexport function getEdgeDefinitions<\n EntsDataModel extends GenericEntsDataModel,\n Table extends TableNamesInDataModel<EntsDataModel>,\n>(entDefinitions: EntsDataModel, table: Table) {\n return entDefinitions[table].edges as Record<\n keyof EntsDataModel[Table][\"edges\"],\n EdgeConfig\n >;\n}\n\nexport type UniqueIndexFieldName<T extends string[]> = T extends [infer Only]\n ? Only\n : T extends [infer Single, \"_creationTime\"]\n ? Single\n : never;\n\nexport function systemAwareGet<\n DataModel extends GenericDataModel,\n Table extends TableNamesInDataModel<DataModel>,\n>(db: GenericDatabaseReader<DataModel>, table: Table, id: GenericId<Table>) {\n return isSystemTable(table)\n ? db.system.get(table, id as any)\n : db.get(table, id);\n}\n\nexport function systemAwareQuery<\n DataModel extends GenericDataModel,\n Table extends TableNamesInDataModel<DataModel>,\n>(\n db: GenericDatabaseReader<DataModel>,\n table: Table,\n): QueryInitializer<NamedTableInfo<DataModel, Table>> {\n return isSystemTable(table)\n ? (db.system.query(table) as any)\n : db.query(table);\n}\n\nexport function isSystemTable(table: string): table is SystemTableNames {\n return table.startsWith(\"_\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuDO,SAAS,mBAGd,gBAA+B,OAAc;AAC7C,SAAO,eAAe,KAAK,EAAE;AAI/B;AAQO,SAAS,eAGd,IAAsC,OAAc,IAAsB;AAC1E,SAAO,cAAc,KAAK,IACtB,GAAG,OAAO,IAAI,OAAO,EAAS,IAC9B,GAAG,IAAI,OAAO,EAAE;AACtB;AAEO,SAAS,iBAId,IACA,OACoD;AACpD,SAAO,cAAc,KAAK,IACrB,GAAG,OAAO,MAAM,KAAK,IACtB,GAAG,MAAM,KAAK;AACpB;AAEO,SAAS,cAAc,OAA0C;AACtE,SAAO,MAAM,WAAW,GAAG;AAC7B;","names":[]}
|
package/dist/writer.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { GenericEdgeConfig, GenericEntsDataModel, Expand, DeletionConfig } from
|
|
|
2
2
|
import { GenericDocument, TableNamesInDataModel, DocumentByName, PaginationOptions, PaginationResult, IndexNames, NamedTableInfo, FilterBuilder, ExpressionOrValue, WithOptionalSystemFields, FieldTypeFromFieldPath, SearchIndexNames, SearchFilterBuilder, NamedSearchIndex, SearchFilter, GenericDataModel, GenericDatabaseReader, GenericDatabaseWriter, StorageWriter, Scheduler, IndexRangeBuilder, NamedIndex, IndexRange, WithoutSystemFields } from 'convex/server';
|
|
3
3
|
import { GenericId } from 'convex/values';
|
|
4
4
|
import { ScheduledDeleteFuncRef } from './deletion.js';
|
|
5
|
-
import { PromiseEdgeResult, EntsSystemDataModel, IndexFieldTypesForEq } from './shared.js';
|
|
5
|
+
import { PromiseEdgeResult, EntsSystemDataModel, UniqueIndexFieldName, IndexFieldTypesForEq } from './shared.js';
|
|
6
6
|
|
|
7
7
|
declare class WriterImplBase<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
8
8
|
protected ctx: EntMutationCtx<EntsDataModel>;
|
|
@@ -34,7 +34,6 @@ type EdgeChanges = Record<string, {
|
|
|
34
34
|
remove?: GenericId<any>[];
|
|
35
35
|
removeEdges?: GenericId<any>[];
|
|
36
36
|
}>;
|
|
37
|
-
declare function isSystemTable(table: string): boolean;
|
|
38
37
|
|
|
39
38
|
interface PromiseOrderedQueryOrNull<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> extends Promise<Ent<Table, DocumentByName<EntsDataModel, Table>, EntsDataModel>[] | null> {
|
|
40
39
|
filter(predicate: (q: FilterBuilder<NamedTableInfo<EntsDataModel, Table>>) => ExpressionOrValue<boolean>): this;
|
|
@@ -61,9 +60,9 @@ interface PromiseQueryWriterOrNull<EntsDataModel extends GenericEntsDataModel, T
|
|
|
61
60
|
order(order: "asc" | "desc", indexName?: IndexNames<NamedTableInfo<EntsDataModel, Table>>): PromiseOrderedQueryWriterOrNull<EntsDataModel, Table>;
|
|
62
61
|
}
|
|
63
62
|
interface PromiseTableBase<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>> {
|
|
64
|
-
getMany<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, values: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][
|
|
63
|
+
getMany<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, values: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, UniqueIndexFieldName<Indexes[Index]>>[]): PromiseEntsOrNulls<EntsDataModel, Table>;
|
|
65
64
|
getMany(ids: GenericId<Table>[]): PromiseEntsOrNulls<EntsDataModel, Table>;
|
|
66
|
-
getManyX<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, values: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, Indexes[Index][
|
|
65
|
+
getManyX<Indexes extends EntsDataModel[Table]["indexes"], Index extends keyof Indexes>(indexName: Index, values: FieldTypeFromFieldPath<DocumentByName<EntsDataModel, Table>, UniqueIndexFieldName<Indexes[Index]>>[]): PromiseEnts<EntsDataModel, Table>;
|
|
67
66
|
getManyX(ids: GenericId<Table>[]): PromiseEnts<EntsDataModel, Table>;
|
|
68
67
|
/**
|
|
69
68
|
* If given a valid ID for the given table, returns it, or returns null if the ID
|
|
@@ -551,4 +550,4 @@ declare function getWriteRule(entDefinitions: GenericEntsDataModel, table: strin
|
|
|
551
550
|
}) => Promise<boolean>) | undefined;
|
|
552
551
|
declare function getDeletionConfig<EntsDataModel extends GenericEntsDataModel, Table extends TableNamesInDataModel<EntsDataModel>>(entDefinitions: EntsDataModel, table: Table): DeletionConfig | undefined;
|
|
553
552
|
|
|
554
|
-
export { getWriteRule as $, entWrapper as A, entsTableFactory as B, type EntsTableWriter as C, type Ent as D, type EntsTable as E, type EdgeChanges, type PromiseEdge as F, type GenericEnt as G, type PromiseEdgeOrThrow as H, type PromiseEdgeWriter as I, type PromiseEdgeWriterOrThrow as J, type PromiseEdgeWriterOrNull as K, type PromiseOrderedQueryWriter as L, type PromiseQueryWriter as M, type PromiseEntsWriter as N, type PromisePaginationResultWriterOrNull as O, type PromiseOrderedQueryOrNull as P, type PromisePaginationResultWriter as Q, type PromiseTableWriter as R, type PromiseEntWriterOrNull as S, type PromiseEntWriter as T, type GenericEntWriter as U, type PromiseEntId as V, type EntQueryCtx as W, type WithEdgeInserts, type WithEdgePatches, type WithEdges, WriterImplBase, type EntMutationCtx as X, type DocRetriever as Y, addEntRules as Z, getReadRule as _, type PromiseOrderedQueryWriterOrNull as a, getDeletionConfig as a0, type PromiseQueryOrNull as b, type PromiseQueryWriterOrNull as c, type PromiseTableBase as d, type PromiseTable as e, type PromiseOrderedQueryBase as f, type PromiseOrderedQuery as g, type PromiseQuery as h, type PromisePaginationResultOrNull as i,
|
|
553
|
+
export { getWriteRule as $, entWrapper as A, entsTableFactory as B, type EntsTableWriter as C, type Ent as D, type EntsTable as E, type EdgeChanges, type PromiseEdge as F, type GenericEnt as G, type PromiseEdgeOrThrow as H, type PromiseEdgeWriter as I, type PromiseEdgeWriterOrThrow as J, type PromiseEdgeWriterOrNull as K, type PromiseOrderedQueryWriter as L, type PromiseQueryWriter as M, type PromiseEntsWriter as N, type PromisePaginationResultWriterOrNull as O, type PromiseOrderedQueryOrNull as P, type PromisePaginationResultWriter as Q, type PromiseTableWriter as R, type PromiseEntWriterOrNull as S, type PromiseEntWriter as T, type GenericEntWriter as U, type PromiseEntId as V, type EntQueryCtx as W, type WithEdgeInserts, type WithEdgePatches, type WithEdges, WriterImplBase, type EntMutationCtx as X, type DocRetriever as Y, addEntRules as Z, getReadRule as _, type PromiseOrderedQueryWriterOrNull as a, getDeletionConfig as a0, type PromiseQueryOrNull as b, type PromiseQueryWriterOrNull as c, type PromiseTableBase as d, type PromiseTable as e, type PromiseOrderedQueryBase as f, type PromiseOrderedQuery as g, type PromiseQuery as h, type PromisePaginationResultOrNull as i, type PromisePaginationResult as j, type PromiseEntsOrNull as k, type PromiseEntsWriterOrNull as l, type PromiseEnts as m, type PromiseEntsOrNulls as n, type PromiseEdgeOrderedEntsOrNull as o, type PromiseEdgeEntsOrNull as p, type PromiseEdgeOrderedEntsWriterOrNull as q, type PromiseEdgeEntsWriterOrNull as r, type PromiseEdgeOrderedEnts as s, type PromiseEdgeEnts as t, type PromiseEdgeOrderedEntsWriter as u, type PromiseEdgeEntsWriter as v, type PromiseEntOrNull as w, type PromiseEnt as x, type PromiseArrayOrNull as y, type PromiseArray as z };
|
package/dist/writer.js
CHANGED
|
@@ -20,8 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/writer.ts
|
|
21
21
|
var writer_exports = {};
|
|
22
22
|
__export(writer_exports, {
|
|
23
|
-
WriterImplBase: () => WriterImplBase
|
|
24
|
-
isSystemTable: () => isSystemTable
|
|
23
|
+
WriterImplBase: () => WriterImplBase
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(writer_exports);
|
|
27
26
|
var import_server2 = require("convex/server");
|
|
@@ -40,6 +39,12 @@ function edgeCompoundIndexNameRaw(idA, idB) {
|
|
|
40
39
|
function getEdgeDefinitions(entDefinitions, table) {
|
|
41
40
|
return entDefinitions[table].edges;
|
|
42
41
|
}
|
|
42
|
+
function systemAwareGet(db, table, id) {
|
|
43
|
+
return isSystemTable(table) ? db.system.get(table, id) : db.get(table, id);
|
|
44
|
+
}
|
|
45
|
+
function isSystemTable(table) {
|
|
46
|
+
return table.startsWith("_");
|
|
47
|
+
}
|
|
43
48
|
|
|
44
49
|
// src/functions.ts
|
|
45
50
|
var PromiseQueryOrNullImpl = class _PromiseQueryOrNullImpl extends Promise {
|
|
@@ -390,7 +395,11 @@ var PromiseEdgeOrNullImpl = class _PromiseEdgeOrNullImpl extends PromiseEntsOrNu
|
|
|
390
395
|
constructor(ctx, entDefinitions, table, edgeDefinition, retrieveSourceId, retrieveQuery, retrieveDoc = async (edgeDoc) => {
|
|
391
396
|
const sourceId = edgeDoc[edgeDefinition.field];
|
|
392
397
|
const targetId = edgeDoc[edgeDefinition.ref];
|
|
393
|
-
const doc = await
|
|
398
|
+
const doc = await systemAwareGet(
|
|
399
|
+
this.ctx.db,
|
|
400
|
+
edgeDefinition.to,
|
|
401
|
+
targetId
|
|
402
|
+
);
|
|
394
403
|
if (doc === null) {
|
|
395
404
|
throw new Error(
|
|
396
405
|
`Dangling reference for edge "${edgeDefinition.name}" in table "${this.table}" for document with ID "${sourceId}": Could not find a document with ID "${targetId}" in table "${edgeDefinition.to}" (edge document ID is "${edgeDoc._id}").`
|
|
@@ -686,7 +695,11 @@ var PromiseEntOrNullImpl = class extends Promise {
|
|
|
686
695
|
`Unexpected null reference for edge "${edgeDefinition.name}" in table "${this.table}" on document with ID "${id}": Expected an ID for a document in table "${edgeDefinition.to}".`
|
|
687
696
|
);
|
|
688
697
|
}
|
|
689
|
-
const otherDoc = await
|
|
698
|
+
const otherDoc = await systemAwareGet(
|
|
699
|
+
this.ctx.db,
|
|
700
|
+
edgeDefinition.to,
|
|
701
|
+
otherId
|
|
702
|
+
);
|
|
690
703
|
if (otherDoc === null && edgeDefinition.to !== "_scheduled_functions") {
|
|
691
704
|
throw new Error(
|
|
692
705
|
`Dangling reference for edge "${edgeDefinition.name}" in table "${this.table}" on document with ID "${id}": Could not find a document with ID "${otherId}" in table "${edgeDefinition.to}".`
|
|
@@ -894,7 +907,7 @@ var PromiseEntWriterImpl = class extends PromiseEntOrNullImpl {
|
|
|
894
907
|
}
|
|
895
908
|
if (edgeDefinition.cardinality === "single") {
|
|
896
909
|
if (edgeDefinition.type === "ref") {
|
|
897
|
-
const oldDoc = await this.ctx.db.get(docId);
|
|
910
|
+
const oldDoc = await this.ctx.db.get(this.table, docId);
|
|
898
911
|
if (oldDoc[key] !== void 0 && oldDoc[key] !== idOrIds) {
|
|
899
912
|
throw new Error("Cannot set 1:1 edge from ref end.");
|
|
900
913
|
}
|
|
@@ -956,7 +969,10 @@ var PromiseEntIdImpl = class extends Promise {
|
|
|
956
969
|
this.table,
|
|
957
970
|
async () => {
|
|
958
971
|
const id = await this.retrieve();
|
|
959
|
-
return {
|
|
972
|
+
return {
|
|
973
|
+
id,
|
|
974
|
+
doc: async () => systemAwareGet(this.ctx.db, this.table, id)
|
|
975
|
+
};
|
|
960
976
|
},
|
|
961
977
|
true
|
|
962
978
|
);
|
|
@@ -1078,7 +1094,7 @@ var WriterImplBase = class _WriterImplBase {
|
|
|
1078
1094
|
}
|
|
1079
1095
|
} else if (edgeDefinition.cardinality === "single") {
|
|
1080
1096
|
if (edgeDefinition.deletion !== void 0 && (!isDeletingSoftly || edgeDefinition.deletion === "soft")) {
|
|
1081
|
-
const doc = await this.ctx.db.get(id);
|
|
1097
|
+
const doc = await this.ctx.db.get(this.table, id);
|
|
1082
1098
|
if (doc !== null) {
|
|
1083
1099
|
const otherId = doc[edgeDefinition.field];
|
|
1084
1100
|
edges[key] = {
|
|
@@ -1284,7 +1300,7 @@ var WriterImplBase = class _WriterImplBase {
|
|
|
1284
1300
|
if (id !== void 0) {
|
|
1285
1301
|
const readPolicy = getReadRule(this.entDefinitions, this.table);
|
|
1286
1302
|
if (readPolicy !== void 0) {
|
|
1287
|
-
const doc = await this.ctx.db.get(id);
|
|
1303
|
+
const doc = await this.ctx.db.get(this.table, id);
|
|
1288
1304
|
if (doc === null) {
|
|
1289
1305
|
throw new Error(
|
|
1290
1306
|
`Cannot update document with ID "${id}" in table "${this.table} because it does not exist"`
|
|
@@ -1303,7 +1319,7 @@ var WriterImplBase = class _WriterImplBase {
|
|
|
1303
1319
|
return;
|
|
1304
1320
|
}
|
|
1305
1321
|
const ent = id === void 0 ? void 0 : entWrapper(
|
|
1306
|
-
await this.ctx.db.get(id),
|
|
1322
|
+
await this.ctx.db.get(this.table, id),
|
|
1307
1323
|
this.ctx,
|
|
1308
1324
|
this.entDefinitions,
|
|
1309
1325
|
this.table
|
|
@@ -1333,12 +1349,8 @@ var WriterImplBase = class _WriterImplBase {
|
|
|
1333
1349
|
}
|
|
1334
1350
|
}
|
|
1335
1351
|
};
|
|
1336
|
-
function isSystemTable(table) {
|
|
1337
|
-
return table.startsWith("_");
|
|
1338
|
-
}
|
|
1339
1352
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1340
1353
|
0 && (module.exports = {
|
|
1341
|
-
WriterImplBase
|
|
1342
|
-
isSystemTable
|
|
1354
|
+
WriterImplBase
|
|
1343
1355
|
});
|
|
1344
1356
|
//# sourceMappingURL=writer.js.map
|