@effect-app/infra 4.0.0-beta.173 → 4.0.0-beta.175
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/CHANGELOG.md +23 -0
- package/dist/api/routing/middleware/middleware.d.ts +11 -3
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +23 -5
- package/dist/api/routing.d.ts +1 -1
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +9 -2
- package/package.json +2 -2
- package/src/api/routing/middleware/middleware.ts +34 -4
- package/src/api/routing.ts +8 -1
- package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
- package/test/rpc-e2e-invalidation.test.ts +246 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.175
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- effect-app@4.0.0-beta.175
|
|
8
|
+
|
|
9
|
+
## 4.0.0-beta.174
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 821468d: Add server-driven cache invalidation via RPC response headers.
|
|
14
|
+
|
|
15
|
+
- `effect-app/rpc`: new `Invalidation` module with `InvalidationKey` / `InvalidationKeys` schemas, `Invalidates` annotation (for declaring static invalidation on Rpc definitions), `InvalidationSet` reference (request-scoped accumulator), and `makeInvalidationSet` helper.
|
|
16
|
+
- `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
|
|
17
|
+
- `effect-app/client`: new `InvalidationKeys` module with `InvalidationKeysFromServer` reference and `makeInvalidationKeysService` helper; `apiClientFactory` now taps HTTP responses to read the `x-invalidate` header and forward keys to `InvalidationKeysFromServer`.
|
|
18
|
+
- `@effect-app/infra`: new `InvalidationMiddlewareLive` RPC middleware implementation that owns the full lifecycle — creates a request-scoped `InvalidationSet` (backed by a `Ref`), pre-populates it from the `Invalidates` annotation, provides it to the handler, and after the handler completes registers an HTTP pre-response handler (via `appendPreResponseHandlerUnsafe`) to write the accumulated keys as an `x-invalidate` response header. No separate HTTP middleware is needed.
|
|
19
|
+
- `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [821468d]
|
|
24
|
+
- effect-app@4.0.0-beta.174
|
|
25
|
+
|
|
3
26
|
## 4.0.0-beta.173
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Config, Effect, Layer, Schema } from "effect";
|
|
2
|
-
import { ConfigureInterruptibilityMiddleware, DevModeMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware";
|
|
2
|
+
import { ConfigureInterruptibilityMiddleware, DevModeMiddleware, InvalidationMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware";
|
|
3
3
|
import { RpcContextMap, type RpcMiddleware } from "effect-app/rpc";
|
|
4
4
|
import * as Context from "effect/Context";
|
|
5
5
|
import { type Rpc } from "effect/unstable/rpc";
|
|
@@ -10,7 +10,15 @@ export declare const RequestType: Context.Reference<"command" | "query">;
|
|
|
10
10
|
export declare const ConfigureInterruptibilityMiddlewareLive: Layer.Layer<ConfigureInterruptibilityMiddleware, never, never>;
|
|
11
11
|
export declare const LoggerMiddlewareLive: Layer.Layer<LoggerMiddleware, Config.ConfigError, never>;
|
|
12
12
|
export declare const DevModeMiddlewareLive: Layer.Layer<DevModeMiddleware, Config.ConfigError, never>;
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* RPC middleware that:
|
|
15
|
+
* 1. Reads the `Invalidates` annotation and pre-populates `InvalidationSet` with static keys.
|
|
16
|
+
* 2. Creates a request-scoped `InvalidationSet` backed by a `Ref` and provides it to the handler.
|
|
17
|
+
* 3. For commands: wraps the result in `{ payload, metadata: { invalidateQueries } }` so that
|
|
18
|
+
* accumulated invalidation keys reach the client via the RPC response body.
|
|
19
|
+
*/
|
|
20
|
+
export declare const InvalidationMiddlewareLive: Layer.Layer<InvalidationMiddleware, never, never>;
|
|
21
|
+
export declare const DefaultGenericMiddlewaresLive: Layer.Layer<ConfigureInterruptibilityMiddleware | DevModeMiddleware | InvalidationMiddleware | LoggerMiddleware | RequestCacheMiddleware, Config.ConfigError, never>;
|
|
14
22
|
/**
|
|
15
23
|
* Config entry for `RequestContextMap` that controls per-RPC transaction wrapping.
|
|
16
24
|
* Defaults to `false` (no transaction). Set `requiresTransaction: true` on a route to enable.
|
|
@@ -42,4 +50,4 @@ export declare const makeSqlTransactionMiddleware: (rcm: {
|
|
|
42
50
|
readonly requiresTransaction?: boolean;
|
|
43
51
|
};
|
|
44
52
|
}) => Effect.Effect<RpcMiddleware.RpcMiddlewareV4<never, never, never>, never, WithNsTransaction>;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9yb3V0aW5nL21pZGRsZXdhcmUvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQU8sTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBVyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pLLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHaEYsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUc5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQU16RCxlQUFPLE1BQU0sV0FBVywrQ0FNdkIsQ0FBQTtBQUVELGVBQU8sTUFBTSwwQkFBMEIsbURBR3RDLENBQUE7QUFLRCxlQUFPLE1BQU0sV0FBVyx3Q0FHdkIsQ0FBQTtBQUVELGVBQU8sTUFBTSx1Q0FBdUMsZ0VBY25ELENBQUE7QUFFRCxlQUFPLE1BQU0sb0JBQW9CLDBEQTJERSxDQUFBO0FBRW5DLGVBQU8sTUFBTSxxQkFBcUIsMkRBUUMsQ0FBQTtBQUVuQzs7Ozs7O0dBTUc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLG1EQW1CdEMsQ0FBQTtBQUVELGVBQU8sTUFBTSw2QkFBNkIsc0tBTXpDLENBQUE7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILGVBQU8sTUFBTSx5QkFBeUIsa0VBQWtELENBQUE7QUFFeEY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsZUFBTyxNQUFNLDRCQUE0QjtlQUNyQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxLQUFLO1FBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUU7aUdBU3ZGLENBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,KAAK,EAAO,MAAM,EAAE,MAAM,QAAQ,CAAA;AAClE,OAAO,EAAE,mCAAmC,EAAW,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACzK,OAAO,EAAgB,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGhF,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAMzD,eAAO,MAAM,WAAW,+CAMvB,CAAA;AAED,eAAO,MAAM,0BAA0B,mDAGtC,CAAA;AAKD,eAAO,MAAM,WAAW,wCAGvB,CAAA;AAED,eAAO,MAAM,uCAAuC,gEAcnD,CAAA;AAED,eAAO,MAAM,oBAAoB,0DA2DE,CAAA;AAEnC,eAAO,MAAM,qBAAqB,2DAQC,CAAA;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,mDAmBtC,CAAA;AAED,eAAO,MAAM,6BAA6B,sKAMzC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,kEAAkD,CAAA;AAExF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B;eACrB,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,KAAK;QAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE;iGASvF,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Cause, Config, Effect, Layer, Schema } from "effect";
|
|
3
|
-
import { ConfigureInterruptibilityMiddleware, DevMode, DevModeMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware";
|
|
4
|
-
import { RpcContextMap } from "effect-app/rpc";
|
|
2
|
+
import { Cause, Config, Effect, Layer, Ref, Schema } from "effect";
|
|
3
|
+
import { ConfigureInterruptibilityMiddleware, DevMode, DevModeMiddleware, InvalidationMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware";
|
|
4
|
+
import { Invalidation, RpcContextMap } from "effect-app/rpc";
|
|
5
5
|
import { pretty } from "effect-app/utils";
|
|
6
|
+
import * as Array from "effect/Array";
|
|
6
7
|
import * as Context from "effect/Context";
|
|
7
8
|
import { logError, reportError } from "../../../errorReporter.js";
|
|
8
9
|
import { InfraLogger } from "../../../logger.js";
|
|
@@ -83,7 +84,24 @@ export const DevModeMiddlewareLive = Layer
|
|
|
83
84
|
return (effect) => Effect.provideService(effect, DevMode, devMode);
|
|
84
85
|
}))
|
|
85
86
|
.pipe(Layer.provide(DevModeLive));
|
|
86
|
-
|
|
87
|
+
/**
|
|
88
|
+
* RPC middleware that:
|
|
89
|
+
* 1. Reads the `Invalidates` annotation and pre-populates `InvalidationSet` with static keys.
|
|
90
|
+
* 2. Creates a request-scoped `InvalidationSet` backed by a `Ref` and provides it to the handler.
|
|
91
|
+
* 3. For commands: wraps the result in `{ payload, metadata: { invalidateQueries } }` so that
|
|
92
|
+
* accumulated invalidation keys reach the client via the RPC response body.
|
|
93
|
+
*/
|
|
94
|
+
export const InvalidationMiddlewareLive = Layer.succeed(InvalidationMiddleware, (effect, { rpc }) => Effect.gen(function* () {
|
|
95
|
+
const staticKeys = Context.get(rpc.annotations, Invalidation.Invalidates);
|
|
96
|
+
const keysRef = yield* Ref.make(staticKeys);
|
|
97
|
+
const result = yield* Effect.provideService(effect, Invalidation.InvalidationSet, Invalidation.makeInvalidationSet(keysRef));
|
|
98
|
+
const requestType = Context.get(rpc.annotations, RequestType);
|
|
99
|
+
if (requestType !== "command")
|
|
100
|
+
return result;
|
|
101
|
+
const keys = yield* Ref.get(keysRef);
|
|
102
|
+
return { payload: result, metadata: { invalidateQueries: keys } };
|
|
103
|
+
}));
|
|
104
|
+
export const DefaultGenericMiddlewaresLive = Layer.mergeAll(RequestCacheMiddlewareLive, ConfigureInterruptibilityMiddlewareLive, LoggerMiddlewareLive, DevModeMiddlewareLive, InvalidationMiddlewareLive);
|
|
87
105
|
/**
|
|
88
106
|
* Config entry for `RequestContextMap` that controls per-RPC transaction wrapping.
|
|
89
107
|
* Defaults to `false` (no transaction). Set `requiresTransaction: true` on a route to enable.
|
|
@@ -120,4 +138,4 @@ export const makeSqlTransactionMiddleware = Effect.fnUntraced(function* (rcm) {
|
|
|
120
138
|
};
|
|
121
139
|
return mw;
|
|
122
140
|
});
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDekssT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUE7QUFFekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFekQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRWpELHdEQUF3RDtBQUN4RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDckMsT0FBTyxFQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0s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
|
package/dist/api/routing.d.ts
CHANGED
|
@@ -133,4 +133,4 @@ export type MakeHandlers<Make, _Handlers extends Record<string, any>> = Make ext
|
|
|
133
133
|
export type MakeDepsE<Make> = Layer.Error<MakeDeps<Make>>;
|
|
134
134
|
export type MakeDepsIn<Make> = Layer.Services<MakeDeps<Make>>;
|
|
135
135
|
export type MakeDepsOut<Make> = Layer.Success<MakeDeps<Make>>;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUF5QyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEcsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVCLEtBQUssYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDN0csT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQVksS0FBSyxnQkFBZ0IsRUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBRXJGLE9BQU8sRUFBd0MsS0FBSyxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXJHLGNBQWMseUJBQXlCLENBQUE7QUFFdkMsZUFBTyxNQUFNLGdDQUFnQyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUN6QyxTQUFTLEdBQUcsT0FBTyxVQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlFQUNxQyxDQUFBO0FBSXJFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDWixJQUFJLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQTtJQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFBO0lBQ1gsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtDQUNiLENBQUE7QUFHRCxNQUFNLFdB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LE1BQU0sTUFBTSxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtDQUFFLEdBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FDNUIsS0FBSyxDQUFBO0FBRVQsTUFBTSxNQUFNLFVBQVUsQ0FBQyxJQUFJLElBSXpCLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0NBQUUsR0FBRyxLQUFLLEdBQ3RHLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDeEcsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFdBQVcsQ0FBQyxJQUFJLElBSTFCLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0NBQUUsR0FBRyxLQUFLLEdBQ3RHLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDeEcsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBSWxFLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDMUUsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFNBQVMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUV6RCxNQUFNLE1BQU0sVUFBVSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRTdELE1BQU0sTUFBTSxXQUFXLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEifQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUF5QyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEcsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFbEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVCLEtBQUssYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDN0csT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQVksS0FBSyxnQkFBZ0IsRUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBRXJGLE9BQU8sRUFBd0MsS0FBSyxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXJHLGNBQWMseUJBQXlCLENBQUE7QUFFdkMsZUFBTyxNQUFNLGdDQUFnQyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUN6QyxTQUFTLEdBQUcsT0FBTyxVQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlFQUNxQyxDQUFBO0FBSXJFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDWixJQUFJLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQTtJQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFBO0lBQ1gsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtDQUNiLENBQUE7QUFHRCxNQUFNLFdB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LE1BQU0sTUFBTSxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtDQUFFLEdBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FDNUIsS0FBSyxDQUFBO0FBRVQsTUFBTSxNQUFNLFVBQVUsQ0FBQyxJQUFJLElBSXpCLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0NBQUUsR0FBRyxLQUFLLEdBQ3RHLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDeEcsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFdBQVcsQ0FBQyxJQUFJLElBSTFCLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0NBQUUsR0FBRyxLQUFLLEdBQ3RHLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDeEcsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBSWxFLElBQUksU0FBUztJQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxHQUFHLENBQUMsR0FDMUUsS0FBSyxDQUFBO0FBRVgsTUFBTSxNQUFNLFNBQVMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUV6RCxNQUFNLE1BQU0sVUFBVSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRTdELE1BQU0sTUFBTSxXQUFXLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,MAAM,EAAE,KAAK,EAAyC,CAAC,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAExG,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routing.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
5
|
import { Config, Effect, Layer, Predicate, S } from "effect-app";
|
|
6
6
|
import { getMeta } from "effect-app/client";
|
|
7
|
+
import { Invalidation } from "effect-app/rpc";
|
|
7
8
|
import { typedKeysOf, typedValuesOf } from "effect-app/utils";
|
|
8
9
|
import { Rpc, RpcGroup, RpcServer } from "effect/unstable/rpc";
|
|
9
10
|
import { RequestType as RequestTypeAnnotation } from "./routing/middleware.js";
|
|
@@ -122,7 +123,13 @@ export const makeRouter = (middleware) => {
|
|
|
122
123
|
const rpcs = RpcGroup
|
|
123
124
|
.make(...typedValuesOf(mapped).map(([resource]) => {
|
|
124
125
|
return Rpc
|
|
125
|
-
.make(resource._tag, {
|
|
126
|
+
.make(resource._tag, {
|
|
127
|
+
payload: resource,
|
|
128
|
+
success: resource.type === "command"
|
|
129
|
+
? Invalidation.CommandResponseWithMetaData(resource.success)
|
|
130
|
+
: resource.success,
|
|
131
|
+
error: resource.error
|
|
132
|
+
})
|
|
126
133
|
.annotate(middleware.requestContext, resource.config ?? {})
|
|
127
134
|
.annotate(RequestTypeAnnotation, resource.type);
|
|
128
135
|
}))
|
|
@@ -174,4 +181,4 @@ export const makeRouter = (middleware) => {
|
|
|
174
181
|
Router: matchFor
|
|
175
182
|
};
|
|
176
183
|
};
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvcm91dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE4QixTQUFTLEVBQUUsQ0FBQyxFQUFjLE1BQU0sWUFBWSxDQUFBO0FBQ3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBeUIsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckYsT0FBTyxFQUFFLFdBQVcsSUFBSSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQTtBQUVyRyxjQUFjLHlCQUF5QixDQUFBO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQzlDLFdBQWdDLEVBQ2hDLE1BQThCLEVBQzlCLEVBQUUsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7QUErQnJFLFFBQVE7QUFDUix1Q0FBdUM7QUFDdkMsNENBQTRDO0FBQzVDLElBQVUsWUFBWSxDQUtyQjtBQUxELFdBQVUsWUFBWTtJQUNQLG9CQUFPLEdBQUcsR0FBWSxDQUFBO0lBRXRCLGdCQUFHLEdBQUcsS0FBYyxDQUFBO0FBRW5DLENBQUMsRUFMUyxZQUFZLEtBQVosWUFBWSxRQUtyQjtBQW1HRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTTtLQUM3QixHQUFHLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.175",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "8.4.0",
|
|
15
15
|
"query-string": "^9.3.1",
|
|
16
|
-
"effect-app": "4.0.0-beta.
|
|
16
|
+
"effect-app": "4.0.0-beta.175"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.9.3",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Cause, Config, Effect, Layer, Schema } from "effect"
|
|
3
|
-
import { ConfigureInterruptibilityMiddleware, DevMode, DevModeMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware"
|
|
4
|
-
import { RpcContextMap, type RpcMiddleware } from "effect-app/rpc"
|
|
2
|
+
import { Cause, Config, Effect, Layer, Ref, Schema } from "effect"
|
|
3
|
+
import { ConfigureInterruptibilityMiddleware, DevMode, DevModeMiddleware, InvalidationMiddleware, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware"
|
|
4
|
+
import { Invalidation, RpcContextMap, type RpcMiddleware } from "effect-app/rpc"
|
|
5
5
|
import { pretty } from "effect-app/utils"
|
|
6
|
+
import * as Array from "effect/Array"
|
|
6
7
|
import * as Context from "effect/Context"
|
|
7
8
|
import { type Rpc } from "effect/unstable/rpc"
|
|
8
9
|
import { logError, reportError } from "../../../errorReporter.js"
|
|
@@ -121,11 +122,40 @@ export const DevModeMiddlewareLive = Layer
|
|
|
121
122
|
)
|
|
122
123
|
.pipe(Layer.provide(DevModeLive))
|
|
123
124
|
|
|
125
|
+
/**
|
|
126
|
+
* RPC middleware that:
|
|
127
|
+
* 1. Reads the `Invalidates` annotation and pre-populates `InvalidationSet` with static keys.
|
|
128
|
+
* 2. Creates a request-scoped `InvalidationSet` backed by a `Ref` and provides it to the handler.
|
|
129
|
+
* 3. For commands: wraps the result in `{ payload, metadata: { invalidateQueries } }` so that
|
|
130
|
+
* accumulated invalidation keys reach the client via the RPC response body.
|
|
131
|
+
*/
|
|
132
|
+
export const InvalidationMiddlewareLive = Layer.succeed(
|
|
133
|
+
InvalidationMiddleware,
|
|
134
|
+
(effect, { rpc }) =>
|
|
135
|
+
Effect.gen(function*() {
|
|
136
|
+
const staticKeys = Context.get(rpc.annotations, Invalidation.Invalidates)
|
|
137
|
+
const keysRef = yield* Ref.make<ReadonlyArray<Invalidation.InvalidationKey>>(staticKeys)
|
|
138
|
+
|
|
139
|
+
const result = yield* Effect.provideService(
|
|
140
|
+
effect,
|
|
141
|
+
Invalidation.InvalidationSet,
|
|
142
|
+
Invalidation.makeInvalidationSet(keysRef)
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
const requestType = Context.get(rpc.annotations, RequestType)
|
|
146
|
+
if (requestType !== "command") return result
|
|
147
|
+
|
|
148
|
+
const keys = yield* Ref.get(keysRef)
|
|
149
|
+
return { payload: result, metadata: { invalidateQueries: keys } } as any
|
|
150
|
+
})
|
|
151
|
+
)
|
|
152
|
+
|
|
124
153
|
export const DefaultGenericMiddlewaresLive = Layer.mergeAll(
|
|
125
154
|
RequestCacheMiddlewareLive,
|
|
126
155
|
ConfigureInterruptibilityMiddlewareLive,
|
|
127
156
|
LoggerMiddlewareLive,
|
|
128
|
-
DevModeMiddlewareLive
|
|
157
|
+
DevModeMiddlewareLive,
|
|
158
|
+
InvalidationMiddlewareLive
|
|
129
159
|
)
|
|
130
160
|
|
|
131
161
|
/**
|
package/src/api/routing.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { Config, Effect, Layer, type NonEmptyReadonlyArray, Predicate, S, type Scope } from "effect-app"
|
|
6
6
|
import { getMeta } from "effect-app/client"
|
|
7
7
|
import { type HttpHeaders } from "effect-app/http"
|
|
8
|
+
import { Invalidation } from "effect-app/rpc"
|
|
8
9
|
import { type GetEffectContext, type GetEffectError, type RpcContextMap } from "effect-app/rpc/RpcContextMap"
|
|
9
10
|
import { type TypeTestId } from "effect-app/TypeTest"
|
|
10
11
|
import { typedKeysOf, typedValuesOf } from "effect-app/utils"
|
|
@@ -429,7 +430,13 @@ export const makeRouter = <
|
|
|
429
430
|
.make(
|
|
430
431
|
...typedValuesOf(mapped).map(([resource]) => {
|
|
431
432
|
return Rpc
|
|
432
|
-
.make(resource._tag, {
|
|
433
|
+
.make(resource._tag, {
|
|
434
|
+
payload: resource,
|
|
435
|
+
success: resource.type === "command"
|
|
436
|
+
? Invalidation.CommandResponseWithMetaData(resource.success)
|
|
437
|
+
: resource.success,
|
|
438
|
+
error: resource.error
|
|
439
|
+
})
|
|
433
440
|
.annotate(middleware.requestContext, resource.config ?? {})
|
|
434
441
|
.annotate(RequestTypeAnnotation, resource.type)
|
|
435
442
|
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-e2e-invalidation.test.d.ts","sourceRoot":"","sources":["../rpc-e2e-invalidation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* E2E tests for commands and queries using in-memory RPC transport.
|
|
3
|
+
*
|
|
4
|
+
* These tests exercise the full server-side pipeline:
|
|
5
|
+
* - `InvalidationMiddlewareLive` — reads the `Invalidates` annotation, pre-populates the
|
|
6
|
+
* `InvalidationSet`, and wraps command results in `{ payload, metadata }`.
|
|
7
|
+
* - `RequestType` annotation — decides whether to wrap (command) or not (query).
|
|
8
|
+
* - `InvalidationSet.use()` — dynamic key accumulation inside a handler.
|
|
9
|
+
*
|
|
10
|
+
* Transport is in-memory via `RpcTest.makeClient`, so no HTTP server is needed.
|
|
11
|
+
*/
|
|
12
|
+
import { expect, it } from "@effect/vitest"
|
|
13
|
+
import { Effect, Layer, Ref } from "effect"
|
|
14
|
+
import { S } from "effect-app"
|
|
15
|
+
import { makeInvalidationKeysService } from "effect-app/client"
|
|
16
|
+
import { InvalidationMiddleware } from "effect-app/middleware"
|
|
17
|
+
import { Invalidation } from "effect-app/rpc"
|
|
18
|
+
import { Rpc, RpcGroup, RpcTest } from "effect/unstable/rpc"
|
|
19
|
+
import { InvalidationMiddlewareLive, RequestType } from "../src/api/routing/middleware.js"
|
|
20
|
+
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Shared test keys
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
const StaticKey: Invalidation.InvalidationKey = ["static", "key"]
|
|
26
|
+
const DynamicKey: Invalidation.InvalidationKey = ["dynamic", "key"]
|
|
27
|
+
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// RPC group definition
|
|
30
|
+
//
|
|
31
|
+
// The success schema for commands is defined as the PLAIN type. At runtime,
|
|
32
|
+
// `InvalidationMiddlewareLive` wraps command results into
|
|
33
|
+
// `{ payload: <plain>, metadata: { invalidateQueries: [...] } }`.
|
|
34
|
+
// `RpcTest.makeClient` uses no-serialization transport, so the wrapped runtime
|
|
35
|
+
// value is what the test receives — no codec is applied to coerce it back.
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
const E2eRpcs = RpcGroup.make(
|
|
39
|
+
// Plain query — result is not wrapped
|
|
40
|
+
Rpc
|
|
41
|
+
.make("getGreeting", {
|
|
42
|
+
payload: S.Struct({ name: S.String }),
|
|
43
|
+
success: S.String
|
|
44
|
+
})
|
|
45
|
+
.annotate(RequestType, "query")
|
|
46
|
+
.middleware(InvalidationMiddleware),
|
|
47
|
+
// Command — no invalidation keys
|
|
48
|
+
Rpc
|
|
49
|
+
.make("doNothing", { success: S.Void })
|
|
50
|
+
.annotate(RequestType, "command")
|
|
51
|
+
.middleware(InvalidationMiddleware),
|
|
52
|
+
// Command — static `Invalidates` annotation
|
|
53
|
+
Rpc
|
|
54
|
+
.make("doWithStaticKey", {
|
|
55
|
+
success: S.Struct({ count: S.Number })
|
|
56
|
+
})
|
|
57
|
+
.annotate(RequestType, "command")
|
|
58
|
+
.annotate(Invalidation.Invalidates, [StaticKey])
|
|
59
|
+
.middleware(InvalidationMiddleware),
|
|
60
|
+
// Command — dynamic key added via `InvalidationSet.use`
|
|
61
|
+
Rpc
|
|
62
|
+
.make("doWithDynamicKey", { success: S.String })
|
|
63
|
+
.annotate(RequestType, "command")
|
|
64
|
+
.middleware(InvalidationMiddleware),
|
|
65
|
+
// Command — static annotation + dynamic key combined
|
|
66
|
+
Rpc
|
|
67
|
+
.make("doWithBothKeys", { success: S.Number })
|
|
68
|
+
.annotate(RequestType, "command")
|
|
69
|
+
.annotate(Invalidation.Invalidates, [StaticKey])
|
|
70
|
+
.middleware(InvalidationMiddleware)
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Server implementation layer
|
|
75
|
+
//
|
|
76
|
+
// Handlers return the PLAIN success value. `InvalidationMiddlewareLive`
|
|
77
|
+
// intercepts every command call and wraps the result into
|
|
78
|
+
// `{ payload, metadata: { invalidateQueries } }` before it reaches the client.
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
|
|
81
|
+
const E2eImplLayer = E2eRpcs.toLayer({
|
|
82
|
+
getGreeting: ({ name }) => Effect.succeed(`Hello, ${name}!`),
|
|
83
|
+
doNothing: () => Effect.void,
|
|
84
|
+
doWithStaticKey: () => Effect.succeed({ count: 42 }),
|
|
85
|
+
doWithDynamicKey: Effect.fnUntraced(function*() {
|
|
86
|
+
yield* Invalidation.InvalidationSet.use((_) => _.add(DynamicKey))
|
|
87
|
+
return "done"
|
|
88
|
+
}),
|
|
89
|
+
doWithBothKeys: Effect.fnUntraced(function*() {
|
|
90
|
+
yield* Invalidation.InvalidationSet.use((_) => _.add(DynamicKey))
|
|
91
|
+
return 99
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
const E2eTestLayer = Layer.merge(E2eImplLayer, InvalidationMiddlewareLive)
|
|
96
|
+
|
|
97
|
+
// Helper: validates that the runtime-wrapped command result has the expected shape.
|
|
98
|
+
// `RpcTest` skips codec encoding/decoding, so the value in the client IS the
|
|
99
|
+
// wrapped object produced by `InvalidationMiddlewareLive`, even when the declared
|
|
100
|
+
// schema is the plain type.
|
|
101
|
+
type CommandResult = { payload: unknown; metadata: { invalidateQueries: ReadonlyArray<Invalidation.InvalidationKey> } }
|
|
102
|
+
|
|
103
|
+
const isCommandResult = (value: unknown): value is CommandResult =>
|
|
104
|
+
typeof value === "object"
|
|
105
|
+
&& value !== null
|
|
106
|
+
&& "payload" in value
|
|
107
|
+
&& "metadata" in value
|
|
108
|
+
&& typeof (value as Record<string, unknown>)["metadata"] === "object"
|
|
109
|
+
&& (value as Record<string, unknown>)["metadata"] !== null
|
|
110
|
+
&& "invalidateQueries" in ((value as Record<string, unknown>)["metadata"] as object)
|
|
111
|
+
|
|
112
|
+
const asCommand = (value: unknown): CommandResult => {
|
|
113
|
+
if (!isCommandResult(value)) throw new Error(`Expected a wrapped command result, got: ${JSON.stringify(value)}`)
|
|
114
|
+
return value
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// Tests
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
|
|
121
|
+
it.live(
|
|
122
|
+
"query returns the correct value",
|
|
123
|
+
Effect.fnUntraced(function*() {
|
|
124
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
125
|
+
const result = yield* client.getGreeting({ name: "World" })
|
|
126
|
+
expect(result).toBe("Hello, World!")
|
|
127
|
+
}, Effect.provide(E2eTestLayer))
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
it.live(
|
|
131
|
+
"query result is NOT wrapped in CommandResponseWithMetaData",
|
|
132
|
+
Effect.fnUntraced(function*() {
|
|
133
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
134
|
+
const result = yield* client.getGreeting({ name: "Check" })
|
|
135
|
+
expect(typeof result).toBe("string")
|
|
136
|
+
expect(isCommandResult(result)).toBe(false)
|
|
137
|
+
}, Effect.provide(E2eTestLayer))
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
it.live(
|
|
141
|
+
"command with no invalidation keys has empty invalidateQueries in metadata",
|
|
142
|
+
Effect.fnUntraced(function*() {
|
|
143
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
144
|
+
const result = asCommand(yield* client.doNothing())
|
|
145
|
+
expect(result.metadata.invalidateQueries).toStrictEqual([])
|
|
146
|
+
}, Effect.provide(E2eTestLayer))
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
it.live(
|
|
150
|
+
"command with static Invalidates annotation propagates key to metadata",
|
|
151
|
+
Effect.fnUntraced(function*() {
|
|
152
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
153
|
+
const result = asCommand(yield* client.doWithStaticKey())
|
|
154
|
+
expect(result.payload).toStrictEqual({ count: 42 })
|
|
155
|
+
expect(result.metadata.invalidateQueries).toStrictEqual([StaticKey])
|
|
156
|
+
}, Effect.provide(E2eTestLayer))
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
it.live(
|
|
160
|
+
"command with dynamic InvalidationSet.use propagates key to metadata",
|
|
161
|
+
Effect.fnUntraced(function*() {
|
|
162
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
163
|
+
const result = asCommand(yield* client.doWithDynamicKey())
|
|
164
|
+
expect(result.payload).toBe("done")
|
|
165
|
+
expect(result.metadata.invalidateQueries).toStrictEqual([DynamicKey])
|
|
166
|
+
}, Effect.provide(E2eTestLayer))
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
it.live(
|
|
170
|
+
"command combining static annotation + dynamic key merges all into metadata",
|
|
171
|
+
Effect.fnUntraced(function*() {
|
|
172
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
173
|
+
const result = asCommand(yield* client.doWithBothKeys())
|
|
174
|
+
expect(result.payload).toBe(99)
|
|
175
|
+
expect(result.metadata.invalidateQueries).toStrictEqual([StaticKey, DynamicKey])
|
|
176
|
+
}, Effect.provide(E2eTestLayer))
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
it.live(
|
|
180
|
+
"per-request isolation: each command call has a fresh InvalidationSet",
|
|
181
|
+
Effect.fnUntraced(function*() {
|
|
182
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
183
|
+
const r1 = asCommand(yield* client.doWithDynamicKey())
|
|
184
|
+
const r2 = asCommand(yield* client.doWithDynamicKey())
|
|
185
|
+
// Each call must have exactly one key — no accumulation from prior calls
|
|
186
|
+
expect(r1.metadata.invalidateQueries).toStrictEqual([DynamicKey])
|
|
187
|
+
expect(r2.metadata.invalidateQueries).toStrictEqual([DynamicKey])
|
|
188
|
+
}, Effect.provide(E2eTestLayer))
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
// Client-side consumption tests
|
|
193
|
+
//
|
|
194
|
+
// These tests verify the full roundtrip for cache invalidation:
|
|
195
|
+
// 1. The server wraps command results in `{ payload, metadata: { invalidateQueries } }`.
|
|
196
|
+
// 2. The client-side `unwrapCommand` logic (as implemented in `apiClientFactory`) extracts
|
|
197
|
+
// the payload and forwards each key to `InvalidationKeysFromServer.add()`.
|
|
198
|
+
//
|
|
199
|
+
// `runAndCapture` replicates that logic using a fresh `Ref`-backed service so the test
|
|
200
|
+
// can inspect which keys the client received after the command completes.
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Replicates `apiClientFactory`'s `unwrapCommand` + `InvalidationKeysFromServer` pattern:
|
|
205
|
+
* - Unwraps the `CommandResponseWithMetaData` result
|
|
206
|
+
* - Calls `svc.add(key)` for every key in `metadata.invalidateQueries`
|
|
207
|
+
* - Returns `{ payload, keys }` for assertion
|
|
208
|
+
*/
|
|
209
|
+
const runAndCapture = <A, E, R>(eff: Effect.Effect<A, E, R>) =>
|
|
210
|
+
Effect.gen(function*() {
|
|
211
|
+
const keysRef = yield* Ref.make<ReadonlyArray<Invalidation.InvalidationKey>>([])
|
|
212
|
+
const svc = makeInvalidationKeysService(keysRef)
|
|
213
|
+
const cmd = asCommand(yield* eff)
|
|
214
|
+
yield* Effect.forEach(cmd.metadata.invalidateQueries, svc.add, { discard: true })
|
|
215
|
+
return { payload: cmd.payload, keys: yield* Ref.get(keysRef) }
|
|
216
|
+
})
|
|
217
|
+
|
|
218
|
+
it.live(
|
|
219
|
+
"client consumes static key: payload unwrapped and key forwarded to InvalidationKeysFromServer",
|
|
220
|
+
Effect.fnUntraced(function*() {
|
|
221
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
222
|
+
const { payload, keys } = yield* runAndCapture(client.doWithStaticKey())
|
|
223
|
+
expect(payload).toStrictEqual({ count: 42 })
|
|
224
|
+
expect(keys).toStrictEqual([StaticKey])
|
|
225
|
+
}, Effect.provide(E2eTestLayer))
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
it.live(
|
|
229
|
+
"client consumes dynamic key: payload unwrapped and key forwarded to InvalidationKeysFromServer",
|
|
230
|
+
Effect.fnUntraced(function*() {
|
|
231
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
232
|
+
const { payload, keys } = yield* runAndCapture(client.doWithDynamicKey())
|
|
233
|
+
expect(payload).toBe("done")
|
|
234
|
+
expect(keys).toStrictEqual([DynamicKey])
|
|
235
|
+
}, Effect.provide(E2eTestLayer))
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
it.live(
|
|
239
|
+
"client consumes combined static+dynamic keys: all keys forwarded to InvalidationKeysFromServer",
|
|
240
|
+
Effect.fnUntraced(function*() {
|
|
241
|
+
const client = yield* RpcTest.makeClient(E2eRpcs)
|
|
242
|
+
const { payload, keys } = yield* runAndCapture(client.doWithBothKeys())
|
|
243
|
+
expect(payload).toBe(99)
|
|
244
|
+
expect(keys).toStrictEqual([StaticKey, DynamicKey])
|
|
245
|
+
}, Effect.provide(E2eTestLayer))
|
|
246
|
+
)
|