@rpcbase/server 0.154.0 → 0.156.0

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/express/index.js CHANGED
@@ -57,6 +57,7 @@ module.exports = () => {
57
57
  `http://admin.localhost:${CLIENT_PORT}`,
58
58
  // TODO: WARNING: TMP hardcoded port
59
59
  "http://localhost:8090", // TMP: used by inspected app from admin
60
+ "http://localhost:8091", // TMP: used by inspected app from admin
60
61
  "http://localhost:9292", // TMP
61
62
  ]
62
63
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/server",
3
- "version": "0.154.0",
3
+ "version": "0.156.0",
4
4
  "license": "SSPL-1.0",
5
5
  "main": "./index.js",
6
6
  "bin": {
@@ -23,9 +23,9 @@
23
23
  "glob": "8.0.3",
24
24
  "lodash": "4.17.21",
25
25
  "mkdirp": "1.0.4",
26
- "mongoose": "6.7.3",
26
+ "mongoose": "6.8.3",
27
27
  "picocolors": "1.0.0",
28
- "postmark": "3.0.14",
28
+ "postmark": "3.0.15",
29
29
  "redis": "4.5.1",
30
30
  "request-ip": "3.3.0",
31
31
  "validator": "13.7.0",
@@ -29,8 +29,18 @@ const mongoose_delete_plugin = (schema) => {
29
29
  }
30
30
 
31
31
 
32
- const get_dispatch_change_handler = (model_name) => (change) => {
33
- // console.log("change data", model_name, change)
32
+ const get_dispatch_change_handler = (model_name, filter_fn) => (change) => {
33
+ if (typeof filter_fn === "function") {
34
+ let ret
35
+ try {
36
+ ret = filter_fn(model_name, change)
37
+ } catch (err) {
38
+ console.log("get_dispatch_change_handler::filter_fn::error:", err)
39
+ }
40
+ if (!ret) {
41
+ return
42
+ }
43
+ }
34
44
  const op = change.operationType
35
45
  if (["insert", "update"].includes(op)) {
36
46
  dispatch_queue(queue, model_name, op, change.fullDocument)
@@ -38,7 +48,7 @@ const get_dispatch_change_handler = (model_name) => (change) => {
38
48
  }
39
49
 
40
50
 
41
- const register_model_emitter = (model_name) => {
51
+ const register_model_emitter = (model_name, filter_fn) => {
42
52
  log("registering emitter for", model_name)
43
53
  const model = mongoose.model(model_name)
44
54
  // TODO: implement delete operation fullDocument retrieve,
@@ -46,7 +56,7 @@ const register_model_emitter = (model_name) => {
46
56
  // this is done via a plugin right now
47
57
  const emitter = model.watch({fullDocument: "updateLookup"})
48
58
 
49
- emitter.on("change", get_dispatch_change_handler(model_name))
59
+ emitter.on("change", get_dispatch_change_handler(model_name, filter_fn))
50
60
 
51
61
  emitter.on("error", (err) => {
52
62
  log("server::queue::register_queue_listener:: change listener emitter got error", err)
@@ -54,23 +64,23 @@ const register_model_emitter = (model_name) => {
54
64
 
55
65
  emitter.on("close", (arg, arg2) => {
56
66
  // TODO: add exponential backoff retry
57
- console.log("queue_listener: emitter closed, model:", model_name, "retrying on next tick")
67
+ console.log("queue_listener: emitter closed, model:", model_name, "retrying on next tick6663")
58
68
  process.nextTick(() => {
59
- register_model_emitter(model_name)
69
+ register_model_emitter(model_name, filter_fn)
60
70
  })
61
71
  })
62
72
  }
63
73
 
64
74
 
65
- const register_queue_listener = () => {
75
+ const register_queue_listener = (filter_fn) => {
66
76
  // register the mongoose delete plugin
67
77
  log("registering mongoose_delete_plugin")
68
78
  mongoose.plugin(mongoose_delete_plugin)
69
79
 
70
- mongoose.connection.on("open", () => {
80
+ mongoose.connection.once("open", () => {
71
81
  log("queue_listener mongoose connection opened")
72
82
  const models = mongoose.modelNames()
73
- models.forEach(register_model_emitter)
83
+ models.forEach((model_name) => register_model_emitter(model_name, filter_fn))
74
84
  })
75
85
  }
76
86