@bleedingdev/modern-js-bff-effect 3.9.0-ultramodern.16 → 3.9.0-ultramodern.18

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 (39) hide show
  1. package/dist/cjs/effect/context.js +28 -4
  2. package/dist/cjs/effect/edge-dispatcher.js +5 -5
  3. package/dist/cjs/effect/edge.js +26 -6
  4. package/dist/cjs/effect/entry-shape.js +39 -14
  5. package/dist/cjs/effect/index.js +8 -8
  6. package/dist/cjs/effect/operation-context.js +2 -6
  7. package/dist/esm/effect/context.mjs +21 -6
  8. package/dist/esm/effect/edge-dispatcher.mjs +1 -1
  9. package/dist/esm/effect/edge.mjs +2 -0
  10. package/dist/esm/effect/entry-shape.mjs +27 -4
  11. package/dist/esm/effect/index.mjs +1 -1
  12. package/dist/esm/effect/operation-context.mjs +1 -2
  13. package/dist/esm-node/effect/context.mjs +21 -6
  14. package/dist/esm-node/effect/edge-dispatcher.mjs +1 -1
  15. package/dist/esm-node/effect/edge.mjs +2 -0
  16. package/dist/esm-node/effect/entry-shape.mjs +28 -8
  17. package/dist/esm-node/effect/index.mjs +1 -1
  18. package/dist/esm-node/effect/operation-context.mjs +1 -2
  19. package/dist/types/effect/context.d.ts +14 -1
  20. package/dist/types/effect/edge-dispatcher.d.ts +1 -1
  21. package/dist/types/effect/edge.d.ts +2 -0
  22. package/dist/types/effect/entry-shape.d.ts +12 -0
  23. package/dist/types/effect/handler/types.d.ts +1 -1
  24. package/dist/types/effect/operation-context.d.ts +0 -1
  25. package/package.json +26 -34
  26. package/src/effect/context.ts +64 -12
  27. package/src/effect/edge-dispatcher.ts +7 -6
  28. package/src/effect/edge.ts +5 -0
  29. package/src/effect/entry-shape.ts +93 -15
  30. package/src/effect/handler/batch.ts +0 -2
  31. package/src/effect/handler/definition.ts +0 -1
  32. package/src/effect/handler/types.ts +2 -3
  33. package/src/effect/index.ts +1 -1
  34. package/src/effect/operation-context.ts +0 -4
  35. package/dist/cjs/effect/edge-context.js +0 -61
  36. package/dist/esm/effect/edge-context.mjs +0 -14
  37. package/dist/esm-node/effect/edge-context.mjs +0 -15
  38. package/dist/types/effect/edge-context.d.ts +0 -5
  39. package/src/effect/edge-context.ts +0 -51
@@ -1,51 +0,0 @@
1
- // @effect-diagnostics strictBooleanExpressions:off
2
- import {
3
- type EffectContext,
4
- type EffectContextStorage,
5
- kEffectContextStorage,
6
- } from './operation-context';
7
-
8
- export {
9
- type CreateEffectOperationContextOptions,
10
- createEffectOperationContext,
11
- type EffectContext,
12
- } from './operation-context';
13
-
14
- type EffectContextStorageConstructor = new () => EffectContextStorage;
15
-
16
- const globalStore = globalThis as typeof globalThis & {
17
- [kEffectContextStorage]?: EffectContextStorage;
18
- process?: {
19
- getBuiltinModule?: (id: string) => unknown;
20
- };
21
- };
22
-
23
- const asyncHooks = globalStore.process?.getBuiltinModule?.(
24
- 'node:async_hooks',
25
- ) as { AsyncLocalStorage?: EffectContextStorageConstructor } | undefined;
26
- const AsyncLocalStorage = asyncHooks?.AsyncLocalStorage;
27
- if (typeof AsyncLocalStorage !== 'function') {
28
- throw new Error(
29
- '[BFF][Effect] The edge runtime must provide AsyncLocalStorage. Enable Node.js compatibility or the nodejs_als compatibility flag.',
30
- );
31
- }
32
-
33
- const effectContextStorage =
34
- globalStore[kEffectContextStorage] ??
35
- (globalStore[kEffectContextStorage] = new AsyncLocalStorage());
36
-
37
- export const runWithEffectContext = <T>(
38
- context: EffectContext,
39
- cb: () => T,
40
- ): T => effectContextStorage.run(context, cb);
41
-
42
- export const useEffectContext = (): EffectContext => {
43
- const context = effectContextStorage.getStore();
44
- if (!context) {
45
- throw new Error(`Can't call useEffectContext out of Effect runtime scope`);
46
- }
47
-
48
- return context;
49
- };
50
-
51
- export const useOperationContext = () => useEffectContext().operationContext;