on-zero 0.0.95 → 0.0.96

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.
@@ -20,30 +20,31 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
20
20
  }), mod);
21
21
  var batchQuery_exports = {};
22
22
  __export(batchQuery_exports, {
23
- batchQuery: () => batchQuery
23
+ createBatchQuery: () => createBatchQuery
24
24
  });
25
25
  module.exports = __toCommonJS(batchQuery_exports);
26
26
  var import_helpers = require("@take-out/helpers");
27
- async function batchQuery(q, mapper, {
28
- chunk,
29
- pause = 0,
30
- stopAfter = 1e5
31
- } = {
32
- chunk: 20
33
- }) {
34
- let hasMore = !0,
35
- last = null,
36
- iterations = 0;
37
- for (; hasMore;) {
38
- let query = q.limit(chunk);
39
- last && (query = query.start(last));
40
- const results = await query.run({
41
- type: "complete"
42
- });
43
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
44
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
45
- break;
27
+ function createBatchQuery(server) {
28
+ return async function (buildQuery, mapper, {
29
+ chunk,
30
+ pause = 0,
31
+ stopAfter = 1e5
32
+ } = {
33
+ chunk: 20
34
+ }) {
35
+ let hasMore = !0,
36
+ last = null,
37
+ iterations = 0;
38
+ for (; hasMore;) {
39
+ const results = await server.query(q => {
40
+ let query = buildQuery(q).limit(chunk);
41
+ return last && (query = query.start(last)), query;
42
+ });
43
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
44
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
45
+ break;
46
+ }
47
+ pause && (await (0, import_helpers.sleep)(pause));
46
48
  }
47
- pause && (await (0, import_helpers.sleep)(pause));
48
- }
49
+ };
49
50
  }
@@ -14,25 +14,28 @@ var __export = (target, all) => {
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
15
  var batchQuery_exports = {};
16
16
  __export(batchQuery_exports, {
17
- batchQuery: () => batchQuery
17
+ createBatchQuery: () => createBatchQuery
18
18
  });
19
19
  module.exports = __toCommonJS(batchQuery_exports);
20
20
  var import_helpers = require("@take-out/helpers");
21
- async function batchQuery(q, mapper, {
22
- chunk,
23
- pause = 0,
24
- stopAfter = 1e5
25
- } = { chunk: 20 }) {
26
- let hasMore = !0, last = null, iterations = 0;
27
- for (; hasMore; ) {
28
- let query = q.limit(chunk);
29
- last && (query = query.start(last));
30
- const results = await query.run({ type: "complete" });
31
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
32
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
33
- break;
21
+ function createBatchQuery(server) {
22
+ return async function(buildQuery, mapper, {
23
+ chunk,
24
+ pause = 0,
25
+ stopAfter = 1e5
26
+ } = { chunk: 20 }) {
27
+ let hasMore = !0, last = null, iterations = 0;
28
+ for (; hasMore; ) {
29
+ const results = await server.query((q) => {
30
+ let query = buildQuery(q).limit(chunk);
31
+ return last && (query = query.start(last)), query;
32
+ });
33
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
34
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
35
+ break;
36
+ }
37
+ pause && await (0, import_helpers.sleep)(pause);
34
38
  }
35
- pause && await (0, import_helpers.sleep)(pause);
36
- }
39
+ };
37
40
  }
38
41
  //# sourceMappingURL=batchQuery.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/batchQuery.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;AAItB,eAAsB,WACpB,GACA,QACA;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,MAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,SAAO,WAAS;AACd,QAAI,QAAQ,EAAE,MAAM,KAAK;AAEzB,IAAI,SACF,QAAQ,MAAM,MAAM,IAAI;AAG1B,UAAM,UAAU,MAAM,MAAM,IAAI,EAAE,MAAM,WAAW,CAAC;AAQpD,QANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,cAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,IACF;AAEA,IAAI,SACF,UAAM,sBAAM,KAAK;AAAA,EAErB;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;AAQf,SAAS,iBAAiB,QAAyB;AACxD,SAAO,eACL,YACA,QACA;AAAA,IACE;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,EACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,QAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,WAAO,WAAS;AACd,YAAM,UAAU,MAAM,OAAO,MAAM,CAAC,MAAW;AAC7C,YAAI,QAAQ,WAAW,CAAC,EAAE,MAAM,KAAK;AAErC,eAAI,SACF,QAAQ,MAAM,MAAM,IAAI,IAGnB;AAAA,MACT,CAAC;AAQD,UANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,gBAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,MACF;AAEA,MAAI,SACF,UAAM,sBAAM,KAAK;AAAA,IAErB;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -22,28 +22,29 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
22
22
  }), mod);
