@davidtkramer/convex-relations 0.4.1 → 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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { GenericDataModel, TableNamesInDataModel, DocumentByName, GenericTableInfo, FilterBuilder, ExpressionOrValue, NamedTableInfo, IndexNames, IndexRangeBuilder, NamedIndex, IndexRange, GenericDatabaseReader, SchemaDefinition } from 'convex/server';
1
+ import { GenericDataModel, TableNamesInDataModel, DocumentByName, IndexNames, NamedTableInfo, IndexRangeBuilder, NamedIndex, IndexRange, GenericTableInfo, FilterBuilder, ExpressionOrValue, GenericDatabaseReader, SchemaDefinition } from 'convex/server';
2
2
  import { GenericId } from 'convex/values';
3
3
 
4
4
  type Simplify<T> = {
@@ -139,6 +139,8 @@ type TableNamespace<DataModel extends GenericDataModel, Table extends AppTable<D
139
139
  find<const Id extends GenericId<Table>>(id: Id): FindQueryBuilder<AppDoc<DataModel, Table>>;
140
140
  findOrNull<const Id extends GenericId<Table>>(id: Id): FindOrNullQueryBuilder<AppDoc<DataModel, Table>>;
141
141
  in<const Id extends GenericId<Table>>(ids: Id[]): TableBatchQueryFacade<DataModel, Table>;
142
+ withIndex<const IndexName extends UserIndex<DataModel, Table>>(index: IndexName, selector: IndexSelector<DataModel, Table, IndexName>): TableQueryFacade<DataModel, Table>;
143
+ withIndex<const IndexName extends UserIndex<DataModel, Table>>(index: IndexName): TableRangeQueryFacade<DataModel, Table>;
142
144
  through: {
143
145
  <const SourceTable extends AppTable<DataModel>, SourceItem, const TargetField extends ThroughSourceField<DataModel, Table, SourceItem>>(sourceQuery: ThroughCollectionSource<DataModel, SourceTable, SourceItem>, targetField: TargetField): ThroughQueryFacade<DataModel, Table, SourceItem>;
144
146
  <SourceItem, const TargetField extends ThroughSourceField<DataModel, Table, SourceItem>>(sourceQuery: AnyManySourceNode<SourceItem>, targetField: TargetField): ManyThroughQueryBuilder<AppDoc<DataModel, Table>, SourceItem>;
package/dist/index.js CHANGED
@@ -69,7 +69,9 @@ function withExpander(plan, expander) {
69
69
  }
70
70
  function normalizeIndexValues(index, value, indexFields) {
71
71
  if (Array.isArray(value)) {
72
- return Object.fromEntries(indexFields.map((field, index2) => [field, value[index2]]));
72
+ return Object.fromEntries(
73
+ indexFields.slice(0, value.length).map((field, index2) => [field, value[index2]])
74
+ );
73
75
  }
74
76
  if (isPlainObject(value)) {
75
77
  return value;
@@ -655,6 +657,12 @@ function createTableNamespace(db, table, resolveIndexFields) {
655
657
  in(ids) {
656
658
  return createBatchFacade(db, createBatchPlan(table, "by_id", ids));
657
659
  },
660
+ withIndex(index, selector) {
661
+ return createCollectionFacade(
662
+ db,
663
+ createQueryPlan(table, index, selector, resolveIndexFields(table, index))
664
+ );
665
+ },
658
666
  through(sourceQuery, targetField) {
659
667
  if (isCollectionSource(sourceQuery)) {
660
668
  return createThroughCollectionFacade(db, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidtkramer/convex-relations",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Typed query facade helpers for Convex backends",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -28,11 +28,6 @@
28
28
  },
29
29
  "main": "./dist/index.js",
30
30
  "types": "./dist/index.d.ts",
31
- "scripts": {
32
- "build": "tsup src/index.ts --format esm --dts",
33
- "check-types": "tsc --noEmit",
34
- "test": "vitest run --typecheck"
35
- },
36
31
  "peerDependencies": {
37
32
  "convex": "^1.25.4"
38
33
  },
@@ -45,5 +40,9 @@
45
40
  "typical-data": "^0.5.0",
46
41
  "vitest": "^4.0.15"
47
42
  },
48
- "packageManager": "pnpm@9.15.9"
49
- }
43
+ "scripts": {
44
+ "build": "tsup src/index.ts --format esm --dts",
45
+ "check-types": "tsc --noEmit",
46
+ "test": "vitest run --typecheck"
47
+ }
48
+ }