convex-ents 0.7.7 → 0.8.1

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.
@@ -13,7 +13,7 @@ type Origin = {
13
13
  table: string;
14
14
  deletionTime: number;
15
15
  };
16
- declare const vApproach: convex_values.Validator<"cascade" | "paginate", false, never>;
16
+ declare const vApproach: convex_values.VUnion<"cascade" | "paginate", [convex_values.VLiteral<"cascade", "required">, convex_values.VLiteral<"paginate", "required">], "required", never>;
17
17
  type Approach = Infer<typeof vApproach>;
18
18
  declare function scheduledDeleteFactory<EntsDataModel extends GenericEntsDataModel>(entDefinitions: EntsDataModel, options?: {
19
19
  scheduledDelete: ScheduledDeleteFuncRef;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { EntDefinition, defineEnt, defineEntFromTable, defineEntSchema, getEntDefinitions } from './schema.js';
1
+ export { EntDefinition, defineEnt, defineEntFromTable, defineEntSchema, defineEntsFromTables, getEntDefinitions } from './schema.js';
2
2
  export { G as GenericEnt, T as GenericEntWriter, t as PromiseEdgeEnts, r as PromiseEdgeEntsOrNull, u as PromiseEdgeEntsWriter, I as PromiseEdgeWriter, K as PromiseEdgeWriterOrNull, J as PromiseEdgeWriterOrThrow, w as PromiseEnt, U as PromiseEntId, v as PromiseEntOrNull, S as PromiseEntWriter, R as PromiseEntWriterOrNull, p as PromiseEnts, n as PromiseEntsOrNull, q as PromiseEntsOrNulls, N as PromiseEntsWriter, o as PromiseEntsWriterOrNull, j as PromiseOrderedQuery, i as PromiseOrderedQueryBase, P as PromiseOrderedQueryOrNull, L as PromiseOrderedQueryWriter, d as PromiseOrderedQueryWriterOrNull, k as PromiseQuery, e as PromiseQueryOrNull, M as PromiseQueryWriter, f as PromiseQueryWriterOrNull, h as PromiseTable, g as PromiseTableBase, Q as PromiseTableWriter, Z as addEntRules, A as entsTableFactory } from './index-uXk5iZ86.js';
3
3
  export { scheduledDeleteFactory } from './deletion.js';
4
4
  import 'convex/server';
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ __export(src_exports, {
24
24
  defineEnt: () => defineEnt,
25
25
  defineEntFromTable: () => defineEntFromTable,
26
26
  defineEntSchema: () => defineEntSchema,
27
+ defineEntsFromTables: () => defineEntsFromTables,
27
28
  entsTableFactory: () => entsTableFactory,
28
29
  getEntDefinitions: () => getEntDefinitions,
29
30
  scheduledDeleteFactory: () => scheduledDeleteFactory
@@ -191,30 +192,27 @@ function defineEnt(documentSchema) {
191
192
  return new EntDefinitionImpl(documentSchema);
192
193
  }
193
194
  function defineEntFromTable(definition) {
194
- const validator = definition.documentType;
195
- const validatorJson = (
196
- // @ts-expect-error Private field
197
- validator.json
198
- );
199
- if (validatorJson.type !== "object") {
195
+ const validator = definition.validator;
196
+ if (validator.kind !== "object") {
200
197
  throw new Error(
201
198
  "Only tables with object definition are supported in Ents, not unions"
202
199
  );
203
200
  }
204
- const tableSchema = Object.fromEntries(
205
- Object.entries(validatorJson.value).map(([k, v3]) => [
206
- k,
207
- // @ts-expect-error Private constructor
208
- new import_values.Validator(v3.fieldType, v3.optional)
209
- ])
210
- );
211
- const entDefinition = defineEnt(tableSchema);
201
+ const entDefinition = defineEnt(validator.fields);
212
202
  entDefinition.indexes = definition.indexes;
213
203
  entDefinition.searchIndexes = definition.searchIndexes;
214
204
  entDefinition.vectorIndexes = definition.vectorIndexes;
215
205
  return entDefinition;
216
206
  }
207
+ function defineEntsFromTables(definitions) {
208
+ const result = {};
209
+ for (const key in definitions) {
210
+ result[key] = defineEntFromTable(definitions[key]);
211
+ }
212
+ return result;
213
+ }
217
214
  var EntDefinitionImpl = class {
215
+ validator;
218
216
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
219
217
  // @ts-ignore
220
218
  indexes = [];
@@ -231,6 +229,7 @@ var EntDefinitionImpl = class {
231
229
  deletionConfig;
232
230
  constructor(documentSchema) {
233
231
  this.documentSchema = documentSchema;
232
+ this.validator = import_values.v.object(documentSchema);
234
233
  }
235
234
  index(name, fields) {
236
235
  this.indexes.push({ indexDescriptor: name, fields });
@@ -1914,6 +1913,7 @@ async function paginate(ctx, {
1914
1913
  defineEnt,
1915
1914
  defineEntFromTable,
1916
1915
  defineEntSchema,
1916
+ defineEntsFromTables,
1917
1917
  entsTableFactory,
1918
1918
  getEntDefinitions,
1919
1919
  scheduledDeleteFactory