@omegup/msync 0.1.46 → 0.1.47

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/index.d.ts CHANGED
@@ -438,18 +438,21 @@ declare const $groupId: <T extends O, V extends O, EE = {}, Out extends Loose<st
438
438
  declare const $group: <T extends O, Grp extends notArr, V extends O, EE = {}, Out extends Loose<Grp, V, "_grp"> = Loose<Grp, V, "_grp">>(id: Expr<Grp, T>, args: DeltaAccumulators<T, O & Omit<V, Denied<"_grp">>>, out: RWCollection<MergedInput<Out, V, Grp, "_grp", EE> | Strict<Grp, V, "_grp", EE>, Out>, extra: ExprsExact<Omit<EE, IdAndTsKeys | "_grp" | Exclude<keyof V, IdAndTsKeys | "_grp">>, Rec<"_grp", Grp> & Omit<V, IdAndTsKeys | "_grp">>, idPrefix?: string) => StreamRunnerParam<Delta<T>, "out">;
439
439
 
440
440
  type Params<As extends string, LQ extends O, RQ extends O, RE extends RQ, S extends notArr> = {
441
- foreignField: Field<RQ, S | Arr<S>>;
442
441
  from: SnapshotStreamExecutionResult<RQ, RE>;
443
442
  as: AsLiteral<As>;
444
443
  } & ({
445
- localField: Field<LQ, S>;
446
- toMany?: never;
444
+ to: 'one';
445
+ localField: Field<LQ, string>;
446
+ foreignField?: never;
447
+ middle?: never;
447
448
  } | {
448
- localField: Field<LQ, Arr<S>>;
449
- toMany: true;
449
+ to: 'many';
450
+ middle: string;
451
+ localField: Field<LQ, S | Arr<S>>;
452
+ foreignField: Field<RQ, S | Arr<S>>;
450
453
  });
451
- declare const $lookup: <As extends string, LQ extends doc, RQ extends O, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE>>;
452
- declare const $outerLookup: <As extends string, LQ extends doc, RQ extends O, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE | null>>;
454
+ declare const $lookup: <As extends string, LQ extends doc, RQ extends doc, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE>>;
455
+ declare const $outerLookup: <As extends string, LQ extends doc, RQ extends doc, RE extends RQ & doc, S extends notArr>(p: Params<As, LQ, RQ, RE, S>) => <LE extends LQ>(l: SnapshotStream<LQ, LE>) => SnapshotStream<LQ, LE & RORec<As, RE | null>>;
453
456
 
454
457
  declare const $matchDelta: <T extends doc>(query: Expr<boolean, T>) => RawStages<unknown, Delta<T>, Delta<T>, unknown, number>;
455
458
  declare const matchDelta: <D>() => RawStages<unknown, Delta<D | null>, Delta<D>>;
package/index.esm.js CHANGED
@@ -1628,11 +1628,10 @@ const runCont = async (it, cb) => {
1628
1628
  };
1629
1629
 
1630
1630
  const merge = ({ lsource: L, rsource: R, }) => mergeIterators({ sources: { L, R } });