23
23
  var batchQuery_exports = {};
24
24
  __export(batchQuery_exports, {
25
- batchQuery: () => batchQuery
25
+ createBatchQuery: () => createBatchQuery
26
26
  });
27
27
  module.exports = __toCommonJS(batchQuery_exports);
28
28
  var import_helpers = require("@take-out/helpers");
29
- async function batchQuery(q, mapper) {
30
- for (var {
31
- chunk,
32
- pause = 0,
33
- stopAfter = 1e5
34
- } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
35
- chunk: 20
36
- }, hasMore = !0, last = null, iterations = 0; hasMore;) {
37
- var query = q.limit(chunk);
38
- last && (query = query.start(last));
39
- var results = await query.run({
40
- type: "complete"
41
- });
42
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
43
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
44
- break;
29
+ function createBatchQuery(server) {
30
+ return async function (buildQuery, mapper) {
31
+ for (var {
32
+ chunk,
33
+ pause = 0,
34
+ stopAfter = 1e5
35
+ } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
36
+ chunk: 20
37
+ }, hasMore = !0, last = null, iterations = 0; hasMore;) {
38
+ var results = await server.query(function (q) {
39
+ var query = buildQuery(q).limit(chunk);
40
+ return last && (query = query.start(last)), query;
41
+ });
42
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
43
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
44
+ break;
45
+ }
46
+ pause && (await (0, import_helpers.sleep)(pause));
45
47
  }
46
- pause && (await (0, import_helpers.sleep)(pause));
47
- }
48
+ };
48
49
  }
49
50
  //# sourceMappingURL=batchQuery.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","batchQuery_exports","__export","batchQuery","module","exports","import_helpers","require","q","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","query","limit","start","results","run","type","console","error","sleep"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAsB,CAAAK,kBAAA;AAItB,IAAAK,cAAsB,GAAAC,OACpB,CACA,mBACA;AAAA,eACEJ,WAAAK,CAAA,EAAAC,MAAA;EACA,SAAQ;MAAAC,KAAA;MAAAC,KAAA;MAAAC,SAAA;IAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;MACRH,KAAA;IACF,GAIIK,OAAE,GAAO,CAAG,GAChBC,IAAA,SAAAC,UAAA,MAAAF,OAAA;IACA,IAAIG,KAAA,GAAUV,CAAA,CAAAW,KACV,CAAAT,KAAoB;IAGxBM,IAAA,KAAOE,KAAA,GAASA,KAAA,CAAAE,KAAA,CAAAJ,IAAA;IACd,IAAIK,OAAA,GAAU,MAAMH,KAAK,CAAAI,GAAA;MAErBC,IAAA;IAIJ;IAQA,IANA,MAAMd,MAAA,CAAOY,OAAiB,GAE1BA,OAAA,CAAQP,MAAA,GAASJ,KAAA,KACnBK,OAAA,GAAU,KAGRE,UAAA,GAAaL,SAAA,EAAW;MAC1BY,OAAA,CAAQC,KAAA,CAAM,iDAAuCb,SAAS,SAAS;MACvE;IACF;IAEID,KAAA,KACF,UAAML,cAAA,CAAAoB,KAAA,EAAMf,KAAK;EAErB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","batchQuery_exports","__export","createBatchQuery","module","exports","import_helpers","require","server","buildQuery","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","results","query","q","limit","start","console","error","sleep"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAsB,CAAAK,kBAAA;AAQf,IAAAK,cAAS,GAAAC,OAAiB,oBAAyB;AACxD,SAAOJ,gBACLA,CAAAK,MAAA;EAEA,OACE,gBAAAC,UAAA,EAAAC,MAAA;IACA,SAAQ;QAAAC,KAAA;QAAAC,KAAA;QAAAC,SAAA;MAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;QACRH,KAAA;MACF,GAIIK,OAAE,GAAO,CAAG,GAChBC,IAAA,SAAAC,UAAA,MAAAF,OAAA;MACA,IAAIG,OAAA,GAAU,MACVX,MAAoB,CAAAY,KACpB,WAAaC,CAAA;QAEjB,IAAOD,KAAA,GAAAX,UAAS,CAAAY,CAAA,EAAAC,KAAA,CAAAX,KAAA;QACd,OAAMM,IAAA,KAAUG,KAAM,GAAAA,KAAO,CAAAG,KAAO,CAAAN,IAAW,IAAAG,KAAA;MAC7C;MAEA,UAAIV,MAAA,CAAAS,OACF,GAAQA,OAAM,CAAAJ,MAAM,GAAIJ,KAGnB,KAAAK,OAAA,QAAAE,UAAA,GAAAL,SAAA;QACRW,OAAA,CAAAC,KAAA,kDAAAZ,SAAA;QAQD;MACE;MACAD,KAAA,eAAAN,cAAA,CAAAoB,KAAA,EAAAd,KAAA;IAAA;EAGF;AACmB","ignoreList":[]}
