@davidtkramer/convex-relations 0.6.1 → 0.6.2

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/README.md CHANGED
@@ -402,11 +402,13 @@ const categories = await q.categories.bySlug
402
402
  .in(["typescript", "convex"])
403
403
  .many();
404
404
 
405
- // Compound indexes take positional prefixes, one tuple per lookup.
405
+ // Compound indexes take positional prefixes, one tuple per lookup. A bare
406
+ // value is the one-argument call on the leading field.
406
407
  const comments = await q.comments.byPostIdAndStatus
407
408
  .in([
408
409
  [postId, "approved"],
409
410
  [otherPostId, "pending"],
411
+ thirdPostId,
410
412
  ])
411
413
  .many();
412
414
  ```
package/dist/index.d.ts CHANGED
@@ -38,7 +38,11 @@ type PositionalIndexArgs<DataModel extends GenericDataModel, Table extends AppTa
38
38
  type RootIndexValueArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends UserIndex<DataModel, Table>> = PositionalIndexArgs<DataModel, Table, IndexName> | (SingleIndexField<DataModel, Table, IndexName> extends never ? never : DocFieldType<AppDoc<DataModel, Table>, SingleIndexField<DataModel, Table, IndexName>>);
39
39
  type StrictRootIndexValueArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends UserIndex<DataModel, Table>, Value extends RootIndexValueArg<DataModel, Table, IndexName>> = Value;
40
40
  type TableIndexName<DataModel extends GenericDataModel, Table extends AppTable<DataModel>> = UserIndex<DataModel, Table> | 'by_id';
41
- type UserIndexArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends UserIndex<DataModel, Table>> = SingleIndexField<DataModel, Table, IndexName> extends never ? PositionalIndexArgs<DataModel, Table, IndexName> : DocFieldType<AppDoc<DataModel, Table>, SingleIndexField<DataModel, Table, IndexName>>;
41
+ type FirstIndexField<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends UserIndex<DataModel, Table>> = UserIndexFields<DataModel, Table, IndexName> extends readonly [
42
+ infer Field extends string,
43
+ ...unknown[]
44
+ ] ? Field : never;
45
+ type UserIndexArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends UserIndex<DataModel, Table>> = DocFieldType<AppDoc<DataModel, Table>, FirstIndexField<DataModel, Table, IndexName>> | PositionalIndexArgs<DataModel, Table, IndexName> | Readonly<PositionalIndexArgs<DataModel, Table, IndexName>>;
42
46
  type TableIndexValueArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends TableIndexName<DataModel, Table>> = IndexName extends 'by_id' ? GenericId<Table> : IndexName extends UserIndex<DataModel, Table> ? UserIndexArg<DataModel, Table, IndexName> : never;
43
47
  type StrictTableIndexValueArg<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends TableIndexName<DataModel, Table>, Value extends TableIndexValueArg<DataModel, Table, IndexName>> = Value;
44
48
  type TableIndexInvocationArgs<DataModel extends GenericDataModel, Table extends AppTable<DataModel>, IndexName extends TableIndexName<DataModel, Table>> = IndexName extends 'by_id' ? [GenericId<Table>] : IndexName extends UserIndex<DataModel, Table> ? PositionalIndexArgs<DataModel, Table, IndexName> : never;
@@ -150,7 +154,7 @@ type ThroughCollectionSource<DataModel extends GenericDataModel, SourceTable ext
150
154
  type TableNamespace<DataModel extends GenericDataModel, Table extends AppTable<DataModel>> = {
151
155
  find<const Id extends GenericId<Table>>(id: Id): FindQueryBuilder<AppDoc<DataModel, Table>>;
152
156
  findOrNull<const Id extends GenericId<Table>>(id: Id): FindOrNullQueryBuilder<AppDoc<DataModel, Table>>;
153
- in<const Id extends GenericId<Table>>(ids: Id[]): TableBatchQueryFacade<DataModel, Table>;
157
+ in<const Id extends GenericId<Table>>(ids: readonly Id[]): TableBatchQueryFacade<DataModel, Table>;
154
158
  withIndex<const IndexName extends UserIndex<DataModel, Table>>(index: IndexName, selector: IndexSelector<DataModel, Table, IndexName>): TableQueryFacade<DataModel, Table>;
155
159
  withIndex<const IndexName extends UserIndex<DataModel, Table>>(index: IndexName): TableRangeQueryFacade<DataModel, Table>;
156
160
  through: {
@@ -164,7 +168,7 @@ type TableNamespace<DataModel extends GenericDataModel, Table extends AppTable<D
164
168
  (selector: IndexName extends UserIndex<DataModel, Table> ? IndexSelector<DataModel, Table, IndexName> : never): TableQueryFacade<DataModel, Table>;
165
169
  <const Args extends TableIndexInvocationArgs<DataModel, Table, IndexName>>(...args: Args): TableQueryFacade<DataModel, Table, NarrowedIndexItem<DataModel, Table, IndexName, Args>>;
166
170
  (): TableRangeQueryFacade<DataModel, Table>;
167
- in<const Value extends TableIndexValueArg<DataModel, Table, IndexName>>(values: StrictTableIndexValueArg<DataModel, Table, IndexName, Value>[]): TableBatchQueryFacade<DataModel, Table, NarrowedIndexItem<DataModel, Table, IndexName, Value extends readonly unknown[] ? Value : [Value]>>;
171
+ in<const Value extends TableIndexValueArg<DataModel, Table, IndexName>>(values: readonly StrictTableIndexValueArg<DataModel, Table, IndexName, Value>[]): TableBatchQueryFacade<DataModel, Table, NarrowedIndexItem<DataModel, Table, IndexName, Value extends readonly unknown[] ? Value : [Value]>>;
168
172
  };
169
173
  };
170
174
  type QueryFacade<DataModel extends GenericDataModel> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidtkramer/convex-relations",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Typed query facade helpers for Convex backends",
5
5
  "type": "module",
6
6
  "license": "MIT",