@dxos/functions 0.5.3-main.427f0a3 → 0.5.3-main.4490e2f

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 (38) hide show
  1. package/dist/lib/browser/{chunk-P3HPDHNI.mjs → chunk-4D4I3YMJ.mjs} +4 -4
  2. package/dist/lib/browser/{chunk-P3HPDHNI.mjs.map → chunk-4D4I3YMJ.mjs.map} +3 -3
  3. package/dist/lib/browser/index.mjs +145 -108
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types.mjs +1 -1
  7. package/dist/lib/node/{chunk-KTLM3JNV.cjs → chunk-3UYUR5N5.cjs} +7 -7
  8. package/dist/lib/node/{chunk-KTLM3JNV.cjs.map → chunk-3UYUR5N5.cjs.map} +3 -3
  9. package/dist/lib/node/index.cjs +156 -119
  10. package/dist/lib/node/index.cjs.map +3 -3
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/types.cjs +5 -5
  13. package/dist/lib/node/types.cjs.map +1 -1
  14. package/dist/types/src/handler.d.ts.map +1 -1
  15. package/dist/types/src/runtime/dev-server.d.ts.map +1 -1
  16. package/dist/types/src/testing/setup.d.ts.map +1 -1
  17. package/dist/types/src/trigger/trigger-registry.d.ts +2 -5
  18. package/dist/types/src/trigger/trigger-registry.d.ts.map +1 -1
  19. package/dist/types/src/trigger/type/subscription-trigger.d.ts.map +1 -1
  20. package/dist/types/src/trigger/type/timer-trigger.d.ts.map +1 -1
  21. package/dist/types/src/trigger/type/webhook-trigger.d.ts.map +1 -1
  22. package/dist/types/src/trigger/type/websocket-trigger.d.ts.map +1 -1
  23. package/dist/types/src/types.d.ts +15 -3
  24. package/dist/types/src/types.d.ts.map +1 -1
  25. package/package.json +14 -14
  26. package/schema/functions.json +5 -0
  27. package/src/runtime/dev-server.ts +3 -3
  28. package/src/runtime/scheduler.test.ts +14 -9
  29. package/src/runtime/scheduler.ts +7 -7
  30. package/src/testing/functions-integration.test.ts +1 -0
  31. package/src/testing/setup.ts +8 -10
  32. package/src/trigger/trigger-registry.test.ts +30 -13
  33. package/src/trigger/trigger-registry.ts +49 -39
  34. package/src/trigger/type/subscription-trigger.ts +13 -7
  35. package/src/trigger/type/timer-trigger.ts +4 -3
  36. package/src/trigger/type/webhook-trigger.ts +3 -2
  37. package/src/trigger/type/websocket-trigger.ts +4 -3
  38. package/src/types.ts +6 -3
@@ -5,15 +5,16 @@
5
5
  import { getPort } from 'get-port-please';
6
6
  import http from 'node:http';
7
7
 
8
+ import { type Space } from '@dxos/client/echo';
8
9
  import { type Context } from '@dxos/context';
9
10
  import { log } from '@dxos/log';
10
11
 
11
12
  import type { WebhookTrigger } from '../../types';
12
- import { type TriggerCallback, type TriggerContext, type TriggerFactory } from '../trigger-registry';
13
+ import { type TriggerCallback, type TriggerFactory } from '../trigger-registry';
13
14
 
14
15
  export const createWebhookTrigger: TriggerFactory<WebhookTrigger> = async (
15
16
  ctx: Context,
16
- _: TriggerContext,
17
+ space: Space,
17
18
  spec: WebhookTrigger,
18
19
  callback: TriggerCallback,
19
20
  ) => {
@@ -5,11 +5,12 @@
5
5
  import WebSocket from 'ws';
6
6
 
7
7
  import { sleep, Trigger } from '@dxos/async';
8
+ import { type Space } from '@dxos/client/echo';
8
9
  import { type Context } from '@dxos/context';
9
10
  import { log } from '@dxos/log';
10
11
 
11
12
  import { type WebsocketTrigger } from '../../types';
12
- import { type TriggerCallback, type TriggerContext, type TriggerFactory } from '../trigger-registry';
13
+ import { type TriggerCallback, type TriggerFactory } from '../trigger-registry';
13
14
 
14
15
  interface WebsocketTriggerOptions {
15
16
  retryDelay: number;
@@ -22,7 +23,7 @@ interface WebsocketTriggerOptions {
22
23
  */
23
24
  export const createWebsocketTrigger: TriggerFactory<WebsocketTrigger, WebsocketTriggerOptions> = async (
24
25
  ctx: Context,
25
- triggerCtx: TriggerContext,
26
+ space: Space,
26
27
  spec: WebsocketTrigger,
27
28
  callback: TriggerCallback,
28
29
  options: WebsocketTriggerOptions = { retryDelay: 2, maxAttempts: 5 },
@@ -51,7 +52,7 @@ export const createWebsocketTrigger: TriggerFactory<WebsocketTrigger, WebsocketT
51
52
  if (event.code === 1006) {
52
53
  setTimeout(async () => {
53
54
  log.info(`reconnecting in ${options.retryDelay}s...`, { url });
54
- await createWebsocketTrigger(ctx, triggerCtx, spec, callback, options);
55
+ await createWebsocketTrigger(ctx, space, spec, callback, options);
55
56
  }, options.retryDelay * 1_000);
56
57
  }
57
58
 
package/src/types.ts CHANGED
@@ -84,17 +84,20 @@ export class FunctionDef extends TypedObject({
84
84
  uri: S.string,
85
85
  description: S.optional(S.string),
86
86
  route: S.string,
87
- // TODO(burdon): NPM/GitHub/Docker/CF URL?
88
87
  handler: S.string,
89
88
  }) {}
90
89
 
90
+ /**
91
+ * Function trigger.
92
+ */
91
93
  export class FunctionTrigger extends TypedObject({
92
94
  typename: 'dxos.org/type/FunctionTrigger',
93
95
  version: '0.1.0',
94
96
  })({
97
+ enabled: S.optional(S.boolean),
95
98
  function: S.string.pipe(S.description('Function URI.')),
96
- // Context is merged into the event data passed to the function.
97
- meta: S.optional(S.object),
99
+ // The `meta` property is merged into the event data passed to the function.
100
+ meta: S.optional(S.mutable(S.any)),
98
101
  spec: TriggerSpecSchema,
99
102
  }) {}
100
103