@@ -1,22 +1,25 @@
1
1
  import { sleep } from "@take-out/helpers";
2
- async function batchQuery(q, mapper, {
3
- chunk,
4
- pause = 0,
5
- stopAfter = 1e5
6
- } = { chunk: 20 }) {
7
- let hasMore = !0, last = null, iterations = 0;
8
- for (; hasMore; ) {
9
- let query = q.limit(chunk);
10
- last && (query = query.start(last));
11
- const results = await query.run({ type: "complete" });
12
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
13
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
14
- break;
2
+ function createBatchQuery(server) {
3
+ return async function(buildQuery, mapper, {
4
+ chunk,
5
+ pause = 0,
6
+ stopAfter = 1e5
7
+ } = { chunk: 20 }) {
8
+ let hasMore = !0, last = null, iterations = 0;
9
+ for (; hasMore; ) {
10
+ const results = await server.query((q) => {
11
+ let query = buildQuery(q).limit(chunk);
12
+ return last && (query = query.start(last)), query;
13
+ });
14
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
15
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
16
+ break;
17
+ }
18
+ pause && await sleep(pause);
15
19
  }
16
- pause && await sleep(pause);
17
- }
20
+ };
18
21
  }
19
22
  export {
20
- batchQuery
23
+ createBatchQuery
21
24
  };
22
25
  //# sourceMappingURL=batchQuery.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/batchQuery.ts"],
4
- "mappings": "AAAA,SAAS,aAAa;AAItB,eAAsB,WACpB,GACA,QACA;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,MAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,SAAO,WAAS;AACd,QAAI,QAAQ,EAAE,MAAM,KAAK;AAEzB,IAAI,SACF,QAAQ,MAAM,MAAM,IAAI;AAG1B,UAAM,UAAU,MAAM,MAAM,IAAI,EAAE,MAAM,WAAW,CAAC;AAQpD,QANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,cAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,IACF;AAEA,IAAI,SACF,MAAM,MAAM,KAAK;AAAA,EAErB;AACF;",
4
+ "mappings": "AAAA,SAAS,aAAa;AAQf,SAAS,iBAAiB,QAAyB;AACxD,SAAO,eACL,YACA,QACA;AAAA,IACE;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,EACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,QAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,WAAO,WAAS;AACd,YAAM,UAAU,MAAM,OAAO,MAAM,CAAC,MAAW;AAC7C,YAAI,QAAQ,WAAW,CAAC,EAAE,MAAM,KAAK;AAErC,eAAI,SACF,QAAQ,MAAM,MAAM,IAAI,IAGnB;AAAA,MACT,CAAC;AAQD,UANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,gBAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,MACF;AAEA,MAAI,SACF,MAAM,MAAM,KAAK;AAAA,IAErB;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,26 +1,27 @@
1
1
  import { sleep } from "@take-out/helpers";
