@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 +10 -7
- package/index.esm.js +39 -20
- package/index.js +39 -20
- package/package.json +1 -1
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
|
-
|
|
446
|
-
|
|
444
|
+
to: 'one';
|
|
445
|
+
localField: Field<LQ, string>;
|
|
446
|
+
foreignField?: never;
|
|
447
|
+
middle?: never;
|
|
447
448
|
} | {
|
|
448
|
-
|
|
449
|
-
|
|
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
|
|
452
|
-
declare const $outerLookup: <As extends string, LQ extends doc, RQ extends
|
|
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 = (
|
|
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 =
|
|
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) =>
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
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 = (
|
|
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 =
|
|
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) =>
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
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),
|