emberflow 1.3.46 → 1.3.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.
Files changed (36) hide show
  1. package/lib/index-utils.d.ts +9 -2
  2. package/lib/index-utils.js +156 -7
  3. package/lib/index-utils.js.map +1 -1
  4. package/lib/index.d.ts +9 -4
  5. package/lib/index.js +23 -5
  6. package/lib/index.js.map +1 -1
  7. package/lib/logics/view-logics.d.ts +2 -2
  8. package/lib/logics/view-logics.js +2 -4
  9. package/lib/logics/view-logics.js.map +1 -1
  10. package/lib/sample-custom/db-structure.d.ts +10 -1
  11. package/lib/sample-custom/db-structure.js +9 -0
  12. package/lib/sample-custom/db-structure.js.map +1 -1
  13. package/lib/tests/index-utils.test.js +538 -43
  14. package/lib/tests/index-utils.test.js.map +1 -1
  15. package/lib/tests/index.test.js +8 -8
  16. package/lib/tests/index.test.js.map +1 -1
  17. package/lib/tests/logics/view-logics.test.js +40 -40
  18. package/lib/tests/logics/view-logics.test.js.map +1 -1
  19. package/lib/tests/utils/distribution.test.js +19 -27
  20. package/lib/tests/utils/distribution.test.js.map +1 -1
  21. package/lib/tests/utils/forms.test.js +14 -18
  22. package/lib/tests/utils/forms.test.js.map +1 -1
  23. package/lib/tests/utils/paths.test.js +4 -0
  24. package/lib/tests/utils/paths.test.js.map +1 -1
  25. package/lib/tests/utils/pubsub.test.js +58 -20
  26. package/lib/tests/utils/pubsub.test.js.map +1 -1
  27. package/lib/types.d.ts +6 -3
  28. package/lib/utils/distribution.js +2 -4
  29. package/lib/utils/distribution.js.map +1 -1
  30. package/lib/utils/forms.js +2 -3
  31. package/lib/utils/forms.js.map +1 -1
  32. package/lib/utils/pubsub.d.ts +1 -0
  33. package/lib/utils/pubsub.js +15 -3
  34. package/lib/utils/pubsub.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/sample-custom/db-structure.ts +9 -0
@@ -1 +1 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/utils/forms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/utils/forms.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export declare const pubsubUtils: {
5
5
  trackProcessedIds: typeof trackProcessedIds;
6
6
  isProcessed: typeof isProcessed;
7
7
  };
8
+ export declare function createPubSubTopics(pubSubTopics: string[]): Promise<void>;
8
9
  export declare function cleanPubSubProcessedIds(event: ScheduledEvent): Promise<void>;
9
10
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanPubSubProcessedIds = exports.pubsubUtils = void 0;
3
+ exports.cleanPubSubProcessedIds = exports.createPubSubTopics = exports.pubsubUtils = void 0;
4
4
  const index_1 = require("../index");
5
5
  const misc_1 = require("./misc");
6
6
  async function trackProcessedIds(topicName, id) {
@@ -16,6 +16,17 @@ exports.pubsubUtils = {
16
16
  trackProcessedIds,
17
17
  isProcessed,
18
18
  };
19
+ async function createPubSubTopics(pubSubTopics) {
20
+ for (const topicName of pubSubTopics) {
21
+ const pubSubTopicRef = index_1.db.doc(`@topics/${topicName}`);
22
+ const pubSubTopic = await pubSubTopicRef.get();
23
+ if (pubSubTopic.exists) {
24
+ continue;
25
+ }
26
+ await pubSubTopicRef.set({ timestamp: new Date() });
27
+ }
28
+ }
29
+ exports.createPubSubTopics = createPubSubTopics;
19
30
  async function cleanPubSubProcessedIds(event) {
20
31
  console.info("Running cleanPubSubProcessedIds");
21
32
  const topicsSnapshot = await index_1.db.collection("@topics").get();
@@ -23,8 +34,9 @@ async function cleanPubSubProcessedIds(event) {
23
34
  for (const topicDoc of topicsSnapshot.docs) {
24
35
  const query = topicDoc.ref.collection("processedIds")
25
36
  .where("timestamp", "<", new Date(Date.now() - 1000 * 60 * 60 * 24 * 7));
26
- await (0, misc_1.deleteCollection)(query);
27
- i++;
37
+ await (0, misc_1.deleteCollection)(query, (snapshot) => {
38
+ i += snapshot.size;
39
+ });
28
40
  }
29
41
  console.info(`Cleaned ${i} topics of processedIds`);
30
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/utils/pubsub.ts"],"names":[],"mappings":";;;AAAA,oCAA4B;AAC5B,iCAAwC;AAGxC,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,EAAU;IAC5D,MAAM,MAAM,GAAG,UAAE,CAAC,GAAG,CAAC,WAAW,SAAS,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,GAAG,CAAC,EAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,EAAU;IACtD,MAAM,MAAM,GAAG,UAAE,CAAC,GAAG,CAAC,WAAW,SAAS,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,WAAW;CACZ,CAAC;AAEK,KAAK,UAAU,uBAAuB,CAAC,KAAqB;IACjE,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,UAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;aAClD,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,EAAE,CAAC;KACL;IACD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;AACtD,CAAC;AAZD,0DAYC"}
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/utils/pubsub.ts"],"names":[],"mappings":";;;AAAA,oCAA4B;AAC5B,iCAAwC;AAGxC,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,EAAU;IAC5D,MAAM,MAAM,GAAG,UAAE,CAAC,GAAG,CAAC,WAAW,SAAS,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,GAAG,CAAC,EAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,EAAU;IACtD,MAAM,MAAM,GAAG,UAAE,CAAC,GAAG,CAAC,WAAW,SAAS,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,WAAW;CACZ,CAAC;AAEK,KAAK,UAAU,kBAAkB,CAAC,YAAsB;IAC7D,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;QACpC,MAAM,cAAc,GAAG,UAAE,CAAC,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,SAAS;SACV;QACD,MAAM,cAAc,CAAC,GAAG,CAAC,EAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC,CAAC;KACnD;AACH,CAAC;AATD,gDASC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAqB;IACjE,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,UAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;aAClD,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,IAAA,uBAAgB,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;YACzC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;AACtD,CAAC;AAbD,0DAaC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emberflow",
3
- "version": "1.3.46",
3
+ "version": "1.3.47",
4
4
  "description": "A Firebase Cloud Functions library for handling document changes in a structured way",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.js",
@@ -10,6 +10,8 @@ export enum Entity {
10
10
  Server = "server",
11
11
  Channel = "channel",
12
12
  Member = "member",
13
+ Post = "post",
14
+ Comment = "comment",
13
15
  }
14
16
 
15
17
  // Map your custom entities to dbStructure below.
@@ -49,6 +51,13 @@ export const dbStructure = {
49
51
  },
50
52
  },
51
53
  },
54
+ posts: {
55
+ [Entity.Post]: {
56
+ comments: {
57
+ [Entity.Comment]: {},
58
+ },
59
+ },
60
+ },
52
61
  },
53
62
  },
54
63
  };