2
- async function batchQuery(q, mapper, {
3
- chunk,
4
- pause = 0,
5
- stopAfter = 1e5
6
- } = {
7
- chunk: 20
8
- }) {
9
- let hasMore = !0,
10
- last = null,
11
- iterations = 0;
12
- for (; hasMore;) {
13
- let query = q.limit(chunk);
14
- last && (query = query.start(last));
15
- const results = await query.run({
16
- type: "complete"
17
- });
18
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
19
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
20
- break;
2
+ function createBatchQuery(server) {
3
+ return async function (buildQuery, mapper, {
4
+ chunk,
5
+ pause = 0,
6
+ stopAfter = 1e5
7
+ } = {
8
+ chunk: 20
9
+ }) {
10
+ let hasMore = !0,
11
+ last = null,
12
+ iterations = 0;
13
+ for (; hasMore;) {
14
+ const results = await server.query(q => {
15
+ let query = buildQuery(q).limit(chunk);
16
+ return last && (query = query.start(last)), query;
17
+ });
18
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
19
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
20
+ break;
21
+ }
22
+ pause && (await sleep(pause));
21
23
  }
22
- pause && (await sleep(pause));
23
- }
24
+ };
24
25
  }
25
- export { batchQuery };
26
+ export { createBatchQuery };
26
27
  //# sourceMappingURL=batchQuery.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["sleep","batchQuery","q","mapper","chunk","pause","stopAfter","hasMore","last","iterations","query","limit","start","results","run","type","length","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAItB,eAAsBC,WACpBC,CAAA,EACAC,MAAA,EACA;EACEC,KAAA;EACAC,KAAA,GAAQ;EACRC,SAAA,GAAY;AACd,IAII;EAAEF,KAAA,EAAO;AAAG,GAChB;EACA,IAAIG,OAAA,GAAU;IACVC,IAAA,GAAoB;IACpBC,UAAA,GAAa;EAEjB,OAAOF,OAAA,GAAS;IACd,IAAIG,KAAA,GAAQR,CAAA,CAAES,KAAA,CAAMP,KAAK;IAErBI,IAAA,KACFE,KAAA,GAAQA,KAAA,CAAME,KAAA,CAAMJ,IAAI;IAG1B,MAAMK,OAAA,GAAU,MAAMH,KAAA,CAAMI,GAAA,CAAI;MAAEC,IAAA,EAAM;IAAW,CAAC;IAQpD,IANA,MAAMZ,MAAA,CAAOU,OAAiB,GAE1BA,OAAA,CAAQG,MAAA,GAASZ,KAAA,KACnBG,OAAA,GAAU,KAGRE,UAAA,GAAaH,SAAA,EAAW;MAC1BW,OAAA,CAAQC,KAAA,CAAM,iDAAuCZ,SAAS,SAAS;MACvE;IACF;IAEID,KAAA,KACF,MAAML,KAAA,CAAMK,KAAK;EAErB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["sleep","createBatchQuery","server","buildQuery","mapper","chunk","pause","stopAfter","hasMore","last","iterations","results","query","q","limit","start","length","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAQf,SAASC,iBAAiBC,MAAA,EAAyB;EACxD,OAAO,gBACLC,UAAA,EACAC,MAAA,EACA;IACEC,KAAA;IACAC,KAAA,GAAQ;IACRC,SAAA,GAAY;EACd,IAII;IAAEF,KAAA,EAAO;EAAG,GAChB;IACA,IAAIG,OAAA,GAAU;MACVC,IAAA,GAAoB;MACpBC,UAAA,GAAa;IAEjB,OAAOF,OAAA,GAAS;MACd,MAAMG,OAAA,GAAU,MAAMT,MAAA,CAAOU,KAAA,CAAOC,CAAA,IAAW;QAC7C,IAAID,KAAA,GAAQT,UAAA,CAAWU,CAAC,EAAEC,KAAA,CAAMT,KAAK;QAErC,OAAII,IAAA,KACFG,KAAA,GAAQA,KAAA,CAAMG,KAAA,CAAMN,IAAI,IAGnBG,KAAA;MACT,CAAC;MAQD,IANA,MAAMR,MAAA,CAAOO,OAAiB,GAE1BA,OAAA,CAAQK,MAAA,GAASX,KAAA,KACnBG,OAAA,GAAU,KAGRE,UAAA,GAAaH,SAAA,EAAW;QAC1BU,OAAA,CAAQC,KAAA,CAAM,iDAAuCX,SAAS,SAAS;QACvE;MACF;MAEID,KAAA,KACF,MAAMN,KAAA,CAAMM,KAAK;IAErB;EACF;AACF","ignoreList":[]}
@@ -1,23 +1,24 @@
1
1
  import { sleep } from "@take-out/helpers";
