@based/server 4.0.2 → 4.0.4

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 (192) hide show
  1. package/dist/auth/defaultConfig.js +1 -1
  2. package/dist/auth/defaultConfig.js.map +1 -1
  3. package/dist/auth/index.d.ts +14 -2
  4. package/dist/auth/index.js +11 -5
  5. package/dist/auth/index.js.map +1 -1
  6. package/dist/auth/parseJSONAuthState.d.ts +3 -0
  7. package/dist/auth/parseJSONAuthState.js +10 -0
  8. package/dist/auth/parseJSONAuthState.js.map +1 -0
  9. package/dist/authorize.d.ts +3 -3
  10. package/dist/authorize.js +12 -2
  11. package/dist/authorize.js.map +1 -1
  12. package/dist/channel/cleanup.d.ts +2 -0
  13. package/dist/channel/cleanup.js +53 -0
  14. package/dist/channel/cleanup.js.map +1 -0
  15. package/dist/channel/create.d.ts +3 -0
  16. package/dist/channel/create.js +33 -0
  17. package/dist/channel/create.js.map +1 -0
  18. package/dist/channel/destroy.d.ts +4 -0
  19. package/dist/channel/destroy.js +46 -0
  20. package/dist/channel/destroy.js.map +1 -0
  21. package/dist/channel/extend.d.ts +4 -0
  22. package/dist/channel/extend.js +16 -0
  23. package/dist/channel/extend.js.map +1 -0
  24. package/dist/channel/get.d.ts +4 -0
  25. package/dist/channel/get.js +15 -0
  26. package/dist/channel/get.js.map +1 -0
  27. package/dist/channel/index.d.ts +8 -0
  28. package/dist/channel/index.js +25 -0
  29. package/dist/channel/index.js.map +1 -0
  30. package/dist/channel/start.d.ts +2 -0
  31. package/dist/channel/start.js +63 -0
  32. package/dist/channel/start.js.map +1 -0
  33. package/dist/channel/subscribe.d.ts +4 -0
  34. package/dist/channel/subscribe.js +28 -0
  35. package/dist/channel/subscribe.js.map +1 -0
  36. package/dist/channel/types.d.ts +13 -0
  37. package/dist/channel/types.js +4 -0
  38. package/dist/channel/types.js.map +1 -0
  39. package/dist/channel/unsub.d.ts +5 -0
  40. package/dist/channel/unsub.js +49 -0
  41. package/dist/channel/unsub.js.map +1 -0
  42. package/dist/createSimpleServer.d.ts +14 -15
  43. package/dist/createSimpleServer.js +63 -25
  44. package/dist/createSimpleServer.js.map +1 -1
  45. package/dist/error/errorTypeHandlers.d.ts +1 -1
  46. package/dist/error/errorTypeHandlers.js +11 -46
  47. package/dist/error/errorTypeHandlers.js.map +1 -1
  48. package/dist/error/index.js +3 -0
  49. package/dist/error/index.js.map +1 -1
  50. package/dist/error/types.d.ts +19 -26
  51. package/dist/error/types.js +1 -6
  52. package/dist/error/types.js.map +1 -1
  53. package/dist/functionApi/channelSubscribe.d.ts +3 -0
  54. package/dist/functionApi/channelSubscribe.js +43 -0
  55. package/dist/functionApi/channelSubscribe.js.map +1 -0
  56. package/dist/functionApi/client/channel.d.ts +10 -0
  57. package/dist/functionApi/client/channel.js +33 -0
  58. package/dist/functionApi/client/channel.js.map +1 -0
  59. package/dist/functionApi/client/index.d.ts +6 -3
  60. package/dist/functionApi/client/index.js +18 -3
  61. package/dist/functionApi/client/index.js.map +1 -1
  62. package/dist/functionApi/get.js +2 -2
  63. package/dist/functionApi/get.js.map +1 -1
  64. package/dist/functionApi/index.d.ts +3 -0
  65. package/dist/functionApi/index.js +3 -1
  66. package/dist/functionApi/index.js.map +1 -1
  67. package/dist/functionApi/observe.js +2 -2
  68. package/dist/functionApi/observe.js.map +1 -1
  69. package/dist/functionApi/publish.d.ts +3 -0
  70. package/dist/functionApi/publish.js +29 -0
  71. package/dist/functionApi/publish.js.map +1 -0
  72. package/dist/functionApi/stream.d.ts +2 -2
  73. package/dist/functionApi/stream.js +44 -6
  74. package/dist/functionApi/stream.js.map +1 -1
  75. package/dist/functions/index.d.ts +3 -2
  76. package/dist/functions/index.js +47 -18
  77. package/dist/functions/index.js.map +1 -1
  78. package/dist/functions/timeout.js +4 -2
  79. package/dist/functions/timeout.js.map +1 -1
  80. package/dist/functions/types.d.ts +96 -56
  81. package/dist/functions/types.js +16 -5
  82. package/dist/functions/types.js.map +1 -1
  83. package/dist/incoming/http/function.js +11 -12
  84. package/dist/incoming/http/function.js.map +1 -1
  85. package/dist/incoming/http/index.js +36 -9
  86. package/dist/incoming/http/index.js.map +1 -1
  87. package/dist/incoming/http/publish.d.ts +3 -0
  88. package/dist/incoming/http/publish.js +82 -0
  89. package/dist/incoming/http/publish.js.map +1 -0
  90. package/dist/incoming/http/{get.js → query.js} +41 -21
  91. package/dist/incoming/http/query.js.map +1 -0
  92. package/dist/incoming/http/streamFunction/multiPart/readFormData.d.ts +1 -1
  93. package/dist/incoming/http/streamFunction/multiPart/readFormData.js +2 -2
  94. package/dist/incoming/http/streamFunction/multiPart/readFormData.js.map +1 -1
  95. package/dist/incoming/http/streamFunction/stream/createStream.d.ts +2 -3
  96. package/dist/incoming/http/streamFunction/stream/createStream.js +2 -2
  97. package/dist/incoming/http/streamFunction/stream/createStream.js.map +1 -1
  98. package/dist/incoming/http/streamFunction/stream/index.js +3 -2
  99. package/dist/incoming/http/streamFunction/stream/index.js.map +1 -1
  100. package/dist/incoming/index.d.ts +1 -1
  101. package/dist/incoming/index.js +32 -22
  102. package/dist/incoming/index.js.map +1 -1
  103. package/dist/incoming/upgrade.js +18 -11
  104. package/dist/incoming/upgrade.js.map +1 -1
  105. package/dist/incoming/ws/auth.d.ts +1 -1
  106. package/dist/incoming/ws/auth.js +56 -22
  107. package/dist/incoming/ws/auth.js.map +1 -1
  108. package/dist/incoming/ws/channelPublish.d.ts +2 -0
  109. package/dist/incoming/ws/channelPublish.js +73 -0
  110. package/dist/incoming/ws/channelPublish.js.map +1 -0
  111. package/dist/incoming/ws/channelSubscribe.d.ts +7 -0
  112. package/dist/incoming/ws/channelSubscribe.js +118 -0
  113. package/dist/incoming/ws/channelSubscribe.js.map +1 -0
  114. package/dist/incoming/ws/function.js +11 -3
  115. package/dist/incoming/ws/function.js.map +1 -1
  116. package/dist/incoming/ws/get.js +16 -6
  117. package/dist/incoming/ws/get.js.map +1 -1
  118. package/dist/incoming/ws/index.js +22 -2
  119. package/dist/incoming/ws/index.js.map +1 -1
  120. package/dist/incoming/ws/observable.js +16 -10
  121. package/dist/incoming/ws/observable.js.map +1 -1
  122. package/dist/incoming/ws/types.d.ts +1 -1
  123. package/dist/installFn.js +32 -34
  124. package/dist/installFn.js.map +1 -1
  125. package/dist/observable/cleanup.d.ts +2 -0
  126. package/dist/observable/cleanup.js +66 -0
  127. package/dist/observable/cleanup.js.map +1 -0
  128. package/dist/observable/create.js +1 -0
  129. package/dist/observable/create.js.map +1 -1
  130. package/dist/observable/destroy.d.ts +2 -0
  131. package/dist/observable/destroy.js +26 -30
  132. package/dist/observable/destroy.js.map +1 -1
  133. package/dist/observable/extendCache.js +2 -3
  134. package/dist/observable/extendCache.js.map +1 -1
  135. package/dist/observable/genObservableId.js +3 -0
  136. package/dist/observable/genObservableId.js.map +1 -1
  137. package/dist/observable/get.d.ts +1 -1
  138. package/dist/observable/get.js +3 -3
  139. package/dist/observable/get.js.map +1 -1
  140. package/dist/observable/send.d.ts +1 -1
  141. package/dist/observable/send.js +2 -2
  142. package/dist/observable/send.js.map +1 -1
  143. package/dist/observable/start/error.d.ts +1 -1
  144. package/dist/observable/start/error.js +5 -2
  145. package/dist/observable/start/error.js.map +1 -1
  146. package/dist/observable/start/index.js +3 -1
  147. package/dist/observable/start/index.js.map +1 -1
  148. package/dist/observable/start/update.d.ts +1 -4
  149. package/dist/observable/start/update.js +0 -1
  150. package/dist/observable/start/update.js.map +1 -1
  151. package/dist/observable/subscribe.d.ts +1 -1
  152. package/dist/observable/subscribe.js +7 -8
  153. package/dist/observable/subscribe.js.map +1 -1
  154. package/dist/observable/types.d.ts +9 -9
  155. package/dist/observable/unsub.d.ts +1 -1
  156. package/dist/observable/unsub.js +9 -6
  157. package/dist/observable/unsub.js.map +1 -1
  158. package/dist/protocol.d.ts +1 -0
  159. package/dist/protocol.js +60 -48
  160. package/dist/protocol.js.map +1 -1
  161. package/dist/sendError.js +2 -4
  162. package/dist/sendError.js.map +1 -1
  163. package/dist/sendHttpResponse.d.ts +3 -2
  164. package/dist/sendHttpResponse.js +63 -23
  165. package/dist/sendHttpResponse.js.map +1 -1
  166. package/dist/server.d.ts +22 -13
  167. package/dist/server.js +13 -10
  168. package/dist/server.js.map +1 -1
  169. package/dist/verifyRoute.d.ts +3 -3
  170. package/dist/verifyRoute.js +31 -20
  171. package/dist/verifyRoute.js.map +1 -1
  172. package/package.json +7 -7
  173. package/dist/incoming/http/authorize.d.ts +0 -4
  174. package/dist/incoming/http/authorize.js +0 -37
  175. package/dist/incoming/http/authorize.js.map +0 -1
  176. package/dist/incoming/http/get.js.map +0 -1
  177. package/dist/incoming/http/streamFunction/DataStream.d.ts +0 -15
  178. package/dist/incoming/http/streamFunction/DataStream.js +0 -58
  179. package/dist/incoming/http/streamFunction/DataStream.js.map +0 -1
  180. package/dist/incoming/http/streamFunction/multipartStream.d.ts +0 -12
  181. package/dist/incoming/http/streamFunction/multipartStream.js +0 -210
  182. package/dist/incoming/http/streamFunction/multipartStream.js.map +0 -1
  183. package/dist/incoming/http/streamFunction/stream.d.ts +0 -6
  184. package/dist/incoming/http/streamFunction/stream.js +0 -108
  185. package/dist/incoming/http/streamFunction/stream.js.map +0 -1
  186. package/dist/observable/error.d.ts +0 -4
  187. package/dist/observable/error.js +0 -17
  188. package/dist/observable/error.js.map +0 -1
  189. package/dist/observable/verify.d.ts +0 -4
  190. package/dist/observable/verify.js +0 -18
  191. package/dist/observable/verify.js.map +0 -1
  192. /package/dist/incoming/http/{get.d.ts → query.d.ts} +0 -0
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BasedFunctionClient = void 0;
7
7
  const callFunction_1 = require("../callFunction");
