@konker.dev/middleware-fp 0.0.19 → 0.1.7
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/LICENSE +1 -1
- package/README.md +3 -2
- package/dist/contrib/awsApiGatewayProcessor.d.ts +3 -2
- package/dist/contrib/awsApiGatewayProcessor.d.ts.map +1 -0
- package/dist/contrib/awsApiGatewayProcessor.js +12 -39
- package/dist/contrib/awsApiGatewayProcessor.js.map +1 -1
- package/dist/contrib/awsApiGatewayProcessor.test.d.ts +3 -2
- package/dist/contrib/awsApiGatewayProcessor.test.d.ts.map +1 -0
- package/dist/contrib/awsApiGatewayProcessor.test.js +25 -49
- package/dist/contrib/awsApiGatewayProcessor.test.js.map +1 -1
- package/dist/contrib/awsIamAuthorizerProcessor.d.ts +2 -1
- package/dist/contrib/awsIamAuthorizerProcessor.d.ts.map +1 -0
- package/dist/contrib/awsIamAuthorizerProcessor.js +9 -35
- package/dist/contrib/awsIamAuthorizerProcessor.js.map +1 -1
- package/dist/contrib/awsIamAuthorizerProcessor.test.d.ts +2 -1
- package/dist/contrib/awsIamAuthorizerProcessor.test.d.ts.map +1 -0
- package/dist/contrib/awsIamAuthorizerProcessor.test.js +25 -48
- package/dist/contrib/awsIamAuthorizerProcessor.test.js.map +1 -1
- package/dist/contrib/awsSimpleAuthorizerProcessor.d.ts +3 -2
- package/dist/contrib/awsSimpleAuthorizerProcessor.d.ts.map +1 -0
- package/dist/contrib/awsSimpleAuthorizerProcessor.js +6 -32
- package/dist/contrib/awsSimpleAuthorizerProcessor.js.map +1 -1
- package/dist/contrib/awsSimpleAuthorizerProcessor.test.d.ts +3 -2
- package/dist/contrib/awsSimpleAuthorizerProcessor.test.d.ts.map +1 -0
- package/dist/contrib/awsSimpleAuthorizerProcessor.test.js +24 -47
- package/dist/contrib/awsSimpleAuthorizerProcessor.test.js.map +1 -1
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.d.ts +5 -4
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.d.ts.map +1 -0
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.js +6 -32
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.js.map +1 -1
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.test.d.ts +7 -6
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.test.d.ts.map +1 -0
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.test.js +26 -48
- package/dist/contrib/awsSimpleAuthorizerWithContextProcessor.test.js.map +1 -1
- package/dist/contrib/base64BodyDecoder.d.ts +3 -2
- package/dist/contrib/base64BodyDecoder.d.ts.map +1 -0
- package/dist/contrib/base64BodyDecoder.js +6 -32
- package/dist/contrib/base64BodyDecoder.js.map +1 -1
- package/dist/contrib/base64BodyDecoder.test.d.ts +1 -0
- package/dist/contrib/base64BodyDecoder.test.d.ts.map +1 -0
- package/dist/contrib/base64BodyDecoder.test.js +15 -39
- package/dist/contrib/base64BodyDecoder.test.js.map +1 -1
- package/dist/contrib/basicAuthAuthenticator.d.ts +7 -6
- package/dist/contrib/basicAuthAuthenticator.d.ts.map +1 -0
- package/dist/contrib/basicAuthAuthenticator.js +10 -36
- package/dist/contrib/basicAuthAuthenticator.js.map +1 -1
- package/dist/contrib/basicAuthAuthenticator.test.d.ts +4 -3
- package/dist/contrib/basicAuthAuthenticator.test.d.ts.map +1 -0
- package/dist/contrib/basicAuthAuthenticator.test.js +20 -41
- package/dist/contrib/basicAuthAuthenticator.test.js.map +1 -1
- package/dist/contrib/basicAuthDecoder.d.ts +5 -4
- package/dist/contrib/basicAuthDecoder.d.ts.map +1 -0
- package/dist/contrib/basicAuthDecoder.js +8 -34
- package/dist/contrib/basicAuthDecoder.js.map +1 -1
- package/dist/contrib/basicAuthDecoder.test.d.ts +1 -0
- package/dist/contrib/basicAuthDecoder.test.d.ts.map +1 -0
- package/dist/contrib/basicAuthDecoder.test.js +17 -37
- package/dist/contrib/basicAuthDecoder.test.js.map +1 -1
- package/dist/contrib/bodyValidator.d.ts +5 -4
- package/dist/contrib/bodyValidator.d.ts.map +1 -0
- package/dist/contrib/bodyValidator.js +5 -31
- package/dist/contrib/bodyValidator.js.map +1 -1
- package/dist/contrib/bodyValidator.test.d.ts +4 -3
- package/dist/contrib/bodyValidator.test.d.ts.map +1 -0
- package/dist/contrib/bodyValidator.test.js +13 -37
- package/dist/contrib/bodyValidator.test.js.map +1 -1
- package/dist/contrib/cacheInMemory.d.ts +4 -3
- package/dist/contrib/cacheInMemory.d.ts.map +1 -0
- package/dist/contrib/cacheInMemory.js +13 -39
- package/dist/contrib/cacheInMemory.js.map +1 -1
- package/dist/contrib/cacheInMemory.test.d.ts +1 -0
- package/dist/contrib/cacheInMemory.test.d.ts.map +1 -0
- package/dist/contrib/cacheInMemory.test.js +12 -35
- package/dist/contrib/cacheInMemory.test.js.map +1 -1
- package/dist/contrib/cacheMomento.d.ts +4 -3
- package/dist/contrib/cacheMomento.d.ts.map +1 -0
- package/dist/contrib/cacheMomento.js +10 -36
- package/dist/contrib/cacheMomento.js.map +1 -1
- package/dist/contrib/cacheMomento.test.d.ts +1 -0
- package/dist/contrib/cacheMomento.test.d.ts.map +1 -0
- package/dist/contrib/cacheMomento.test.js +18 -41
- package/dist/contrib/cacheMomento.test.js.map +1 -1
- package/dist/contrib/dynamodbDocClientInit/index.d.ts +4 -3
- package/dist/contrib/dynamodbDocClientInit/index.d.ts.map +1 -0
- package/dist/contrib/dynamodbDocClientInit/index.js +5 -31
- package/dist/contrib/dynamodbDocClientInit/index.js.map +1 -1
- package/dist/contrib/dynamodbDocClientInit/index.test.d.ts +1 -0
- package/dist/contrib/dynamodbDocClientInit/index.test.d.ts.map +1 -0
- package/dist/contrib/dynamodbDocClientInit/index.test.js +13 -36
- package/dist/contrib/dynamodbDocClientInit/index.test.js.map +1 -1
- package/dist/contrib/envValidator.d.ts +5 -4
- package/dist/contrib/envValidator.d.ts.map +1 -0
- package/dist/contrib/envValidator.js +9 -35
- package/dist/contrib/envValidator.js.map +1 -1
- package/dist/contrib/envValidator.test.d.ts +6 -5
- package/dist/contrib/envValidator.test.d.ts.map +1 -0
- package/dist/contrib/envValidator.test.js +13 -37
- package/dist/contrib/envValidator.test.js.map +1 -1
- package/dist/contrib/headerSignatureAuthorizer/index.d.ts +5 -4
- package/dist/contrib/headerSignatureAuthorizer/index.d.ts.map +1 -0
- package/dist/contrib/headerSignatureAuthorizer/index.js +10 -36
- package/dist/contrib/headerSignatureAuthorizer/index.js.map +1 -1
- package/dist/contrib/headerSignatureAuthorizer/index.test.d.ts +4 -3
- package/dist/contrib/headerSignatureAuthorizer/index.test.d.ts.map +1 -0
- package/dist/contrib/headerSignatureAuthorizer/index.test.js +30 -51
- package/dist/contrib/headerSignatureAuthorizer/index.test.js.map +1 -1
- package/dist/contrib/headerSignatureAuthorizer/lib.d.ts +4 -3
- package/dist/contrib/headerSignatureAuthorizer/lib.d.ts.map +1 -0
- package/dist/contrib/headerSignatureAuthorizer/lib.js +6 -31
- package/dist/contrib/headerSignatureAuthorizer/lib.js.map +1 -1
- package/dist/contrib/headerSignatureAuthorizer/lib.test.d.ts +1 -0
- package/dist/contrib/headerSignatureAuthorizer/lib.test.d.ts.map +1 -0
- package/dist/contrib/headerSignatureAuthorizer/lib.test.js +19 -40
- package/dist/contrib/headerSignatureAuthorizer/lib.test.js.map +1 -1
- package/dist/contrib/headersNormalizer/index.d.ts +3 -2
- package/dist/contrib/headersNormalizer/index.d.ts.map +1 -0
- package/dist/contrib/headersNormalizer/index.js +5 -31
- package/dist/contrib/headersNormalizer/index.js.map +1 -1
- package/dist/contrib/headersNormalizer/index.test.d.ts +5 -4
- package/dist/contrib/headersNormalizer/index.test.d.ts.map +1 -0
- package/dist/contrib/headersNormalizer/index.test.js +14 -39
- package/dist/contrib/headersNormalizer/index.test.js.map +1 -1
- package/dist/contrib/headersNormalizer/lib.d.ts +2 -1
- package/dist/contrib/headersNormalizer/lib.d.ts.map +1 -0
- package/dist/contrib/headersNormalizer/lib.js +7 -17
- package/dist/contrib/headersNormalizer/lib.js.map +1 -1
- package/dist/contrib/headersNormalizer/lib.test.d.ts +1 -0
- package/dist/contrib/headersNormalizer/lib.test.d.ts.map +1 -0
- package/dist/contrib/headersNormalizer/lib.test.js +2 -26
- package/dist/contrib/headersNormalizer/lib.test.js.map +1 -1
- package/dist/contrib/headersNormalizer/types.d.ts +2 -1
- package/dist/contrib/headersNormalizer/types.d.ts.map +1 -0
- package/dist/contrib/headersNormalizer/types.js +1 -2
- package/dist/contrib/headersValidator.d.ts +7 -6
- package/dist/contrib/headersValidator.d.ts.map +1 -0
- package/dist/contrib/headersValidator.js +5 -31
- package/dist/contrib/headersValidator.js.map +1 -1
- package/dist/contrib/headersValidator.test.d.ts +6 -5
- package/dist/contrib/headersValidator.test.d.ts.map +1 -0
- package/dist/contrib/headersValidator.test.js +15 -40
- package/dist/contrib/headersValidator.test.js.map +1 -1
- package/dist/contrib/helmetJsHeaders.d.ts +3 -2
- package/dist/contrib/helmetJsHeaders.d.ts.map +1 -0
- package/dist/contrib/helmetJsHeaders.js +8 -35
- package/dist/contrib/helmetJsHeaders.js.map +1 -1
- package/dist/contrib/helmetJsHeaders.test.d.ts +1 -0
- package/dist/contrib/helmetJsHeaders.test.d.ts.map +1 -0
- package/dist/contrib/helmetJsHeaders.test.js +7 -31
- package/dist/contrib/helmetJsHeaders.test.js.map +1 -1
- package/dist/contrib/identity.d.ts +2 -1
- package/dist/contrib/identity.d.ts.map +1 -0
- package/dist/contrib/identity.js +1 -5
- package/dist/contrib/identity.js.map +1 -1
- package/dist/contrib/identity.test.d.ts +1 -0
- package/dist/contrib/identity.test.d.ts.map +1 -0
- package/dist/contrib/identity.test.js +8 -31
- package/dist/contrib/identity.test.js.map +1 -1
- package/dist/contrib/index.d.ts +27 -26
- package/dist/contrib/index.d.ts.map +1 -0
- package/dist/contrib/index.js +26 -52
- package/dist/contrib/index.js.map +1 -1
- package/dist/contrib/jsonBodyParser.d.ts +3 -2
- package/dist/contrib/jsonBodyParser.d.ts.map +1 -0
- package/dist/contrib/jsonBodyParser.js +9 -35
- package/dist/contrib/jsonBodyParser.js.map +1 -1
- package/dist/contrib/jsonBodyParser.test.d.ts +1 -0
- package/dist/contrib/jsonBodyParser.test.d.ts.map +1 -0
- package/dist/contrib/jsonBodyParser.test.js +11 -34
- package/dist/contrib/jsonBodyParser.test.js.map +1 -1
- package/dist/contrib/jwtAuthenticator.d.ts +8 -7
- package/dist/contrib/jwtAuthenticator.d.ts.map +1 -0
- package/dist/contrib/jwtAuthenticator.js +10 -36
- package/dist/contrib/jwtAuthenticator.js.map +1 -1
- package/dist/contrib/jwtAuthenticator.test.d.ts +4 -3
- package/dist/contrib/jwtAuthenticator.test.d.ts.map +1 -0
- package/dist/contrib/jwtAuthenticator.test.js +26 -47
- package/dist/contrib/jwtAuthenticator.test.js.map +1 -1
- package/dist/contrib/jwtAuthenticatorRsa.d.ts +8 -7
- package/dist/contrib/jwtAuthenticatorRsa.d.ts.map +1 -0
- package/dist/contrib/jwtAuthenticatorRsa.js +10 -36
- package/dist/contrib/jwtAuthenticatorRsa.js.map +1 -1
- package/dist/contrib/jwtAuthenticatorRsa.test.d.ts +4 -3
- package/dist/contrib/jwtAuthenticatorRsa.test.d.ts.map +1 -0
- package/dist/contrib/jwtAuthenticatorRsa.test.js +26 -47
- package/dist/contrib/jwtAuthenticatorRsa.test.js.map +1 -1
- package/dist/contrib/jwtDecoder.d.ts +5 -4
- package/dist/contrib/jwtDecoder.d.ts.map +1 -0
- package/dist/contrib/jwtDecoder.js +8 -34
- package/dist/contrib/jwtDecoder.js.map +1 -1
- package/dist/contrib/jwtDecoder.test.d.ts +1 -0
- package/dist/contrib/jwtDecoder.test.d.ts.map +1 -0
- package/dist/contrib/jwtDecoder.test.js +22 -42
- package/dist/contrib/jwtDecoder.test.js.map +1 -1
- package/dist/contrib/momentoClientInit.d.ts +2 -1
- package/dist/contrib/momentoClientInit.d.ts.map +1 -0
- package/dist/contrib/momentoClientInit.js +4 -30
- package/dist/contrib/momentoClientInit.js.map +1 -1
- package/dist/contrib/momentoClientInit.test.d.ts +1 -0
- package/dist/contrib/momentoClientInit.test.d.ts.map +1 -0
- package/dist/contrib/momentoClientInit.test.js +9 -32
- package/dist/contrib/momentoClientInit.test.js.map +1 -1
- package/dist/contrib/pathParametersValidator.d.ts +5 -4
- package/dist/contrib/pathParametersValidator.d.ts.map +1 -0
- package/dist/contrib/pathParametersValidator.js +5 -31
- package/dist/contrib/pathParametersValidator.js.map +1 -1
- package/dist/contrib/pathParametersValidator.test.d.ts +5 -4
- package/dist/contrib/pathParametersValidator.test.d.ts.map +1 -0
- package/dist/contrib/pathParametersValidator.test.js +14 -38
- package/dist/contrib/pathParametersValidator.test.js.map +1 -1
- package/dist/contrib/pathTokenAuthorizer.d.ts +5 -4
- package/dist/contrib/pathTokenAuthorizer.d.ts.map +1 -0
- package/dist/contrib/pathTokenAuthorizer.js +9 -35
- package/dist/contrib/pathTokenAuthorizer.js.map +1 -1
- package/dist/contrib/pathTokenAuthorizer.test.d.ts +4 -3
- package/dist/contrib/pathTokenAuthorizer.test.d.ts.map +1 -0
- package/dist/contrib/pathTokenAuthorizer.test.js +28 -49
- package/dist/contrib/pathTokenAuthorizer.test.js.map +1 -1
- package/dist/contrib/queryStringValidator.d.ts +5 -4
- package/dist/contrib/queryStringValidator.d.ts.map +1 -0
- package/dist/contrib/queryStringValidator.js +5 -31
- package/dist/contrib/queryStringValidator.js.map +1 -1
- package/dist/contrib/queryStringValidator.test.d.ts +5 -4
- package/dist/contrib/queryStringValidator.test.d.ts.map +1 -0
- package/dist/contrib/queryStringValidator.test.js +14 -38
- package/dist/contrib/queryStringValidator.test.js.map +1 -1
- package/dist/contrib/requestResponseLogger.d.ts +2 -1
- package/dist/contrib/requestResponseLogger.d.ts.map +1 -0
- package/dist/contrib/requestResponseLogger.js +4 -30
- package/dist/contrib/requestResponseLogger.js.map +1 -1
- package/dist/contrib/requestResponseLogger.test.d.ts +1 -0
- package/dist/contrib/requestResponseLogger.test.d.ts.map +1 -0
- package/dist/contrib/requestResponseLogger.test.js +15 -37
- package/dist/contrib/requestResponseLogger.test.js.map +1 -1
- package/dist/contrib/trivial.d.ts +2 -1
- package/dist/contrib/trivial.d.ts.map +1 -0
- package/dist/contrib/trivial.js +10 -36
- package/dist/contrib/trivial.js.map +1 -1
- package/dist/contrib/trivial.test.d.ts +1 -0
- package/dist/contrib/trivial.test.d.ts.map +1 -0
- package/dist/contrib/trivial.test.js +8 -31
- package/dist/contrib/trivial.test.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -2
- package/dist/lib/HttpApiError.d.ts +1 -0
- package/dist/lib/HttpApiError.d.ts.map +1 -0
- package/dist/lib/HttpApiError.js +5 -8
- package/dist/lib/HttpApiError.js.map +1 -1
- package/dist/lib/HttpApiError.test.d.ts +1 -0
- package/dist/lib/HttpApiError.test.d.ts.map +1 -0
- package/dist/lib/HttpApiError.test.js +3 -27
- package/dist/lib/HttpApiError.test.js.map +1 -1
- package/dist/lib/MiddlewareError.d.ts +1 -0
- package/dist/lib/MiddlewareError.d.ts.map +1 -0
- package/dist/lib/MiddlewareError.js +5 -8
- package/dist/lib/MiddlewareError.js.map +1 -1
- package/dist/lib/MiddlewareError.test.d.ts +1 -0
- package/dist/lib/MiddlewareError.test.d.ts.map +1 -0
- package/dist/lib/MiddlewareError.test.js +2 -26
- package/dist/lib/MiddlewareError.test.js.map +1 -1
- package/dist/lib/http.d.ts +25 -23
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +24 -53
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/http.test.d.ts +1 -0
- package/dist/lib/http.test.d.ts.map +1 -0
- package/dist/lib/http.test.js +13 -36
- package/dist/lib/http.test.js.map +1 -1
- package/dist/test/test-common.d.ts +8 -6
- package/dist/test/test-common.d.ts.map +1 -0
- package/dist/test/test-common.js +9 -37
- package/dist/test/test-common.js.map +1 -1
- package/dist/test/unit/auth-1.test.d.ts +1 -0
- package/dist/test/unit/auth-1.test.d.ts.map +1 -0
- package/dist/test/unit/auth-1.test.js +16 -42
- package/dist/test/unit/auth-1.test.js.map +1 -1
- package/dist/test/unit/auth-2.test.d.ts +1 -0
- package/dist/test/unit/auth-2.test.d.ts.map +1 -0
- package/dist/test/unit/auth-2.test.js +16 -42
- package/dist/test/unit/auth-2.test.js.map +1 -1
- package/dist/test/unit/basic-1.test.d.ts +1 -0
- package/dist/test/unit/basic-1.test.d.ts.map +1 -0
- package/dist/test/unit/basic-1.test.js +15 -38
- package/dist/test/unit/basic-1.test.js.map +1 -1
- package/dist/test/unit/basic-2.test.d.ts +5 -1
- package/dist/test/unit/basic-2.test.d.ts.map +1 -0
- package/dist/test/unit/basic-2.test.js +27 -44
- package/dist/test/unit/basic-2.test.js.map +1 -1
- package/dist/test/unit/basic-3.test.d.ts +1 -0
- package/dist/test/unit/basic-3.test.d.ts.map +1 -0
- package/dist/test/unit/basic-3.test.js +18 -41
- package/dist/test/unit/basic-3.test.js.map +1 -1
- package/dist/test/unit/kitchen-sink.test.d.ts +11 -1
- package/dist/test/unit/kitchen-sink.test.d.ts.map +1 -0
- package/dist/test/unit/kitchen-sink.test.js +45 -57
- package/dist/test/unit/kitchen-sink.test.js.map +1 -1
- package/package.json +204 -51
|
@@ -1,47 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.middleware = void 0;
|
|
27
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const helpers_1 = require("@konker.dev/tiny-cache-fp/dist/lib/helpers");
|
|
29
|
-
const InMemoryCache_1 = require("@konker.dev/tiny-cache-fp/dist/memory/InMemoryCache");
|
|
30
|
-
const MiddlewareError_1 = require("../lib/MiddlewareError");
|
|
1
|
+
import { chainGetVal, chainSetVal } from '@konker.dev/tiny-cache-fp/lib/helpers';
|
|
2
|
+
import { InMemoryCache } from '@konker.dev/tiny-cache-fp/memory/InMemoryCache';
|
|
3
|
+
import { pipe } from 'effect';
|
|
4
|
+
import * as Effect from 'effect/Effect';
|
|
5
|
+
import { toMiddlewareError } from '../lib/MiddlewareError.js';
|
|
31
6
|
const TAG = 'cacheInMemory';
|
|
32
|
-
const middleware = (cacheKeyResolver) => (wrapped) => {
|
|
33
|
-
const cache =
|
|
34
|
-
return (i) =>
|
|
7
|
+
export const middleware = (cacheKeyResolver) => (wrapped) => {
|
|
8
|
+
const cache = InMemoryCache();
|
|
9
|
+
return (i) => pipe(
|
|
35
10
|
// Lift the input
|
|
36
|
-
|
|
11
|
+
Effect.succeed(i),
|
|
37
12
|
// Log before
|
|
38
|
-
|
|
13
|
+
Effect.tap(Effect.logDebug(`[${TAG}] IN`)),
|
|
39
14
|
// Try to get the cached value, using a key based on the input
|
|
40
|
-
|
|
15
|
+
Effect.flatMap(cacheKeyResolver), Effect.flatMap(chainGetVal(cache)), Effect.mapError(toMiddlewareError),
|
|
41
16
|
// If it's a cache miss, call the next middleware in the stack, and set the output into the cache
|
|
42
|
-
|
|
17
|
+
Effect.orElse(() => pipe(wrapped(i), Effect.tap(Effect.logInfo(`[${TAG}] CACHE MISS`)), Effect.flatMap((o) => pipe(cacheKeyResolver(i), Effect.flatMap((cacheKey) => chainSetVal(cache, cacheKey, o)), Effect.mapError(toMiddlewareError))))),
|
|
43
18
|
// Log after
|
|
44
|
-
|
|
19
|
+
Effect.tap(Effect.logDebug(`[${TAG}] OUT`)));
|
|
45
20
|
};
|
|
46
|
-
exports.middleware = middleware;
|
|
47
21
|
//# sourceMappingURL=cacheInMemory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheInMemory.js","sourceRoot":"","sources":["../../src/contrib/cacheInMemory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cacheInMemory.js","sourceRoot":"","sources":["../../src/contrib/cacheInMemory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,GAAG,GAAG,eAAe,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GACrB,CAAQ,gBAAyC,EAAE,EAAE,CACrD,CAAU,OAA4B,EAA8C,EAAE;IACpF,MAAM,KAAK,GAAG,aAAa,EAAK,CAAC;IACjC,OAAO,CAAC,CAAI,EAAE,EAAE,CACd,IAAI;IACF,iBAAiB;IACjB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAE1C,8DAA8D;IAC9D,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAElC,iGAAiG;IACjG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CACjB,IAAI,CACF,OAAO,CAAC,CAAC,CAAC,EACV,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,EACjD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,IAAI,CACF,gBAAgB,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAC7D,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACnC,CACF,CACF,CACF;IAED,YAAY;IACZ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAC5C,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheInMemory.test.d.ts","sourceRoot":"","sources":["../../src/contrib/cacheInMemory.test.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
|
@@ -1,41 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
27
|
-
const common = __importStar(require("../test/test-common"));
|
|
28
|
-
const test_common_1 = require("../test/test-common");
|
|
29
|
-
const unit = __importStar(require("./cacheInMemory"));
|
|
1
|
+
import { pipe } from 'effect';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import * as common from '../test/test-common.js';
|
|
5
|
+
import { TestDeps } from '../test/test-common.js';
|
|
6
|
+
import * as unit from './cacheInMemory.js';
|
|
30
7
|
const TEST_IN = { foo: 'foo' };
|
|
31
8
|
const TEST_DEPS = { bar: 'bar' };
|
|
32
9
|
describe('middleware/cache-in-memory', () => {
|
|
33
|
-
const cacheKeyResolver = (_) =>
|
|
34
|
-
const coreSpy =
|
|
35
|
-
const stack =
|
|
36
|
-
|
|
37
|
-
const result1 = await
|
|
38
|
-
const result2 = await
|
|
10
|
+
const cacheKeyResolver = (_) => Effect.succeed('CACHE_KEY');
|
|
11
|
+
const coreSpy = vi.spyOn(common, 'echoCoreInDeps');
|
|
12
|
+
const stack = pipe(common.echoCoreInDeps(common.TestDeps), unit.middleware(cacheKeyResolver));
|
|
13
|
+
it('should work as expected', async () => {
|
|
14
|
+
const result1 = await pipe(stack(TEST_IN), Effect.provideService(TestDeps, TEST_DEPS), Effect.runPromise);
|
|
15
|
+
const result2 = await pipe(stack(TEST_IN), Effect.provideService(TestDeps, TEST_DEPS), Effect.runPromise);
|
|
39
16
|
expect(result1).toStrictEqual({ foo: 'foo', bar: 'bar' });
|
|
40
17
|
expect(result2).toStrictEqual(result1);
|
|
41
18
|
expect(coreSpy).toHaveBeenCalledTimes(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheInMemory.test.js","sourceRoot":"","sources":["../../src/contrib/cacheInMemory.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cacheInMemory.test.js","sourceRoot":"","sources":["../../src/contrib/cacheInMemory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAI3C,MAAM,OAAO,GAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACnC,MAAM,SAAS,GAAoB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAElD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,MAAM,gBAAgB,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAsB,gBAAgB,CAAC,CAAC,CAAC;IAEnH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1G,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MomentoClientDeps } from '@konker.dev/momento-cache-client-effect';
|
|
2
2
|
import type { CacheType } from '@konker.dev/tiny-cache-fp';
|
|
3
|
-
import type { CacheKeyResolver } from '@konker.dev/tiny-cache-fp/
|
|
4
|
-
import type { Handler } from '../index';
|
|
5
|
-
import type { MiddlewareError } from '../lib/MiddlewareError';
|
|
3
|
+
import type { CacheKeyResolver } from '@konker.dev/tiny-cache-fp/lib/CacheKeyResolver';
|
|
4
|
+
import type { Handler } from '../index.js';
|
|
5
|
+
import type { MiddlewareError } from '../lib/MiddlewareError.js';
|
|
6
6
|
export declare const middleware: <I, O, CR>(cacheKeyResolver: CacheKeyResolver<I, CR>, cache: CacheType<O, MomentoClientDeps>, ttl?: number) => <E, R>(wrapped: Handler<I, O, E, R>) => Handler<I, O, E | MiddlewareError, R | CR | MomentoClientDeps>;
|
|
7
|
+
//# sourceMappingURL=cacheMomento.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheMomento.d.ts","sourceRoot":"","sources":["../../src/contrib/cacheMomento.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAKvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKjE,eAAO,MAAM,UAAU,GACpB,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAC,QAAQ,MAAM,MACzG,CAAC,EAAE,CAAC,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,iBAAiB,CA6BhG,CAAC"}
|
|
@@ -1,43 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.middleware = void 0;
|
|
27
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const helpers_1 = require("@konker.dev/tiny-cache-fp/dist/lib/helpers");
|
|
29
|
-
const MiddlewareError_1 = require("../lib/MiddlewareError");
|
|
1
|
+
import { chainGetVal, chainSetVal } from '@konker.dev/tiny-cache-fp/lib/helpers';
|
|
2
|
+
import { pipe } from 'effect';
|
|
3
|
+
import * as Effect from 'effect/Effect';
|
|
4
|
+
import { toMiddlewareError } from '../lib/MiddlewareError.js';
|
|
30
5
|
const TAG = 'cacheMomento';
|
|
31
|
-
const middleware = (cacheKeyResolver, cache, ttl) => (wrapped) => (i) =>
|
|
6
|
+
export const middleware = (cacheKeyResolver, cache, ttl) => (wrapped) => (i) => pipe(
|
|
32
7
|
// Lift the input
|
|
33
|
-
|
|
8
|
+
Effect.succeed(i),
|
|
34
9
|
// Log before
|
|
35
|
-
|
|
10
|
+
Effect.tap(Effect.logDebug(`[${TAG}] IN`)),
|
|
36
11
|
// Try to get the cached value, using a key based on the input
|
|
37
|
-
|
|
12
|
+
Effect.flatMap(cacheKeyResolver), Effect.flatMap(chainGetVal(cache)), Effect.mapError(toMiddlewareError),
|
|
38
13
|
// If it's a cache miss, call the next middleware in the stack, and set the output into the cache
|
|
39
|
-
|
|
14
|
+
Effect.orElse(() => pipe(wrapped(i), Effect.tap(Effect.logInfo(`[${TAG}] CACHE MISS`)), Effect.flatMap((o) => pipe(cacheKeyResolver(i), Effect.flatMap((cacheKey) => chainSetVal(cache, cacheKey, o, ttl)), Effect.mapError(toMiddlewareError))))),
|
|
40
15
|
// Log after
|
|
41
|
-
|
|
42
|
-
exports.middleware = middleware;
|
|
16
|
+
Effect.tap(Effect.logDebug(`[${TAG}] OUT`)));
|
|
43
17
|
//# sourceMappingURL=cacheMomento.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheMomento.js","sourceRoot":"","sources":["../../src/contrib/cacheMomento.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cacheMomento.js","sourceRoot":"","sources":["../../src/contrib/cacheMomento.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,GAAG,GAAG,cAAc,CAAC;AAE3B,MAAM,CAAC,MAAM,UAAU,GACrB,CAAW,gBAAyC,EAAE,KAAsC,EAAE,GAAY,EAAE,EAAE,CAC9G,CAAO,OAA4B,EAAkE,EAAE,CACvG,CAAC,CAAI,EAAE,EAAE,CACP,IAAI;AACF,iBAAiB;AACjB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjB,aAAa;AACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAElC,iGAAiG;AACjG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CACjB,IAAI,CACF,OAAO,CAAC,CAAC,CAAC,EACV,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,EACjD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,IAAI,CACF,gBAAgB,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAClE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACnC,CACF,CACF,CACF;AAED,YAAY;AACZ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheMomento.test.d.ts","sourceRoot":"","sources":["../../src/contrib/cacheMomento.test.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
|
@@ -1,61 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
27
|
-
const momento_cache_client_effect_1 = require("@konker.dev/momento-cache-client-effect");
|
|
28
|
-
const test_1 = require("@konker.dev/momento-cache-client-effect/dist/lib/test");
|
|
29
|
-
const MomentoStringCacheJson_1 = require("@konker.dev/tiny-cache-fp/dist/momento/MomentoStringCacheJson");
|
|
30
|
-
const common = __importStar(require("../test/test-common"));
|
|
31
|
-
const test_common_1 = require("../test/test-common");
|
|
32
|
-
const unit = __importStar(require("./cacheMomento"));
|
|
1
|
+
import { MomentoClientDeps } from '@konker.dev/momento-cache-client-effect';
|
|
2
|
+
import { MockMomentoClient, TEST_MOMENTO_AUTH_TOKEN } from '@konker.dev/momento-cache-client-effect/lib/test';
|
|
3
|
+
import { MomentoStringCacheJson } from '@konker.dev/tiny-cache-fp/momento/MomentoStringCacheJson';
|
|
4
|
+
import { pipe } from 'effect';
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
7
|
+
import * as common from '../test/test-common.js';
|
|
8
|
+
import { TestDeps } from '../test/test-common.js';
|
|
9
|
+
import * as unit from './cacheMomento.js';
|
|
33
10
|
const TEST_IN = { foo: 'foo' };
|
|
34
11
|
describe('middleware/cache-momento', () => {
|
|
35
|
-
const cache =
|
|
12
|
+
const cache = MomentoStringCacheJson();
|
|
36
13
|
let TEST_DEPS;
|
|
37
14
|
let oldEnv;
|
|
38
15
|
beforeAll(() => {
|
|
39
16
|
oldEnv = process.env;
|
|
40
17
|
process.env = {
|
|
41
|
-
MOMENTO_AUTH_TOKEN:
|
|
18
|
+
MOMENTO_AUTH_TOKEN: TEST_MOMENTO_AUTH_TOKEN,
|
|
42
19
|
};
|
|
43
20
|
});
|
|
44
21
|
beforeEach(() => {
|
|
45
22
|
TEST_DEPS = {
|
|
46
|
-
makeMomentoClient: () =>
|
|
23
|
+
makeMomentoClient: () => Effect.succeed(MockMomentoClient()),
|
|
47
24
|
};
|
|
48
25
|
});
|
|
49
26
|
afterAll(() => {
|
|
50
27
|
process.env = oldEnv;
|
|
51
28
|
});
|
|
52
|
-
const cacheKeyResolver = (_) =>
|
|
53
|
-
const coreSpy =
|
|
29
|
+
const cacheKeyResolver = (_) => Effect.succeed('CACHE_KEY');
|
|
30
|
+
const coreSpy = vi.spyOn(common, 'echoCoreInDeps');
|
|
54
31
|
// const stack = unit.middleware(cacheKeyResolver, cache)(common.echoCoreIn);
|
|
55
|
-
const stack =
|
|
56
|
-
|
|
57
|
-
const result1 = await
|
|
58
|
-
const result2 = await
|
|
32
|
+
const stack = pipe(common.echoCoreInDeps(common.TestDeps), unit.middleware(cacheKeyResolver, cache));
|
|
33
|
+
it('should work as expected', async () => {
|
|
34
|
+
const result1 = await pipe(stack(TEST_IN), Effect.provideService(TestDeps, {}), Effect.provideService(MomentoClientDeps, TEST_DEPS), Effect.runPromise);
|
|
35
|
+
const result2 = await pipe(stack(TEST_IN), Effect.provideService(TestDeps, {}), Effect.provideService(MomentoClientDeps, TEST_DEPS), Effect.runPromise);
|
|
59
36
|
expect(result1).toStrictEqual({ foo: 'foo' });
|
|
60
37
|
expect(result2).toStrictEqual(result1);
|
|
61
38
|
expect(coreSpy).toHaveBeenCalledTimes(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheMomento.test.js","sourceRoot":"","sources":["../../src/contrib/cacheMomento.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cacheMomento.test.js","sourceRoot":"","sources":["../../src/contrib/cacheMomento.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC9G,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEnF,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAI1C,MAAM,OAAO,GAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAEnC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAC;IACvC,IAAI,SAA4B,CAAC;IACjC,IAAI,MAAW,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,GAAG,GAAG;YACZ,kBAAkB,EAAE,uBAAuB;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG;YACV,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnD,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,CAChB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtC,IAAI,CAAC,UAAU,CAA2B,gBAAgB,EAAE,KAAK,CAAC,CACnE,CAAC;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CACxB,KAAK,CAAC,OAAO,CAAC,EACd,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACnC,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACnD,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CACxB,KAAK,CAAC,OAAO,CAAC,EACd,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACnC,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACnD,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DynamoDBClientConfig } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { DynamoDBDocumentClientDeps, DynamoDBDocumentClientFactoryDeps } from '@konker.dev/aws-client-effect-dynamodb/
|
|
3
|
-
import type { Handler } from '../../index';
|
|
4
|
-
import type { MiddlewareError } from '../../lib/MiddlewareError';
|
|
2
|
+
import { DynamoDBDocumentClientDeps, DynamoDBDocumentClientFactoryDeps } from '@konker.dev/aws-client-effect-dynamodb/lib/client';
|
|
3
|
+
import type { Handler } from '../../index.js';
|
|
4
|
+
import type { MiddlewareError } from '../../lib/MiddlewareError.js';
|
|
5
5
|
export type Adapted<R> = Exclude<R, DynamoDBDocumentClientDeps> | DynamoDBDocumentClientFactoryDeps;
|
|
6
6
|
export declare const middleware: (config: DynamoDBClientConfig) => <I, O, E, R>(wrapped: Handler<I, O, E, R | DynamoDBDocumentClientDeps>) => Handler<I, O, E | MiddlewareError, Adapted<R>>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAGL,0BAA0B,EAC1B,iCAAiC,EAClC,MAAM,mDAAmD,CAAC;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,0BAA0B,CAAC,GAAG,iCAAiC,CAAC;AAEpG,eAAO,MAAM,UAAU,WACZ,oBAAoB,MAC5B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WACA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,KACxD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAkB7C,CAAC"}
|
|
@@ -1,33 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.middleware = void 0;
|
|
27
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const client_1 = require("@konker.dev/aws-client-effect-dynamodb/dist/lib/client");
|
|
29
|
-
const MiddlewareError_1 = require("../../lib/MiddlewareError");
|
|
1
|
+
import { cleanupDynamoDBDocumentClientDeps, createDynamoDBDocumentClientDeps, DynamoDBDocumentClientDeps, DynamoDBDocumentClientFactoryDeps, } from '@konker.dev/aws-client-effect-dynamodb/lib/client';
|
|
2
|
+
import { pipe } from 'effect';
|
|
3
|
+
import * as Effect from 'effect/Effect';
|
|
4
|
+
import { toMiddlewareError } from '../../lib/MiddlewareError.js';
|
|
30
5
|
const TAG = 'dynamodbDocClientInit';
|
|
31
|
-
const middleware = (config) => (wrapped) => (i) =>
|
|
32
|
-
exports.middleware = middleware;
|
|
6
|
+
export const middleware = (config) => (wrapped) => (i) => pipe(Effect.Do, Effect.bind('factoryDeps', () => DynamoDBDocumentClientFactoryDeps), Effect.bind('dynamoDbDocumentClientDeps', ({ factoryDeps }) => pipe(factoryDeps, createDynamoDBDocumentClientDeps(config), Effect.mapError(toMiddlewareError))), Effect.tap(Effect.logDebug(`[${TAG}] IN`)), Effect.flatMap(({ dynamoDbDocumentClientDeps }) => pipe(wrapped(i), Effect.provideService(DynamoDBDocumentClientDeps, dynamoDbDocumentClientDeps), Effect.tap(cleanupDynamoDBDocumentClientDeps(dynamoDbDocumentClientDeps)), Effect.mapError(toMiddlewareError))), Effect.tap(Effect.logDebug(`[${TAG}] OUT`)));
|
|
33
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EACjC,gCAAgC,EAChC,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,GAAG,GAAG,uBAAuB,CAAC;AAIpC,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,MAA4B,EAAE,EAAE,CACjC,CACE,OAAyD,EACT,EAAE,CACpD,CAAC,CAAI,EAAE,EAAE,CACP,IAAI,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,iCAAiC,CAAC,EACnE,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAC5D,IAAI,CAAC,WAAW,EAAE,gCAAgC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAChG,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAChD,IAAI,CACF,OAAO,CAAC,CAAC,CAAC,EACV,MAAM,CAAC,cAAc,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,EAC7E,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,CAAC,EACzE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACnC,CACF,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.test.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
|
@@ -1,45 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
27
|
-
const client_1 = require("@konker.dev/aws-client-effect-dynamodb/dist/lib/client");
|
|
28
|
-
const test_common_1 = require("../../test/test-common");
|
|
29
|
-
const unit = __importStar(require("./index"));
|
|
30
|
-
const clientDestroyMock = jest.fn();
|
|
31
|
-
const docClientDestroyMock = jest.fn();
|
|
32
|
-
const clientFactoryMock = jest.fn().mockReturnValue({ destroy: clientDestroyMock });
|
|
33
|
-
const docClientFactoryMock = jest.fn().mockReturnValue({ destroy: docClientDestroyMock });
|
|
1
|
+
import { DynamoDBDocumentClientDeps, DynamoDBDocumentClientFactoryDeps, } from '@konker.dev/aws-client-effect-dynamodb/lib/client';
|
|
2
|
+
import { pipe } from 'effect';
|
|
3
|
+
import * as Effect from 'effect/Effect';
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
5
|
+
import { echoCoreInDeps } from '../../test/test-common.js';
|
|
6
|
+
import * as unit from './index.js';
|
|
7
|
+
const clientDestroyMock = vi.fn();
|
|
8
|
+
const docClientDestroyMock = vi.fn();
|
|
9
|
+
const clientFactoryMock = vi.fn().mockReturnValue({ destroy: clientDestroyMock });
|
|
10
|
+
const docClientFactoryMock = vi.fn().mockReturnValue({ destroy: docClientDestroyMock });
|
|
34
11
|
const TEST_IN = { foo: 'foo' };
|
|
35
|
-
const TEST_DEPS =
|
|
12
|
+
const TEST_DEPS = DynamoDBDocumentClientFactoryDeps.of({
|
|
36
13
|
dynamoDBClientFactory: clientFactoryMock,
|
|
37
14
|
dynamoDBDocumentClientFactory: docClientFactoryMock,
|
|
38
15
|
});
|
|
39
16
|
describe('middleware/dynamodb-doc-client-init', () => {
|
|
40
17
|
it('should work as expected', async () => {
|
|
41
|
-
const egHandler =
|
|
42
|
-
const result = await
|
|
18
|
+
const egHandler = pipe(echoCoreInDeps(DynamoDBDocumentClientDeps), unit.middleware({}));
|
|
19
|
+
const result = await pipe(egHandler(TEST_IN), Effect.provideService(DynamoDBDocumentClientFactoryDeps, TEST_DEPS), Effect.runPromise);
|
|
43
20
|
//[FIXME: is this correct? should core depend on DynamoDBDocumentClientDeps?]
|
|
44
21
|
expect(result).toMatchObject({ foo: 'foo' });
|
|
45
22
|
expect(result).toHaveProperty('dynamoDBDocumentClient');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/contrib/dynamodbDocClientInit/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAInC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAClC,MAAM,oBAAoB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACrC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAClF,MAAM,oBAAoB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAExF,MAAM,OAAO,GAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACnC,MAAM,SAAS,GAAsC,iCAAiC,CAAC,EAAE,CAAC;IACxF,qBAAqB,EAAE,iBAAiB;IACxC,6BAA6B,EAAE,oBAAoB;CACpD,CAAC,CAAC;AAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,SAAS,CAAC,OAAO,CAAC,EAClB,MAAM,CAAC,cAAc,CAAC,iCAAiC,EAAE,SAAS,CAAC,EACnE,MAAM,CAAC,UAAU,CAClB,CAAC;QAEF,6EAA6E;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACxD,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Handler } from '../index';
|
|
3
|
-
import type { MiddlewareError } from '../lib/MiddlewareError';
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import type { Handler } from '../index.js';
|
|
3
|
+
import type { MiddlewareError } from '../lib/MiddlewareError.js';
|
|
4
4
|
export type WithValidatedEnv<V> = {
|
|
5
5
|
validatedEnv: V;
|
|
6
6
|
};
|
|
7
|
-
export declare const middleware: <V0, V1>(schema:
|
|
7
|
+
export declare const middleware: <V0, V1>(schema: Schema.Schema<V0, V1>) => <I, O, E, R>(wrapped: Handler<I & WithValidatedEnv<V0>, O, E, R>) => Handler<I, O, E | MiddlewareError, R>;
|
|
8
|
+
//# sourceMappingURL=envValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envValidator.d.ts","sourceRoot":"","sources":["../../src/contrib/envValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,UAAU,GACpB,EAAE,EAAE,EAAE,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,MACrC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,CAoBpG,CAAC"}
|
|
@@ -1,45 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.middleware = void 0;
|
|
27
|
-
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const MiddlewareError_1 = require("../lib/MiddlewareError");
|
|
1
|
+
import { pipe, Schema } from 'effect';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import { toMiddlewareError } from '../lib/MiddlewareError.js';
|
|
29
4
|
const TAG = 'envValidator';
|
|
30
|
-
const middleware = (schema) => (wrapped) => (i) =>
|
|
5
|
+
export const middleware = (schema) => (wrapped) => (i) => pipe(
|
|
31
6
|
// Lift the input
|
|
32
|
-
|
|
7
|
+
Effect.succeed(i),
|
|
33
8
|
// Log before
|
|
34
|
-
|
|
9
|
+
Effect.tap(Effect.logDebug(`[${TAG}] IN`)),
|
|
35
10
|
// Parse the environment according to the given schema and inject into input
|
|
36
|
-
|
|
11
|
+
Effect.flatMap((_) => pipe(process.env, Schema.decodeUnknown(schema, { errors: 'all', onExcessProperty: 'ignore' }))), Effect.mapError(toMiddlewareError), Effect.map((validatedEnv) => ({
|
|
37
12
|
...i,
|
|
38
13
|
validatedEnv,
|
|
39
14
|
})),
|
|
40
15
|
// Call the next middleware in the stack
|
|
41
|
-
|
|
16
|
+
Effect.flatMap(wrapped),
|
|
42
17
|
// Log after
|
|
43
|
-
|
|
44
|
-
exports.middleware = middleware;
|
|
18
|
+
Effect.tap(Effect.logDebug(`[${TAG}] OUT`)));
|
|
45
19
|
//# sourceMappingURL=envValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envValidator.js","sourceRoot":"","sources":["../../src/contrib/envValidator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"envValidator.js","sourceRoot":"","sources":["../../src/contrib/envValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,GAAG,GAAG,cAAc,CAAC;AAM3B,MAAM,CAAC,MAAM,UAAU,GACrB,CAAS,MAA6B,EAAE,EAAE,CAC1C,CAAa,OAAmD,EAAyC,EAAE,CAC3G,CAAC,CAAI,EAAE,EAAE,CACP,IAAI;AACF,iBAAiB;AACjB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjB,aAAa;AACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AAC1C,4EAA4E;AAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAC/F,EACD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAClC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAgB,EAAE,EAAE,CAAC,CAAC;IAChC,GAAG,CAAC;IACJ,YAAY;CACb,CAAC,CAAC;AACH,wCAAwC;AACxC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AACvB,YAAY;AACZ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAC5C,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
export type In = {
|
|
3
3
|
foo: 'foo';
|
|
4
4
|
};
|
|
5
|
-
export declare const testSchema:
|
|
6
|
-
qux:
|
|
7
|
-
str: typeof
|
|
8
|
-
num: typeof
|
|
5
|
+
export declare const testSchema: Schema.Struct<{
|
|
6
|
+
qux: Schema.Literal<["qux_value"]>;
|
|
7
|
+
str: typeof Schema.String;
|
|
8
|
+
num: typeof Schema.NumberFromString;
|
|
9
9
|
}>;
|
|
10
|
+
//# sourceMappingURL=envValidator.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envValidator.test.d.ts","sourceRoot":"","sources":["../../src/contrib/envValidator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOtC,MAAM,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhC,eAAO,MAAM,UAAU;;;;EAIrB,CAAC"}
|