2
- async function batchQuery(q, mapper) {
3
- for (var {
4
- chunk,
5
- pause = 0,
6
- stopAfter = 1e5
7
- } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
8
- chunk: 20
9
- }, hasMore = !0, last = null, iterations = 0; hasMore;) {
10
- var query = q.limit(chunk);
11
- last && (query = query.start(last));
12
- var results = await query.run({
13
- type: "complete"
14
- });
15
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
16
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
17
- break;
2
+ function createBatchQuery(server) {
3
+ return async function (buildQuery, mapper) {
4
+ for (var {
5
+ chunk,
6
+ pause = 0,
7
+ stopAfter = 1e5
8
+ } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
9
+ chunk: 20
10
+ }, hasMore = !0, last = null, iterations = 0; hasMore;) {
11
+ var results = await server.query(function (q) {
12
+ var query = buildQuery(q).limit(chunk);
13
+ return last && (query = query.start(last)), query;
14
+ });
15
+ if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
16
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
17
+ break;
18
+ }
19
+ pause && (await sleep(pause));
18
20
  }
19
- pause && (await sleep(pause));
20
- }
21
+ };
21
22
  }
22
- export { batchQuery };
23
+ export { createBatchQuery };
23
24
  //# sourceMappingURL=batchQuery.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sleep","batchQuery","q","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","query","limit","start","results","run","type","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAItB,eAAsBC,WACpBC,CAAA,EACAC,MAAA,EACA;EACE;MAAAC,KAAA;MAAAC,KAAA;MAAAC,SAAA;IAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;MACAH,KAAA,EAAQ;IACR,GAAAK,OAAA,GAAY,IAAAC,IAAA,SAAAC,UAAA,MAAAF,OAAA;IAKV,IAAEG,KAAO,GAAGV,CAAA,CAAAW,KAChB,CAAAT,KAAA;IACAM,IAAI,KAAAE,KAAU,GACVA,KAAA,CAAoBE,KAAA,CACpBJ,IAAA;IAEJ,IAAAK,OAAO,SAASH,KAAA,CAAAI,GAAA;MACdC,IAAI;IAEA;IAIJ,UAAMd,MAAU,CAAAY,OAAM,GAAAA,OAAY,CAAAP,MAAM,GAAAJ,KAAA,KAAYK,OAAA,QAAAE,UAAA,GAAAL,SAAA;MAQpDY,OANA,CAAMC,KAAA,kDAGMb,SAGR,SAAa;MACf;IACA;IACFD,KAAA,WAAAL,KAAA,CAAAK,KAAA;EAEA;AACmB;AAGvB,S","ignoreList":[]}
1
+ {"version":3,"names":["sleep","createBatchQuery","server","buildQuery","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","results","query","q","limit","start","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAQf,SAASC,iBAAiBC,MAAA,EAAyB;EACxD,OAAO,gBACLC,UAAA,EACAC,MAAA,EACA;IACE;QAAAC,KAAA;QAAAC,KAAA;QAAAC,SAAA;MAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;QACAH,KAAA,EAAQ;MACR,GAAAK,OAAA,GAAY,IAAAC,IAAA,SAAAC,UAAA,MAAAF,OAAA;MAKV,IAAEG,OAAO,GAAG,MAChBX,MAAA,CAAAY,KAAA,WAAAC,CAAA;QACI,IAAAD,KAAA,GAAUX,UACU,CAAAY,CAAA,EAAAC,KACpB,CAAAX,KAAA;QAEJ,OAAOM,IAAA,KAASG,KAAA,GAAAA,KAAA,CAAAG,KAAA,CAAAN,IAAA,IAAAG,KAAA;MACd;MACE,UAAIV,MAAQ,CAAAS,OAAA,CAAW,EAACA,OAAQ,CAAAJ,MAAK,GAAAJ,KAAA,KAAAK,OAAA,QAAAE,UAAA,GAAAL,SAAA;QAErCW,OAAI,CAAAC,KAAA,kDAIGZ,SAAA;QACR;MAQD;MACED,KAAA,WAAQN,KAAM,CAAAM,KAAA;IACd;EAAA;AAGF;AACmB,SAGvBL,gBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.0.95",
3
+ "version": "0.0.96",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -64,7 +64,7 @@
64
64
  }
65
65
  },