8
8
  const query_1 = require("./query");
9
+ const channel_1 = require("./channel");
10
+ const stream_1 = require("../stream");
9
11
  const node_util_1 = __importDefault(require("node:util"));
10
12
  const functions_1 = require("@based/functions");
11
13
  class BasedFunctionClient extends functions_1.BasedFunctionClient {
@@ -23,12 +25,25 @@ class BasedFunctionClient extends functions_1.BasedFunctionClient {
23
25
  query(name, payload) {
24
26
  return new query_1.BasedQuery(this.ctx, name, payload);
25
27
  }
26
- async stream(name, stream) {
28
+ channel(name, payload) {
29
+ return new channel_1.BasedChannel(this.ctx, name, payload);
30
+ }
31
+ async stream(name, streamOpts, ctx = this.ctx) {
27
32
  // make later
28
- return { name, stream };
33
+ return (0, stream_1.streamFunction)(this.server, name, ctx, streamOpts);
29
34
  }
30
35
  renewAuthState(ctx, authState) {
31
- this.server.auth.renewAuthState(ctx, authState);
36
+ return this.server.auth.renewAuthState(ctx, authState);
37
+ }
38
+ setAuthState(ctx, authState) {
39
+ if (!ctx.session) {
40
+ return;
41
+ }
42
+ if (!(0, functions_1.isClientContext)(ctx)) {
43
+ return;
44
+ }
45
+ ctx.session.authState = authState;
46
+ this.server.auth.renewAuthState(ctx);
32
47
  }
33
48
  sendAuthState(ctx, authState) {
34
49
  if (!(0, functions_1.isWsContext)(ctx)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functionApi/client/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA8C;AAC9C,mCAAoC;AACpC,0DAA4B;AAE5B,gDAOyB;AAEzB,MAAa,mBAAoB,SAAQ,+BAA2B;IAIlE,YAAY,MAAmB;QAC7B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1C,CAAA;IACH,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,OAAa,EAAE,MAAe,IAAI,CAAC,GAAG;QACvD,OAAO,IAAA,2BAAY,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAa;QAC/B,OAAO,IAAI,kBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,MAAY;QACrC,aAAa;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;IAED,cAAc,CAAC,GAAqB,EAAE,SAAqB;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,GAAqB,EAAE,SAAoB;QACvD,IAAI,CAAC,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE;YACrB,OAAM;SACP;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,OAAO,uBAAuB,CAAA;IAChC,CAAC;CACF;AAxCD,kDAwCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functionApi/client/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA8C;AAC9C,mCAAoC;AACpC,uCAAwC;AACxC,sCAA0C;AAC1C,0DAA4B;AAC5B,gDASyB;AAEzB,MAAa,mBAAoB,SAAQ,+BAA2B;IAIlE,YAAY,MAAmB;QAC7B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1C,CAAA;IACH,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,OAAa,EAAE,MAAe,IAAI,CAAC,GAAG;QACvD,OAAO,IAAA,2BAAY,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAa;QAC/B,OAAO,IAAI,kBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAa;QACjC,OAAO,IAAI,sBAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,UAA8B,EAC9B,MAAe,IAAI,CAAC,GAAG;QAEvB,aAAa;QACb,OAAO,IAAA,uBAAc,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,cAAc,CACZ,GAAqB,EACrB,SAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;IAED,YAAY,CAAC,GAAqB,EAAE,SAAoB;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QACD,IAAI,CAAC,IAAA,2BAAe,EAAC,GAAG,CAAC,EAAE;YACzB,OAAM;SACP;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,aAAa,CAAC,GAAqB,EAAE,SAAoB;QACvD,IAAI,CAAC,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE;YACrB,OAAM;SACP;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,OAAO,uBAAuB,CAAA;IAChC,CAAC;CACF;AA9DD,kDA8DC"}
@@ -6,9 +6,9 @@ const observable_1 = require("../observable");
6
6
  const verifyRoute_1 = require("../verifyRoute");
7
7
  const installFn_1 = require("../installFn");
8
8
  const getObsData = (resolve, reject, server, id, ctx, route) => {
9
- const obs = (0, observable_1.getObs)(server, id);
9
+ const obs = (0, observable_1.getObsAndStopRemove)(server, id);
10
10
  if (obs.error) {
11
- reject((0, error_1.createError)(server, ctx, error_1.BasedErrorCode.ObservableFunctionError, {
11
+ reject((0, error_1.createError)(server, ctx, error_1.BasedErrorCode.FunctionError, {
12
12
  route,
13
13
  observableId: id,
14
14
  err: obs.error.message,
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functionApi/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functionApi/get.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,6 @@ export * from './get';
3
3
  export * from './client';
4
4
  export { decode } from '../protocol';
5
5
  export * from './observe';
6
+ export * from './stream';
7
+ export * from './publish';
8
+ export * from './channelSubscribe';
@@ -21,5 +21,7 @@ __exportStar(require("./client"), exports);
21
21
  var protocol_1 = require("../protocol");
22
22
  Object.defineProperty(exports, "decode", { enumerable: true, get: function () { return protocol_1.decode; } });
23
23
  __exportStar(require("./observe"), exports);
24
- // TODO: nested stream function
24
+ __exportStar(require("./stream"), exports);
25
+ __exportStar(require("./publish"), exports);
26
+ __exportStar(require("./channelSubscribe"), exports);
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functionApi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,wCAAqB;AACrB,2CAAwB;AACxB,wCAAoC;AAA3B,kGAAA,MAAM,OAAA;AACf,4CAAyB;AAEzB,+BAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functionApi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,wCAAqB;AACrB,2CAAwB;AACxB,wCAAoC;AAA3B,kGAAA,MAAM,OAAA;AACf,4CAAyB;AACzB,2CAAwB;AACxB,4CAAyB;AACzB,qDAAkC"}
@@ -6,11 +6,11 @@ const verifyRoute_1 = require("../verifyRoute");
6
6
  const observable_1 = require("../observable");
7
7
  const installFn_1 = require("../installFn");
8
8
  const observe = (server, name, ctx, payload, update, error) => {
9
- const route = (0, verifyRoute_1.verifyRoute)(server, server.client.ctx, 'query', server.functions.route(name), name);
9
+ const id = (0, observable_1.genObservableId)(name, payload);
10
+ const route = (0, verifyRoute_1.verifyRoute)(server, server.client.ctx, 'query', server.functions.route(name), name, id);
10
11
  if (route === null) {
11
12
  throw new Error(`[${name}] No session in ctx`);
12
13
  }
13
- const id = (0, observable_1.genObservableId)(name, payload);
14
14
  let isClosed = false;
15
15
  const close = () => {
16
16
  if (isClosed) {
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/functionApi/observe.ts"],"names":[],"mappings":";;;AACA,oCAAsD;AAEtD,gDAA4C;AAC5C,8CAQsB;AACtB,4CAAwC;AAEjC,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACZ,MAAgC,EAChC,KAA2B,EACb,EAAE;IAChB,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,OAAO,EACP,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAA;KAC/C;IAED,MAAM,EAAE,GAAG,IAAA,4BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE;YACZ,OAAM;SACP;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,IAAA,gCAAmB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,IAAA,8BAAiB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;KACb;IAED,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,QAAQ,EAAE;YACZ,OAAM;SACP;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,KAAK,CACH,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;gBACxD,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;SACP;QACD,IAAI,CAAC,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvB,IAAA,sBAAS,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;SACrC;QACD,IAAA,8BAAiB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAvDY,QAAA,OAAO,WAuDnB"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/functionApi/observe.ts"],"names":[],"mappings":";;;AACA,oCAAsD;AAEtD,gDAA4C;AAC5C,8CAQsB;AACtB,4CAAwC;AAEjC,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACZ,MAAgC,EAChC,KAA2B,EACb,EAAE;IAChB,MAAM,EAAE,GAAG,IAAA,4BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEzC,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,OAAO,EACP,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,EAAE,CACH,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAA;KAC/C;IAED,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ,EAAE;YACZ,OAAM;SACP;QACD,QAAQ,GAAG,IAAI,CAAA;QACf,IAAA,gCAAmB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,IAAA,8BAAiB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;KACb;IAED,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,QAAQ,EAAE;YACZ,OAAM;SACP;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,KAAK,CACH,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;gBACxD,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;SACP;QACD,IAAI,CAAC,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvB,IAAA,sBAAS,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;SACrC;QACD,IAAA,8BAAiB,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAzDY,QAAA,OAAO,WAyDnB"}
@@ -0,0 +1,3 @@
1
+ import { BasedServer } from '../server';
2
+ import { Context } from '@based/functions';
3
+ export declare const publish: (server: BasedServer, name: string, ctx: Context, id: number, payload: any, msg: any) => void;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.publish = void 0;
4
+ const verifyRoute_1 = require("../verifyRoute");
5
+ const installFn_1 = require("../installFn");
6
+ const error_1 = require("../error");
7
+ const publish = (server, name, ctx, id, payload, msg) => {
8
+ const route = (0, verifyRoute_1.verifyRoute)(server, server.client.ctx, 'channel', server.functions.route(name), name);
9
+ if (route === null) {
10
+ return;
11
+ }
12
+ (0, installFn_1.installFn)(server, server.client.ctx, route).then((fn) => {
13
+ if (fn === null) {
14
+ return;
15
+ }
16
+ try {
17
+ return fn.publish(server.client, payload, msg, id, ctx);
18
+ }
19
+ catch (err) {
20
+ // Will emit the error
21
+ (0, error_1.createError)(server, ctx, error_1.BasedErrorCode.FunctionError, {
22
+ err,
23
+ route,
24
+ });
25
+ }
26
+ });
27
+ };
28
+ exports.publish = publish;
29
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/functionApi/publish.ts"],"names":[],"mappings":";;;AAEA,gDAA4C;AAC5C,4CAAwC;AACxC,oCAAsD;AAE/C,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,EAAU,EACV,OAAY,EACZ,GAAQ,EACR,EAAE;IACF,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IACD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAM;KACP;IACD,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACtD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,OAAM;SACP;QACD,IAAI;YACF,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;SACxD;QAAC,OAAO,GAAG,EAAE;YACZ,sBAAsB;YACtB,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE;gBACrD,GAAG;gBACH,KAAK;aACN,CAAC,CAAA;SACH;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAhCY,QAAA,OAAO,WAgCnB"}
@@ -1,3 +1,3 @@
1
1
  import { BasedServer } from '../server';
2
- import { Context } from '@based/functions';
3
- export declare const stream: (server: BasedServer, name: string, ctx: Context, payload: any) => Promise<any>;
2
+ import { Context, StreamFunctionOpts } from '@based/functions';
3
+ export declare const streamFunction: (server: BasedServer, name: string, ctx: Context, streamOpts: StreamFunctionOpts) => Promise<any>;
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stream = void 0;
3
+ exports.streamFunction = void 0;
4
4
  const error_1 = require("../error");
5
+ const functions_1 = require("@based/functions");
5
6
  const verifyRoute_1 = require("../verifyRoute");
6
7
  const installFn_1 = require("../installFn");
7
- // lots of thins here...
8
- const stream = async (server, name, ctx, payload) => {
9
- const route = (0, verifyRoute_1.verifyRoute)(server, server.client.ctx, 'fn', server.functions.route(name), name);
8
+ const wrapStream = (stream, size) => {
9
+ if (stream instanceof functions_1.BasedDataStream) {
10
+ return stream;
11
+ }
12
+ const s = new functions_1.BasedDataStream(size);
13
+ stream.pipe(s);
14
+ return s;
15
+ };
16
+ const streamFunction = async (server, name, ctx, streamOpts) => {
17
+ const route = (0, verifyRoute_1.verifyRoute)(server, server.client.ctx, 'stream', server.functions.route(name), name);
10
18
  if (route === null) {
11
19
  return;
12
20
  }
@@ -16,8 +24,38 @@ const stream = async (server, name, ctx, payload) => {
16
24
  route,
17
25
  });
18
26
  }
27
+ let file;
28
+ if ((0, functions_1.isStreamFunctionOpts)(streamOpts)) {
29
+ const stream = wrapStream(streamOpts.contents, streamOpts.size);
30
+ file = {
31
+ stream,
32
+ mimeType: streamOpts.mimeType || 'text/plain',
33
+ fileName: streamOpts.fileName || '',
34
+ size: streamOpts.size || stream.size,
35
+ payload: streamOpts.payload,
36
+ };
37
+ }
38
+ else {
39
+ const contents = streamOpts.contents;
40
+ const buffer = typeof contents === 'string'
41
+ ? Buffer.from(contents)
42
+ : contents instanceof ArrayBuffer
43
+ ? Buffer.from(contents)
44
+ : contents;
45
+ const stream = new functions_1.BasedDataStream(buffer.byteLength);
46
+ file = {
47
+ stream,
48
+ mimeType: streamOpts.mimeType || 'text/plain',
49
+ fileName: streamOpts.fileName || '',
50
+ size: stream.size,
51
+ payload: streamOpts.payload,
52
+ };
53
+ process.nextTick(() => {
54
+ stream.end(contents);
55
+ });
56
+ }
19
57
  try {
20
- return fn.function(server.client, payload, ctx);
58
+ return fn.function(server.client, file, ctx);
21
59
  }
22
60
  catch (err) {
23
61
  throw (0, error_1.createError)(server, ctx, error_1.BasedErrorCode.FunctionError, {
@@ -26,5 +64,5 @@ const stream = async (server, name, ctx, payload) => {
26
64
  });
27
65
  }
28
66
  };
29
- exports.stream = stream;
67
+ exports.streamFunction = streamFunction;
30
68
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/functionApi/stream.ts"],"names":[],"mappings":";;;AACA,oCAAsD;AAEtD,gDAA4C;AAC5C,4CAAwC;AAExC,wBAAwB;AACjB,MAAM,MAAM,GAAG,KAAK,EACzB,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,OAAY,EACE,EAAE;IAChB,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,IAAI,EACJ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAM;KACP;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAE5D,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;YAC9D,KAAK;SACN,CAAC,CAAA;KACH;IAED,IAAI;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;KAChD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE;YAC3D,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AAlCY,QAAA,MAAM,UAkClB"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/functionApi/stream.ts"],"names":[],"mappings":";;;AACA,oCAAsD;AACtD,gDAMyB;AACzB,gDAA4C;AAC5C,4CAAwC;AAGxC,MAAM,UAAU,GAAG,CACjB,MAA2C,EAC3C,IAAY,EACK,EAAE;IACnB,IAAI,MAAM,YAAY,2BAAe,EAAE;QACrC,OAAO,MAAM,CAAA;KACd;IACD,MAAM,CAAC,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACd,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAEM,MAAM,cAAc,GAAG,KAAK,EACjC,MAAmB,EACnB,IAAY,EACZ,GAAY,EACZ,UAA8B,EAChB,EAAE;IAChB,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,QAAQ,EACR,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,CACL,CAAA;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAM;KACP;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAE5D,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;YAC9D,KAAK;SACN,CAAC,CAAA;KACH;IAED,IAAI,IAAmB,CAAA;IAEvB,IAAI,IAAA,gCAAoB,EAAC,UAAU,CAAC,EAAE;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,GAAG;YACL,MAAM;YACN,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,YAAY;YAC7C,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;YACnC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YACpC,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAA;KACF;SAAM;QACL,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QAEpC,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,QAAQ,YAAY,WAAW;gBACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACvB,CAAC,CAAC,QAAQ,CAAA;QAEd,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAErD,IAAI,GAAG;YACL,MAAM;YACN,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,YAAY;YAC7C,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAA;QAED,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;KACH;IAED,IAAI;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;KAC7C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE;YAC3D,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AAtEY,QAAA,cAAc,kBAsE1B"}
@@ -14,6 +14,7 @@ export declare class BasedFunctions {
14
14
  stream: number;
15
15
  query: number;
16
16
  function: number;
17
+ channel: number;
17
18
  };
18
19
  paths: {
19
20
  [path: string]: string;
@@ -30,13 +31,13 @@ export declare class BasedFunctions {
30
31
  constructor(server: BasedServer, config?: FunctionConfig);
31
32
  uninstallLoop(): void;
32
33
  updateConfig(config: FunctionConfig): void;
33
- updateFunction(spec: BasedSpec): Promise<void>;
34
+ update(spec: BasedSpec): Promise<void>;
34
35
  private installGaurdedFromConfig;
35
36
  install(name: string): Promise<BasedSpec | null>;
36
37
  getNameFromPath(path: string): string;
37
38
  route(name?: string, path?: string): BasedRoute | null;
38
39
  getFromStore(name: string): BasedSpec | null;
39
- update(spec: BasedSpec): boolean;
40
+ updateInternal(spec: BasedSpec): boolean;
40
41
  remove(name: string): boolean;
41
42
  uninstall(name: string, spec?: BasedSpec | false): Promise<boolean>;
42
43
  }
@@ -19,6 +19,7 @@ const types_1 = require("./types");
19
19
  const utils_1 = require("@saulx/utils");
20
20
  const timeout_1 = require("./timeout");
21
21
  const observable_1 = require("../observable");
22
+ const channel_1 = require("../channel");
22
23
  __exportStar(require("./types"), exports);
23
24
  class BasedFunctions {
24
25
  constructor(server, config) {
@@ -28,6 +29,7 @@ class BasedFunctions {
28
29
  stream: 5e6,
29
30
  query: 2500,
30
31
  function: 20e3,
32
+ channel: 500,
31
33
  };
32
34
  this.paths = {};
33
35
  this.specs = {};
@@ -45,6 +47,10 @@ class BasedFunctions {
45
47
  if ((0, types_1.isQueryFunctionSpec)(spec) && this.server.activeObservables[name]) {
46
48
  (0, timeout_1.updateTimeoutCounter)(spec);
47
49
  }
50
+ else if ((0, types_1.isChannelFunctionSpec)(spec) &&
51
+ this.server.activeChannels[name]) {
52
+ (0, timeout_1.updateTimeoutCounter)(spec);
53
+ }
48
54
  else if ((0, timeout_1.fnIsTimedOut)(spec)) {
49
55
  q.push(this.uninstall(name, spec));
50
56
  }
@@ -60,21 +66,21 @@ class BasedFunctions {
60
66
  else {
61
67
  this.config = config;
62
68
  }
63
- if (this.config.idleTimeout === undefined) {
64
- this.config.idleTimeout = 60e3; // 1 min
69
+ if (this.config.uninstallAfterIdleTime === undefined) {
70
+ this.config.uninstallAfterIdleTime = 60e3; // 1 min
65
71
  }
66
- if (this.config.memCacheTimeout === undefined) {
67
- this.config.memCacheTimeout = 3e3;
68
- }
69
- if (this.config.maxWorkers === undefined) {
70
- this.config.maxWorkers = 1;
72
+ if (this.config.closeAfterIdleTime === undefined) {
73
+ this.config.closeAfterIdleTime = {
74
+ query: 3e3,
75
+ channel: 60e3, // 3 1 Min
76
+ };
71
77
  }
72
78
  if (this.unregisterTimeout) {
73
79
  clearTimeout(this.unregisterTimeout);
74
80
  }
75
81
  this.uninstallLoop();
76
82
  }
77
- async updateFunction(spec) {
83
+ async update(spec) {
78
84
  const { name } = spec;
79
85
  const prevSpec = this.specs[name];
80
86
  if (prevSpec) {
@@ -89,14 +95,14 @@ class BasedFunctions {
89
95
  function: prevSpec,
90
96
  name,
91
97
  });
92
- this.update(spec);
98
+ this.updateInternal(spec);
93
99
  }
94
100
  else {
95
- this.update(spec);
101
+ this.updateInternal(spec);
96
102
  }
97
103
  }
98
104
  else {
99
- this.update(spec);
105
+ this.updateInternal(spec);
100
106
  }
101
107
  }
102
108
  async installGaurdedFromConfig(name) {
@@ -118,7 +124,7 @@ class BasedFunctions {
118
124
  }
119
125
  spec = await this.installGaurdedFromConfig(name);
120
126
  if (spec) {
121
- this.update(spec);
127
+ this.updateInternal(spec);
122
128
  return this.getFromStore(name);
123
129
  }
124
130
  return null;
@@ -140,7 +146,7 @@ class BasedFunctions {
140
146
  }
141
147
  return null;
142
148
  }
143
- update(spec) {
149
+ updateInternal(spec) {
144
150
  if (!spec) {
145
151
  return false;
146
152
  }
@@ -148,18 +154,23 @@ class BasedFunctions {
148
154
  if ((0, utils_1.deepEqual)(spec, this.specs[spec.name])) {
149
155
  return false;
150
156
  }
151
- if (!spec.idleTimeout) {
152
- spec.idleTimeout = this.config.idleTimeout;
157
+ if (!spec.uninstallAfterIdleTime) {
158
+ spec.uninstallAfterIdleTime = this.config.uninstallAfterIdleTime;
153
159
  }
154
160
  if (spec.timeoutCounter === undefined) {
155
161
  spec.timeoutCounter =
156
- spec.idleTimeout === 0 ? -1 : Math.ceil(spec.idleTimeout / 1e3);
162
+ spec.uninstallAfterIdleTime === 0
163
+ ? -1
164
+ : Math.ceil(spec.uninstallAfterIdleTime / 1e3);
157
165
  }
158
166
  if (spec.path) {
159
167
  this.paths[spec.path] = spec.name;
160
168
  }
161
169
  if (!spec.maxPayloadSize) {
162
- if ((0, types_1.isQueryFunctionSpec)(spec)) {
170
+ if ((0, types_1.isChannelFunctionSpec)(spec)) {
171
+ spec.maxPayloadSize = this.maxPayLoadSizeDefaults.channel;
172
+ }
173
+ else if ((0, types_1.isQueryFunctionSpec)(spec)) {
163
174
  spec.maxPayloadSize = this.maxPayLoadSizeDefaults.query;
164
175
  }
165
176
  else if ((0, types_1.isStreamFunctionSpec)(spec)) {
@@ -175,7 +186,22 @@ class BasedFunctions {
175
186
  const previousChecksum = this.specs[spec.name]?.checksum ?? -1;
176
187
  // @ts-ignore maxpayload and rlimit tokens added on line 184...
177
188
  this.specs[spec.name] = spec;
178
- if (this.specs[spec.name] && this.server.activeObservables[spec.name]) {
189
+ if (this.specs[spec.name] && this.server.activeChannels[spec.name]) {
190
+ if (!(0, types_1.isChannelFunctionSpec)(spec)) {
191
+ for (const [id] of this.server.activeChannels[spec.name]) {
192
+ (0, channel_1.destroyChannel)(this.server, id);
193
+ }
194
+ }
195
+ else {
196
+ if (previousChecksum !== spec.checksum) {
197
+ for (const [id] of this.server.activeChannels[spec.name]) {
198
+ (0, channel_1.startChannel)(this.server, id, true);
199
+ }
200
+ }
201
+ }
202
+ }
203
+ else if (this.specs[spec.name] &&
204
+ this.server.activeObservables[spec.name]) {
179
205
  if (!(0, types_1.isQueryFunctionSpec)(spec)) {
180
206
  for (const [id] of this.server.activeObservables[spec.name]) {
181
207
  (0, observable_1.destroyObs)(this.server, id);
@@ -219,6 +245,9 @@ class BasedFunctions {
219
245
  return false;
220
246
  }
221
247
  this.beingUninstalled[name] = true;
248
+ if (spec.uninstall) {
249
+ await spec.uninstall();
250
+ }
222
251
  if (await this.config.uninstall({
223
252
  server: this.server,
224
253
  function: spec,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ const fnIsTimedOut = (spec) => {
6
6
  if (spec.timeoutCounter === 0) {
7
7
  return true;
8
8
  }
9
- if (spec.idleTimeout > 0 && spec.timeoutCounter > 0) {
9
+ if (spec.uninstallAfterIdleTime > 0 && spec.timeoutCounter > 0) {
10
10
  spec.timeoutCounter--;
11
11
  }
12
12
  }
@@ -16,7 +16,9 @@ exports.fnIsTimedOut = fnIsTimedOut;
16
16
  const updateTimeoutCounter = (spec) => {
17
17
  if (spec.timeoutCounter !== -1) {
18
18
  spec.timeoutCounter =
19
- spec.idleTimeout === -1 ? -1 : Math.ceil(spec.idleTimeout / 1e3 / 3);
19
+ spec.uninstallAfterIdleTime === -1
20
+ ? -1
21
+ : Math.ceil(spec.uninstallAfterIdleTime / 1e3 / 3);
20
22
  }
21
23
  };
22
24
  exports.updateTimeoutCounter = updateTimeoutCounter;
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/functions/timeout.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CAAC,IAAe,EAAW,EAAE;IACvD,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,cAAc,EAAE,CAAA;SACtB;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB;AAEM,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAE,EAAE;IACtD,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;KACvE;AACH,CAAC,CAAA;AALY,QAAA,oBAAoB,wBAKhC"}
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/functions/timeout.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CAAC,IAAe,EAAW,EAAE;IACvD,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAA;SACtB;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB;AAEM,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAE,EAAE;IACtD,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;KACvD;AACH,CAAC,CAAA;AAPY,QAAA,oBAAoB,wBAOhC"}