1631
- const join = ({ lField, rField, left, right, as, toMany }, leftSnapshot, rightSnapshot, stagesUntilNextLookup, outerLeft, middle = '.') => {
1631
+ const join = (params, leftSnapshot, rightSnapshot, stagesUntilNextLookup, outerLeft) => {
1632
+ const { lField, rField, left, right, as } = params;
1632
1633
  const rightJoinField = { field1: lField, field2: rField };
1633
- const joinId = rField.str() === '_id' && toMany !== true
1634
- ? 'left'
1635
- : ['left', middle, 'right'];
1634
+ const joinId = params.to === 'one' ? 'left' : ['left', params.middle, 'right'];
1636
1635
  const joinR_Snapshot = asBefore($lookupRaw(rightJoinField, rightSnapshot, as, joinId, outerLeft));
1637
1636
  const resultingSnapshot = concatTStages(leftSnapshot, joinR_Snapshot);
1638
1637
  const dict = { [as]: 'a' };
@@ -1670,22 +1669,42 @@ const join = ({ lField, rField, left, right, as, toMany }, leftSnapshot, rightSn
1670
1669
  };
1671
1670
  };
1672
1671
  const $lookup1 = (p, outerLeft) => (input) => p.left.stages((lStages) => p.right.stages((rStages) => join(p, lStages, rStages, input, outerLeft)));
1673
- const $lookup = (p) => (l) => $lookup1({
1674
- right: p.from,
1675
- as: p.as,
1676
- lField: p.localField,
1677
- rField: p.foreignField,
1678
- left: l(emptyDelta()),
1679
- toMany: p.toMany,
1680
- });
1681
- const $outerLookup = (p) => (l) => $lookup1({
1682
- right: p.from,
1683
- as: p.as,
1684
- lField: p.localField,
1685
- rField: p.foreignField,
1686
- left: l(emptyDelta()),
1687
- toMany: p.toMany,
1688
- }, null);
1672
+ const $lookup = (p) => (l) => p.to === 'one'
1673
+ ? $lookup1({
1674
+ right: p.from,
1675
+ as: p.as,
1676
+ lField: p.localField,
1677
+ rField: root().of('_id'),
1678
+ left: l(emptyDelta()),
1679
+ to: 'one',
1680
+ })
1681
+ : $lookup1({
1682
+ to: 'many',
1683
+ right: p.from,
1684
+ as: p.as,
1685
+ lField: p.localField,
1686
+ rField: p.foreignField,
1687
+ left: l(emptyDelta()),
1688
+ middle: p.middle,
1689
+ });
1690
+ const $outerLookup = (p) => (l) => p.to === 'one'
1691
+ ? $lookup1({
1692
+ right: p.from,
1693
+ as: p.as,
1694
+ lField: p.localField,
1695
+ rField: root().of('_id'),
1696
+ left: l(emptyDelta()),
1697
+ to: 'one',
1698
+ }, null)
1699
+ : $lookup1({
1700
+ to: 'many',
1701
+ right: p.from,
1702
+ as: p.as,
1703
+ lField: p.localField,
1704
+ rField: p.foreignField,
1705
+ left: l(emptyDelta()),
1706
+ middle: p.middle,
1707
+ }, null);
1689
1708
 
1690
1709
  const $setCore = (updater) => ({
1691
1710
  delta: $setDelta(updater),
package/index.js CHANGED
@@ -1630,11 +1630,10 @@ const runCont = async (it, cb) => {
1630
1630
  };
1631
1631
 
1632
1632
  const merge = ({ lsource: L, rsource: R, }) => mergeIterators({ sources: { L, R } });
1633
- const join = ({ lField, rField, left, right, as, toMany }, leftSnapshot, rightSnapshot, stagesUntilNextLookup, outerLeft, middle = '.') => {
1633
+ const join = (params, leftSnapshot, rightSnapshot, stagesUntilNextLookup, outerLeft) => {
1634
+ const { lField, rField, left, right, as } = params;
1634
1635
  const rightJoinField = { field1: lField, field2: rField };
1635
- const joinId = rField.str() === '_id' && toMany !== true
1636
- ? 'left'
1637
- : ['left', middle, 'right'];
1636
+ const joinId = params.to === 'one' ? 'left' : ['left', params.middle, 'right'];
1638
1637
  const joinR_Snapshot = asBefore($lookupRaw(rightJoinField, rightSnapshot, as, joinId, outerLeft));
1639
1638
  const resultingSnapshot = concatTStages(leftSnapshot, joinR_Snapshot);
1640
1639
  const dict = { [as]: 'a' };
@@ -1672,22 +1671,42 @@ const join = ({ lField, rField, left, right, as, toMany }, leftSnapshot, rightSn
1672
1671
  };
1673
1672
  };
1674
1673
  const $lookup1 = (p, outerLeft) => (input) => p.left.stages((lStages) => p.right.stages((rStages) => join(p, lStages, rStages, input, outerLeft)));
1675
- const $lookup = (p) => (l) => $lookup1({
1676
- right: p.from,
1677
- as: p.as,
1678
- lField: p.localField,
1679
- rField: p.foreignField,
1680
- left: l(emptyDelta()),
1681
- toMany: p.toMany,
1682
- });
1683
- const $outerLookup = (p) => (l) => $lookup1({
1684
- right: p.from,
1685
- as: p.as,
1686
- lField: p.localField,
1687
- rField: p.foreignField,
1688
- left: l(emptyDelta()),
1689
- toMany: p.toMany,
1690
- }, null);
1674
+ const $lookup = (p) => (l) => p.to === 'one'
1675
+ ? $lookup1({
1676
+ right: p.from,
1677
+ as: p.as,
1678
+ lField: p.localField,
1679
+ rField: root().of('_id'),
1680
+ left: l(emptyDelta()),
1681
+ to: 'one',
1682
+ })
1683
+ : $lookup1({
1684
+ to: 'many',
1685
+ right: p.from,
1686
+ as: p.as,
1687
+ lField: p.localField,
1688
+ rField: p.foreignField,
1689
+ left: l(emptyDelta()),
1690
+ middle: p.middle,
1691
+ });
1692
+ const $outerLookup = (p) => (l) => p.to === 'one'
1693
+ ? $lookup1({
1694
+ right: p.from,
1695
+ as: p.as,
1696
+ lField: p.localField,
1697
+ rField: root().of('_id'),
1698
+ left: l(emptyDelta()),
1699
+ to: 'one',
1700
+ }, null)
1701
+ : $lookup1({
1702
+ to: 'many',
1703
+ right: p.from,
1704
+ as: p.as,
1705
+ lField: p.localField,
1706
+ rField: p.foreignField,
1707
+ left: l(emptyDelta()),
1708
+ middle: p.middle,
1709
+ }, null);
1691
1710
 
1692
1711
  const $setCore = (updater) => ({
1693
1712
  delta: $setDelta(updater),
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "module": "index.esm.js",
4
4
  "typings": "index.d.ts",
5
5
  "name": "@omegup/msync",
6
- "version": "0.1.46",
6
+ "version": "0.1.47",
7
7
  "dependencies": {
8
8
  "dayjs": "^1.11.9",
9
9
  "dotenv": "^16.3.1",