66
66
  "dependencies": {
67
- "@take-out/helpers": "0.0.95",
67
+ "@take-out/helpers": "0.0.96",
68
68
  "@sinclair/typebox-codegen": "^0.11.1",
69
69
  "chokidar": "^4.0.3",
70
70
  "citty": "^0.1.6",
@@ -2,45 +2,53 @@ import { sleep } from '@take-out/helpers'
2
2
 
3
3
  import type { Query, Row } from '@rocicorp/zero'
4
4
 
5
- export async function batchQuery<Q extends Query<any, any, any>, Item extends Row<Q>>(
6
- q: Q,
7
- mapper: (items: Item[]) => Promise<void>,
8
- {
9
- chunk,
10
- pause = 0,
11
- stopAfter = 100_000,
12
- }: {
13
- chunk: number
14
- pause?: number
15
- stopAfter?: number
16
- } = { chunk: 20 }
17
- ) {
18
- let hasMore = true
19
- let last: Item | null = null
20
- let iterations = 0
21
-
22
- while (hasMore) {
23
- let query = q.limit(chunk)
24
-
25
- if (last) {
26
- query = query.start(last)
27
- }
28
-
29
- const results = await query.run({ type: 'complete' })
30
-
31
- await mapper(results as Item[])
32
-
33
- if (results.length < chunk) {
34
- hasMore = false
35
- }
36
-
37
- if (iterations > stopAfter) {
38
- console.error(`[batchQuery] ‼️ stopping batch, ran ${stopAfter} chunks`)
39
- break
40
- }
5
+ type ServerWithQuery = {
6
+ query: (cb: (q: any) => any) => Promise<any>
7
+ }
41
8
 
42
- if (pause) {
43
- await sleep(pause)
9
+ export function createBatchQuery(server: ServerWithQuery) {
10
+ return async function batchQuery<Q extends Query<any, any, any>, Item extends Row<Q>>(
11
+ buildQuery: (q: any) => Q,
12
+ mapper: (items: Item[]) => Promise<void>,
13
+ {
14
+ chunk,
15
+ pause = 0,
16
+ stopAfter = 100_000,
17
+ }: {
18
+ chunk: number
19
+ pause?: number
20
+ stopAfter?: number
21
+ } = { chunk: 20 }
22
+ ) {
23
+ let hasMore = true
24
+ let last: Item | null = null
25
+ let iterations = 0
26
+
27
+ while (hasMore) {
28
+ const results = await server.query((q: any) => {
29
+ let query = buildQuery(q).limit(chunk)
30
+
31
+ if (last) {
32
+ query = query.start(last)
33
+ }
34
+
35
+ return query
36
+ })
37
+
38
+ await mapper(results as Item[])
39
+
40
+ if (results.length < chunk) {
41
+ hasMore = false
42
+ }
43
+
44
+ if (iterations > stopAfter) {
45
+ console.error(`[batchQuery] ‼️ stopping batch, ran ${stopAfter} chunks`)
46
+ break
47
+ }
48
+
49
+ if (pause) {
50
+ await sleep(pause)
51
+ }
44
52
  }
45
53
  }
46
54
  }
@@ -1,7 +1,11 @@
1
1
  import type { Query, Row } from '@rocicorp/zero';
2
- export declare function batchQuery<Q extends Query<any, any, any>, Item extends Row<Q>>(q: Q, mapper: (items: Item[]) => Promise<void>, { chunk, pause, stopAfter, }?: {
2
+ type ServerWithQuery = {
3
+ query: (cb: (q: any) => any) => Promise<any>;
4
+ };
5
+ export declare function createBatchQuery(server: ServerWithQuery): <Q extends Query<any, any, any>, Item extends Row<Q>>(buildQuery: (q: any) => Q, mapper: (items: Item[]) => Promise<void>, { chunk, pause, stopAfter, }?: {
3
6
  chunk: number;
4
7
  pause?: number;
5
8
  stopAfter?: number;
6
- }): Promise<void>;
9
+ }) => Promise<void>;
10
+ export {};
7
11
  //# sourceMappingURL=batchQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batchQuery.d.ts","sourceRoot":"","sources":["../../src/helpers/batchQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEhD,wBAAsB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,EAClF,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACxC,EACE,KAAK,EACL,KAAS,EACT,SAAmB,GACpB,GAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACH,iBA8BlB"}
1
+ {"version":3,"file":"batchQuery.d.ts","sourceRoot":"","sources":["../../src/helpers/batchQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,IACrB,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,EAClF,YAAY,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EACzB,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACxC,+BAIG;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACH,mBAiCpB"}