@ohos-ports/layer0-prefetch 4.20.0-beta.0 → 4.20.0-beta.1
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/node_modules/@layer0/core/README.md +50 -0
- package/node_modules/@layer0/core/build.d.ts +5 -0
- package/node_modules/@layer0/core/build.js +17 -0
- package/node_modules/@layer0/core/cache/Cache.d.ts +56 -0
- package/node_modules/@layer0/core/cache/Cache.js +138 -0
- package/node_modules/@layer0/core/cache/CacheKey.d.ts +52 -0
- package/node_modules/@layer0/core/cache/CacheKey.js +95 -0
- package/node_modules/@layer0/core/config.d.ts +53 -0
- package/node_modules/@layer0/core/config.js +113 -0
- package/node_modules/@layer0/core/constants.d.ts +214 -0
- package/node_modules/@layer0/core/constants.js +216 -0
- package/node_modules/@layer0/core/context.d.ts +38 -0
- package/node_modules/@layer0/core/context.js +98 -0
- package/node_modules/@layer0/core/default-app/all/layer0.config.js +60 -0
- package/node_modules/@layer0/core/default-app/js/routes.js +27 -0
- package/node_modules/@layer0/core/default-app/ts/routes.ts +27 -0
- package/node_modules/@layer0/core/deploy/DeploymentBuilder.d.ts +177 -0
- package/node_modules/@layer0/core/deploy/DeploymentBuilder.js +543 -0
- package/node_modules/@layer0/core/deploy/bundle-esbuild.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/bundle-esbuild.js +67 -0
- package/node_modules/@layer0/core/deploy/bundle-ncc.d.ts +8 -0
- package/node_modules/@layer0/core/deploy/bundle-ncc.js +30 -0
- package/node_modules/@layer0/core/deploy/bundle-nft.d.ts +7 -0
- package/node_modules/@layer0/core/deploy/bundle-nft.js +41 -0
- package/node_modules/@layer0/core/deploy/bundle-webpack.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/bundle-webpack.js +127 -0
- package/node_modules/@layer0/core/deploy/index.d.ts +19 -0
- package/node_modules/@layer0/core/deploy/index.js +6 -0
- package/node_modules/@layer0/core/deploy/listSources.d.ts +11 -0
- package/node_modules/@layer0/core/deploy/listSources.js +18 -0
- package/node_modules/@layer0/core/deploy/paths.d.ts +27 -0
- package/node_modules/@layer0/core/deploy/paths.js +33 -0
- package/node_modules/@layer0/core/deploy/resolveInPackage.d.ts +7 -0
- package/node_modules/@layer0/core/deploy/resolveInPackage.js +21 -0
- package/node_modules/@layer0/core/deploy/routeToFiles.d.ts +14 -0
- package/node_modules/@layer0/core/deploy/routeToFiles.js +24 -0
- package/node_modules/@layer0/core/dev/DevServerOptions.d.ts +33 -0
- package/node_modules/@layer0/core/dev/DevServerOptions.js +2 -0
- package/node_modules/@layer0/core/dev/createDevServer.d.ts +8 -0
- package/node_modules/@layer0/core/dev/createDevServer.js +114 -0
- package/node_modules/@layer0/core/dev/index.d.ts +3 -0
- package/node_modules/@layer0/core/dev/index.js +6 -0
- package/node_modules/@layer0/core/dev/runLocalApp.d.ts +8 -0
- package/node_modules/@layer0/core/dev/runLocalApp.js +73 -0
- package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.d.ts +11 -0
- package/node_modules/@layer0/core/dev/serverlessCompatibilityMiddleware.js +30 -0
- package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.d.ts +12 -0
- package/node_modules/@layer0/core/edge/EdgeErrorPageResponseWriter.js +22 -0
- package/node_modules/@layer0/core/edge/EdgeResponseWriter.d.ts +122 -0
- package/node_modules/@layer0/core/edge/EdgeResponseWriter.js +451 -0
- package/node_modules/@layer0/core/edge/createEdgeConfig.d.ts +16 -0
- package/node_modules/@layer0/core/edge/createEdgeConfig.js +284 -0
- package/node_modules/@layer0/core/environment.d.ts +24 -0
- package/node_modules/@layer0/core/environment.js +42 -0
- package/node_modules/@layer0/core/errors/BackendFetchError.d.ts +11 -0
- package/node_modules/@layer0/core/errors/BackendFetchError.js +17 -0
- package/node_modules/@layer0/core/errors/FrameworkBuildError.d.ts +7 -0
- package/node_modules/@layer0/core/errors/FrameworkBuildError.js +26 -0
- package/node_modules/@layer0/core/index.d.ts +3 -0
- package/node_modules/@layer0/core/index.js +9 -0
- package/node_modules/@layer0/core/init/addToPackageJson.d.ts +7 -0
- package/node_modules/@layer0/core/init/addToPackageJson.js +22 -0
- package/node_modules/@layer0/core/init/index.d.ts +2 -0
- package/node_modules/@layer0/core/init/index.js +6 -0
- package/node_modules/@layer0/core/init/init.d.ts +5 -0
- package/node_modules/@layer0/core/init/init.js +17 -0
- package/node_modules/@layer0/core/lambda/JSBackend.d.ts +30 -0
- package/node_modules/@layer0/core/lambda/JSBackend.js +51 -0
- package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.d.ts +8 -0
- package/node_modules/@layer0/core/lambda/RequestListenerJSBackend.js +19 -0
- package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.d.ts +17 -0
- package/node_modules/@layer0/core/lambda/adaptResponseEncodingToDownstream.js +132 -0
- package/node_modules/@layer0/core/lambda/consoleWrapper.d.ts +16 -0
- package/node_modules/@layer0/core/lambda/consoleWrapper.js +127 -0
- package/node_modules/@layer0/core/lambda/getBodyLoggingData.d.ts +10 -0
- package/node_modules/@layer0/core/lambda/getBodyLoggingData.js +108 -0
- package/node_modules/@layer0/core/lambda/handler.d.ts +1 -0
- package/node_modules/@layer0/core/lambda/handler.js +91 -0
- package/node_modules/@layer0/core/lambda/handler.js.map +7 -0
- package/node_modules/@layer0/core/lambda/innerHandler.d.ts +7 -0
- package/node_modules/@layer0/core/lambda/innerHandler.js +181 -0
- package/node_modules/@layer0/core/lambda/lambdaInstance.d.ts +29 -0
- package/node_modules/@layer0/core/lambda/lambdaInstance.js +71 -0
- package/node_modules/@layer0/core/lambda/reqResMapper.d.ts +24 -0
- package/node_modules/@layer0/core/lambda/reqResMapper.js +286 -0
- package/node_modules/@layer0/core/lambda/stdStreamsWrapper.d.ts +31 -0
- package/node_modules/@layer0/core/lambda/stdStreamsWrapper.js +196 -0
- package/node_modules/@layer0/core/lambda/toJSBackend.d.ts +10 -0
- package/node_modules/@layer0/core/lambda/toJSBackend.js +23 -0
- package/node_modules/@layer0/core/node_modules/esbuild/LICENSE.md +21 -0
- package/node_modules/@layer0/core/node_modules/esbuild/README.md +3 -0
- package/node_modules/@layer0/core/node_modules/esbuild/bin/esbuild +223 -0
- package/node_modules/@layer0/core/node_modules/esbuild/install.js +301 -0
- package/node_modules/@layer0/core/node_modules/esbuild/lib/main.d.ts +716 -0
- package/node_modules/@layer0/core/node_modules/esbuild/lib/main.js +2532 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/README.md +3 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/bin/esbuild +0 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/esbuild.wasm +0 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/package.json +28 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec.js +575 -0
- package/node_modules/@layer0/core/node_modules/esbuild/node_modules/@ohos-ports/esbuild-openharmony-arm64/wasm_exec_node.js +40 -0
- package/node_modules/@layer0/core/node_modules/esbuild/package.json +78 -0
- package/node_modules/@layer0/core/package.json +132 -0
- package/node_modules/@layer0/core/parser/parseRouter.d.ts +13 -0
- package/node_modules/@layer0/core/parser/parseRouter.js +77 -0
- package/node_modules/@layer0/core/plugins/PluginBase.d.ts +18 -0
- package/node_modules/@layer0/core/plugins/PluginBase.js +19 -0
- package/node_modules/@layer0/core/router/Backend.d.ts +69 -0
- package/node_modules/@layer0/core/router/Backend.js +176 -0
- package/node_modules/@layer0/core/router/BackendOptions.d.ts +11 -0
- package/node_modules/@layer0/core/router/BackendOptions.js +2 -0
- package/node_modules/@layer0/core/router/BaseResponseWriter.d.ts +65 -0
- package/node_modules/@layer0/core/router/BaseResponseWriter.js +81 -0
- package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.d.ts +4 -0
- package/node_modules/@layer0/core/router/BehindEdgeResponseWriterProxy.js +89 -0
- package/node_modules/@layer0/core/router/CacheManifest.d.ts +80 -0
- package/node_modules/@layer0/core/router/CacheManifest.js +83 -0
- package/node_modules/@layer0/core/router/CacheOptions.d.ts +171 -0
- package/node_modules/@layer0/core/router/CacheOptions.js +2 -0
- package/node_modules/@layer0/core/router/CustomCacheKey.d.ts +140 -0
- package/node_modules/@layer0/core/router/CustomCacheKey.js +272 -0
- package/node_modules/@layer0/core/router/GroupConfig.d.ts +7 -0
- package/node_modules/@layer0/core/router/GroupConfig.js +20 -0
- package/node_modules/@layer0/core/router/Groups.d.ts +7 -0
- package/node_modules/@layer0/core/router/Groups.js +21 -0
- package/node_modules/@layer0/core/router/Headers.d.ts +3 -0
- package/node_modules/@layer0/core/router/Headers.js +2 -0
- package/node_modules/@layer0/core/router/PathMatcher.d.ts +51 -0
- package/node_modules/@layer0/core/router/PathMatcher.js +73 -0
- package/node_modules/@layer0/core/router/Preload.d.ts +16 -0
- package/node_modules/@layer0/core/router/Preload.js +2 -0
- package/node_modules/@layer0/core/router/PreloadRequests.d.ts +23 -0
- package/node_modules/@layer0/core/router/PreloadRequests.js +66 -0
- package/node_modules/@layer0/core/router/Request.d.ts +74 -0
- package/node_modules/@layer0/core/router/Request.js +2 -0
- package/node_modules/@layer0/core/router/RequestContext.d.ts +12 -0
- package/node_modules/@layer0/core/router/RequestContext.js +11 -0
- package/node_modules/@layer0/core/router/Response.d.ts +55 -0
- package/node_modules/@layer0/core/router/Response.js +2 -0
- package/node_modules/@layer0/core/router/ResponseWriter.d.ts +1011 -0
- package/node_modules/@layer0/core/router/ResponseWriter.js +1341 -0
- package/node_modules/@layer0/core/router/Route.d.ts +124 -0
- package/node_modules/@layer0/core/router/Route.js +280 -0
- package/node_modules/@layer0/core/router/RouteCriteria.d.ts +68 -0
- package/node_modules/@layer0/core/router/RouteCriteria.js +2 -0
- package/node_modules/@layer0/core/router/RouteGroup.d.ts +157 -0
- package/node_modules/@layer0/core/router/RouteGroup.js +223 -0
- package/node_modules/@layer0/core/router/RouteGroupList.d.ts +45 -0
- package/node_modules/@layer0/core/router/RouteGroupList.js +73 -0
- package/node_modules/@layer0/core/router/Router.d.ts +439 -0
- package/node_modules/@layer0/core/router/Router.js +907 -0
- package/node_modules/@layer0/core/router/addBuiltInRoutes.d.ts +2 -0
- package/node_modules/@layer0/core/router/addBuiltInRoutes.js +58 -0
- package/node_modules/@layer0/core/router/addPreloadHeaders.d.ts +7 -0
- package/node_modules/@layer0/core/router/addPreloadHeaders.js +57 -0
- package/node_modules/@layer0/core/router/cacheManifestFromRouter.d.ts +6 -0
- package/node_modules/@layer0/core/router/cacheManifestFromRouter.js +85 -0
- package/node_modules/@layer0/core/router/createCustomCacheKey.d.ts +27 -0
- package/node_modules/@layer0/core/router/createCustomCacheKey.js +35 -0
- package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.d.ts +36 -0
- package/node_modules/@layer0/core/router/deriveSurrogateKeysFromJson.js +70 -0
- package/node_modules/@layer0/core/router/index.d.ts +11 -0
- package/node_modules/@layer0/core/router/index.js +17 -0
- package/node_modules/@layer0/core/router/interpolateParams.d.ts +21 -0
- package/node_modules/@layer0/core/router/interpolateParams.js +150 -0
- package/node_modules/@layer0/core/router/loadRouter.d.ts +13 -0
- package/node_modules/@layer0/core/router/loadRouter.js +29 -0
- package/node_modules/@layer0/core/router/mergeQueryString.d.ts +1 -0
- package/node_modules/@layer0/core/router/mergeQueryString.js +23 -0
- package/node_modules/@layer0/core/router/normalizeCriteria.d.ts +6 -0
- package/node_modules/@layer0/core/router/normalizeCriteria.js +20 -0
- package/node_modules/@layer0/core/router/stream.d.ts +12 -0
- package/node_modules/@layer0/core/router/stream.js +30 -0
- package/node_modules/@layer0/core/router/universalRouteUtils.d.ts +55 -0
- package/node_modules/@layer0/core/router/universalRouteUtils.js +114 -0
- package/node_modules/@layer0/core/router/validateWriter.d.ts +41 -0
- package/node_modules/@layer0/core/router/validateWriter.js +120 -0
- package/node_modules/@layer0/core/serverless.yml +30 -0
- package/node_modules/@layer0/core/source.d.ts +9 -0
- package/node_modules/@layer0/core/source.js +17 -0
- package/node_modules/@layer0/core/test-utils/MockRequest.d.ts +15 -0
- package/node_modules/@layer0/core/test-utils/MockRequest.js +36 -0
- package/node_modules/@layer0/core/test-utils/MockResponse.d.ts +7 -0
- package/node_modules/@layer0/core/test-utils/MockResponse.js +24 -0
- package/node_modules/@layer0/core/test-utils/expect-extend.d.ts +1 -0
- package/node_modules/@layer0/core/test-utils/expect-extend.js +11 -0
- package/node_modules/@layer0/core/test-utils/index.d.ts +4 -0
- package/node_modules/@layer0/core/test-utils/index.js +11 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheBrowser.js +45 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheEdge.js +38 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeCachedByTheServiceWorker.js +45 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.d.ts +20 -0
- package/node_modules/@layer0/core/test-utils/matchers/toBeServedStale.js +50 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.d.ts +18 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveBody.js +40 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.d.ts +19 -0
- package/node_modules/@layer0/core/test-utils/matchers/toHaveHeader.js +43 -0
- package/node_modules/@layer0/core/test-utils/matchers.d.ts +6 -0
- package/node_modules/@layer0/core/test-utils/matchers.js +18 -0
- package/node_modules/@layer0/core/test-utils/utils/createRouteMock.d.ts +21 -0
- package/node_modules/@layer0/core/test-utils/utils/createRouteMock.js +27 -0
- package/node_modules/@layer0/core/test-utils/utils/getBackend.d.ts +13 -0
- package/node_modules/@layer0/core/test-utils/utils/getBackend.js +30 -0
- package/node_modules/@layer0/core/test-utils/utils/getMessage.d.ts +1 -0
- package/node_modules/@layer0/core/test-utils/utils/getMessage.js +16 -0
- package/node_modules/@layer0/core/test-utils/utils/runRoute.d.ts +10 -0
- package/node_modules/@layer0/core/test-utils/utils/runRoute.js +39 -0
- package/node_modules/@layer0/core/timing.d.ts +115 -0
- package/node_modules/@layer0/core/timing.js +200 -0
- package/node_modules/@layer0/core/transform/index.d.ts +1 -0
- package/node_modules/@layer0/core/transform/index.js +4 -0
- package/node_modules/@layer0/core/transform/transformMethod.d.ts +40 -0
- package/node_modules/@layer0/core/transform/transformMethod.js +58 -0
- package/node_modules/@layer0/core/types.d.ts +102 -0
- package/node_modules/@layer0/core/types.js +30 -0
- package/node_modules/@layer0/core/utils/Tasks.d.ts +32 -0
- package/node_modules/@layer0/core/utils/Tasks.js +80 -0
- package/node_modules/@layer0/core/utils/Validator.d.ts +18 -0
- package/node_modules/@layer0/core/utils/Validator.js +178 -0
- package/node_modules/@layer0/core/utils/bindParamsToPath.d.ts +15 -0
- package/node_modules/@layer0/core/utils/bindParamsToPath.js +49 -0
- package/node_modules/@layer0/core/utils/convertParamsToBackReferences.d.ts +16 -0
- package/node_modules/@layer0/core/utils/convertParamsToBackReferences.js +45 -0
- package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.d.ts +7 -0
- package/node_modules/@layer0/core/utils/convertStringMatcherToRegex.js +26 -0
- package/node_modules/@layer0/core/utils/decode.d.ts +9 -0
- package/node_modules/@layer0/core/utils/decode.js +44 -0
- package/node_modules/@layer0/core/utils/esImport.d.ts +1 -0
- package/node_modules/@layer0/core/utils/esImport.js +9 -0
- package/node_modules/@layer0/core/utils/fs.d.ts +1 -0
- package/node_modules/@layer0/core/utils/fs.js +7 -0
- package/node_modules/@layer0/core/utils/get.d.ts +6 -0
- package/node_modules/@layer0/core/utils/get.js +19 -0
- package/node_modules/@layer0/core/utils/getPackageVersion.d.ts +7 -0
- package/node_modules/@layer0/core/utils/getPackageVersion.js +19 -0
- package/node_modules/@layer0/core/utils/has.d.ts +6 -0
- package/node_modules/@layer0/core/utils/has.js +15 -0
- package/node_modules/@layer0/core/utils/identity.d.ts +7 -0
- package/node_modules/@layer0/core/utils/identity.js +12 -0
- package/node_modules/@layer0/core/utils/index.d.ts +1 -0
- package/node_modules/@layer0/core/utils/index.js +4 -0
- package/node_modules/@layer0/core/utils/isEmpty.d.ts +6 -0
- package/node_modules/@layer0/core/utils/isEmpty.js +20 -0
- package/node_modules/@layer0/core/utils/isString.d.ts +1 -0
- package/node_modules/@layer0/core/utils/isString.js +6 -0
- package/node_modules/@layer0/core/utils/logo.d.ts +5 -0
- package/node_modules/@layer0/core/utils/logo.js +27 -0
- package/node_modules/@layer0/core/utils/mapValues.d.ts +7 -0
- package/node_modules/@layer0/core/utils/mapValues.js +16 -0
- package/node_modules/@layer0/core/utils/minBy.d.ts +8 -0
- package/node_modules/@layer0/core/utils/minBy.js +41 -0
- package/node_modules/@layer0/core/utils/nonWebpackRequire.d.ts +11 -0
- package/node_modules/@layer0/core/utils/nonWebpackRequire.js +28 -0
- package/node_modules/@layer0/core/utils/packageUtils.d.ts +12 -0
- package/node_modules/@layer0/core/utils/packageUtils.js +22 -0
- package/node_modules/@layer0/core/utils/ports.d.ts +5 -0
- package/node_modules/@layer0/core/utils/ports.js +7 -0
- package/node_modules/@layer0/core/utils/readBody.d.ts +7 -0
- package/node_modules/@layer0/core/utils/readBody.js +15 -0
- package/node_modules/@layer0/core/utils/readRawBody.d.ts +9 -0
- package/node_modules/@layer0/core/utils/readRawBody.js +21 -0
- package/node_modules/@layer0/core/utils/regExpEscape.d.ts +12 -0
- package/node_modules/@layer0/core/utils/regExpEscape.js +20 -0
- package/node_modules/@layer0/core/utils/requireInternal.d.ts +7 -0
- package/node_modules/@layer0/core/utils/requireInternal.js +24 -0
- package/node_modules/@layer0/core/utils/set.d.ts +10 -0
- package/node_modules/@layer0/core/utils/set.js +21 -0
- package/node_modules/@layer0/core/utils/toEdgeRegex.d.ts +11 -0
- package/node_modules/@layer0/core/utils/toEdgeRegex.js +23 -0
- package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.d.ts +12 -0
- package/node_modules/@layer0/core/utils/toHttpMethodMatchRegex.js +17 -0
- package/node_modules/@layer0/core/utils/toLower.d.ts +1 -0
- package/node_modules/@layer0/core/utils/toLower.js +9 -0
- package/node_modules/@layer0/core/utils/validateBackends.d.ts +5 -0
- package/node_modules/@layer0/core/utils/validateBackends.js +30 -0
- package/node_modules/@layer0/core/utils/watch.d.ts +10 -0
- package/node_modules/@layer0/core/utils/watch.js +17 -0
- package/package.json +47 -3
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
const getMessage_1 = __importDefault(require("../utils/getMessage"));
|
|
8
|
+
/**
|
|
9
|
+
* Matches the edge cache-control header in the response with an optional duration
|
|
10
|
+
*
|
|
11
|
+
* **Example**
|
|
12
|
+
* ```js
|
|
13
|
+
* expect(response).toBeCachedByTheEdge()
|
|
14
|
+
* ...
|
|
15
|
+
* expect(response).toBeCachedByTheEdge(60*60*24)
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param {MockResponse} received The mocked response
|
|
19
|
+
* @param {Number} duration Optional - the duration (in seconds) the response is expected to be cached for
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function toBeCachedByTheEdge(received, duration) {
|
|
23
|
+
const response = received;
|
|
24
|
+
const request = response.request;
|
|
25
|
+
const header = response.getHeader(constants_1.HTTP_HEADERS.x0CacheControl);
|
|
26
|
+
let pass = !!header;
|
|
27
|
+
if (header && duration) {
|
|
28
|
+
pass = new RegExp(`max-age=${duration}`).test(header);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
message: () => getMessage_1.default(
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
this, `toBeCachedByTheEdge${duration ? 'For' : ''}`, `'${request.path}' [[to]] be cached by the edge${duration ? ` for ${duration}ms` : ''}`, header),
|
|
34
|
+
pass,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.toBeCachedByTheEdge = toBeCachedByTheEdge;
|
|
38
|
+
exports.toBeCachedByTheEdgeFor = toBeCachedByTheEdge;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches the service-worker cache-control header in the response with an optional duration
|
|
3
|
+
*
|
|
4
|
+
* **Example**
|
|
5
|
+
* ```js
|
|
6
|
+
* expect(response).toBeCachedByTheServiceWorker()
|
|
7
|
+
* ...
|
|
8
|
+
* expect(response).toBeCachedByTheServiceWorker(60*60*24)
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* @param {MockResponse} received The mocked response
|
|
12
|
+
* @param {Number} duration Optional - the duration (in seconds) the response is expected to be cached for
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare function toBeCachedByTheServiceWorker(received: any, duration?: number): {
|
|
16
|
+
message: () => string;
|
|
17
|
+
pass: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare const toBeCachedByTheServiceWorkerFor: typeof toBeCachedByTheServiceWorker;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
const getMessage_1 = __importDefault(require("../utils/getMessage"));
|
|
8
|
+
/**
|
|
9
|
+
* Matches the service-worker cache-control header in the response with an optional duration
|
|
10
|
+
*
|
|
11
|
+
* **Example**
|
|
12
|
+
* ```js
|
|
13
|
+
* expect(response).toBeCachedByTheServiceWorker()
|
|
14
|
+
* ...
|
|
15
|
+
* expect(response).toBeCachedByTheServiceWorker(60*60*24)
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param {MockResponse} received The mocked response
|
|
19
|
+
* @param {Number} duration Optional - the duration (in seconds) the response is expected to be cached for
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function toBeCachedByTheServiceWorker(received, duration) {
|
|
23
|
+
const response = received;
|
|
24
|
+
const request = response.request;
|
|
25
|
+
const header = response.getHeader(constants_1.HTTP_HEADERS.xSwCacheControl);
|
|
26
|
+
let pass = !!header;
|
|
27
|
+
if (header) {
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
if (this.isNot) {
|
|
30
|
+
pass = !/no-cache/.test(header);
|
|
31
|
+
duration = 0;
|
|
32
|
+
}
|
|
33
|
+
else if (pass && duration) {
|
|
34
|
+
pass = new RegExp(`max-age=${duration}`).test(header);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
message: () => getMessage_1.default(
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
this, `toBeCachedByTheServiceWorker${duration ? 'For' : ''}`, `'${request.path}' [[to]] be cached by the service worker${duration ? ` for ${duration}ms` : ''}`, header),
|
|
41
|
+
pass,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
exports.toBeCachedByTheServiceWorker = toBeCachedByTheServiceWorker;
|
|
45
|
+
exports.toBeCachedByTheServiceWorkerFor = toBeCachedByTheServiceWorker;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches the edge cache-control header for `stale-while-revalidate` in the
|
|
3
|
+
* response with an optional duration
|
|
4
|
+
*
|
|
5
|
+
* **Example**
|
|
6
|
+
* ```js
|
|
7
|
+
* expect(response).toBeServedStale()
|
|
8
|
+
* ...
|
|
9
|
+
* expect(response).toBeServedStale(60*60*24)
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param {MockResponse} received The mocked response
|
|
13
|
+
* @param {Number} duration Optional - the duration (in seconds) the response is expected to be stale for
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function toBeServedStale(received: any, duration?: number): {
|
|
17
|
+
message: () => string;
|
|
18
|
+
pass: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare const toBeServedStaleFor: typeof toBeServedStale;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
const getMessage_1 = __importDefault(require("../utils/getMessage"));
|
|
8
|
+
/**
|
|
9
|
+
* Matches the edge cache-control header for `stale-while-revalidate` in the
|
|
10
|
+
* response with an optional duration
|
|
11
|
+
*
|
|
12
|
+
* **Example**
|
|
13
|
+
* ```js
|
|
14
|
+
* expect(response).toBeServedStale()
|
|
15
|
+
* ...
|
|
16
|
+
* expect(response).toBeServedStale(60*60*24)
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param {MockResponse} received The mocked response
|
|
20
|
+
* @param {Number} duration Optional - the duration (in seconds) the response is expected to be stale for
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function toBeServedStale(received, duration) {
|
|
24
|
+
const response = received;
|
|
25
|
+
const request = response.request;
|
|
26
|
+
const header = response.getHeader(constants_1.HTTP_HEADERS.x0CacheControl);
|
|
27
|
+
const swrName = 'stale-while-revalidate';
|
|
28
|
+
const hasDuration = typeof duration !== 'undefined';
|
|
29
|
+
let pass = !!header, label, message;
|
|
30
|
+
if (header) {
|
|
31
|
+
if (!hasDuration) {
|
|
32
|
+
pass = new RegExp(`${swrName}`).test(header);
|
|
33
|
+
label = 'toBeServedStale';
|
|
34
|
+
message = `'${request.path}' [[to]] be served stale`;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
pass = new RegExp(`${swrName}=${duration}`).test(header);
|
|
38
|
+
label = 'toBeServedStaleFor';
|
|
39
|
+
message = `'${request.path}' [[to]] be served stale for ${duration}s`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
message: () => getMessage_1.default(
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
this, label, message, header),
|
|
46
|
+
pass,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
exports.toBeServedStale = toBeServedStale;
|
|
50
|
+
exports.toBeServedStaleFor = toBeServedStale;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches the response body with the passed string or pattern
|
|
3
|
+
*
|
|
4
|
+
* **Example**
|
|
5
|
+
* ```js
|
|
6
|
+
* expect(response).toHaveBody('<h1>my title</h1>')
|
|
7
|
+
* ...
|
|
8
|
+
* expect(response).toHaveBody(/<h1>.*<\/h1>/)
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* @param {MockResponse} received The mocked response
|
|
12
|
+
* @param {String|RegExp} body The value or pattern to match in the response body
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare function toHaveBody(received: any, body: string | RegExp): {
|
|
16
|
+
message: () => string;
|
|
17
|
+
pass: boolean;
|
|
18
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isString_1 = __importDefault(require("../../utils/isString"));
|
|
7
|
+
const getMessage_1 = __importDefault(require("../utils/getMessage"));
|
|
8
|
+
/**
|
|
9
|
+
* Matches the response body with the passed string or pattern
|
|
10
|
+
*
|
|
11
|
+
* **Example**
|
|
12
|
+
* ```js
|
|
13
|
+
* expect(response).toHaveBody('<h1>my title</h1>')
|
|
14
|
+
* ...
|
|
15
|
+
* expect(response).toHaveBody(/<h1>.*<\/h1>/)
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param {MockResponse} received The mocked response
|
|
19
|
+
* @param {String|RegExp} body The value or pattern to match in the response body
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function toHaveBody(received, body) {
|
|
23
|
+
const response = received;
|
|
24
|
+
const request = response.request;
|
|
25
|
+
const { body: resBody } = response;
|
|
26
|
+
let pass;
|
|
27
|
+
if (isString_1.default(body)) {
|
|
28
|
+
pass = resBody === body;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
pass = body.test(resBody);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
message: () => getMessage_1.default(
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
this, `toHaveBody`, `'${request.path}' [[to]] have body ${body}`, resBody),
|
|
37
|
+
pass,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.toHaveBody = toHaveBody;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches the response header with the passed string or pattern
|
|
3
|
+
*
|
|
4
|
+
* **Example**
|
|
5
|
+
* ```js
|
|
6
|
+
* expect(response).toHaveHeader('x-my-header', 'foo')
|
|
7
|
+
* ...
|
|
8
|
+
* expect(response).toHaveHeader('x-my-header', /foo|bar/)
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* @param {MockResponse} received The mocked response
|
|
12
|
+
* @param {String} name The name of the header
|
|
13
|
+
* @param {String|RegExp} [value] The value or pattern to match
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function toHaveHeader(received: any, name: string, value?: string | RegExp): {
|
|
17
|
+
message: () => string;
|
|
18
|
+
pass: boolean;
|
|
19
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isString_1 = __importDefault(require("../../utils/isString"));
|
|
7
|
+
const getMessage_1 = __importDefault(require("../utils/getMessage"));
|
|
8
|
+
/**
|
|
9
|
+
* Matches the response header with the passed string or pattern
|
|
10
|
+
*
|
|
11
|
+
* **Example**
|
|
12
|
+
* ```js
|
|
13
|
+
* expect(response).toHaveHeader('x-my-header', 'foo')
|
|
14
|
+
* ...
|
|
15
|
+
* expect(response).toHaveHeader('x-my-header', /foo|bar/)
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param {MockResponse} received The mocked response
|
|
19
|
+
* @param {String} name The name of the header
|
|
20
|
+
* @param {String|RegExp} [value] The value or pattern to match
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function toHaveHeader(received, name, value) {
|
|
24
|
+
const response = received;
|
|
25
|
+
const request = response.request;
|
|
26
|
+
const header = response.getHeader(name);
|
|
27
|
+
let pass = !!header;
|
|
28
|
+
if (header && value) {
|
|
29
|
+
if (isString_1.default(value)) {
|
|
30
|
+
pass = header === value;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
pass = value.test(header);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
message: () => getMessage_1.default(
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
this, `toHaveHeader`, `'${request.path}' [[to]] have header ${name}${value ? `=${value}` : ''}`, header),
|
|
40
|
+
pass,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
exports.toHaveHeader = toHaveHeader;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { toHaveHeader } from './matchers/toHaveHeader';
|
|
2
|
+
export { toBeCachedByTheEdge, toBeCachedByTheEdgeFor } from './matchers/toBeCachedByTheEdge';
|
|
3
|
+
export { toBeCachedByTheBrowser, toBeCachedByTheBrowserFor, } from './matchers/toBeCachedByTheBrowser';
|
|
4
|
+
export { toBeCachedByTheServiceWorker, toBeCachedByTheServiceWorkerFor, } from './matchers/toBeCachedByTheServiceWorker';
|
|
5
|
+
export { toBeServedStale, toBeServedStaleFor } from './matchers/toBeServedStale';
|
|
6
|
+
export { toHaveBody } from './matchers/toHaveBody';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var toHaveHeader_1 = require("./matchers/toHaveHeader");
|
|
4
|
+
exports.toHaveHeader = toHaveHeader_1.toHaveHeader;
|
|
5
|
+
var toBeCachedByTheEdge_1 = require("./matchers/toBeCachedByTheEdge");
|
|
6
|
+
exports.toBeCachedByTheEdge = toBeCachedByTheEdge_1.toBeCachedByTheEdge;
|
|
7
|
+
exports.toBeCachedByTheEdgeFor = toBeCachedByTheEdge_1.toBeCachedByTheEdgeFor;
|
|
8
|
+
var toBeCachedByTheBrowser_1 = require("./matchers/toBeCachedByTheBrowser");
|
|
9
|
+
exports.toBeCachedByTheBrowser = toBeCachedByTheBrowser_1.toBeCachedByTheBrowser;
|
|
10
|
+
exports.toBeCachedByTheBrowserFor = toBeCachedByTheBrowser_1.toBeCachedByTheBrowserFor;
|
|
11
|
+
var toBeCachedByTheServiceWorker_1 = require("./matchers/toBeCachedByTheServiceWorker");
|
|
12
|
+
exports.toBeCachedByTheServiceWorker = toBeCachedByTheServiceWorker_1.toBeCachedByTheServiceWorker;
|
|
13
|
+
exports.toBeCachedByTheServiceWorkerFor = toBeCachedByTheServiceWorker_1.toBeCachedByTheServiceWorkerFor;
|
|
14
|
+
var toBeServedStale_1 = require("./matchers/toBeServedStale");
|
|
15
|
+
exports.toBeServedStale = toBeServedStale_1.toBeServedStale;
|
|
16
|
+
exports.toBeServedStaleFor = toBeServedStale_1.toBeServedStaleFor;
|
|
17
|
+
var toHaveBody_1 = require("./matchers/toHaveBody");
|
|
18
|
+
exports.toHaveBody = toHaveBody_1.toHaveBody;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import MockRequest from '../MockRequest';
|
|
2
|
+
import MockResponse from '../MockResponse';
|
|
3
|
+
import Headers from '../../router/Headers';
|
|
4
|
+
export interface MockRun {
|
|
5
|
+
request: MockRequest;
|
|
6
|
+
response: MockResponse;
|
|
7
|
+
}
|
|
8
|
+
interface RequestOptions {
|
|
9
|
+
path: string;
|
|
10
|
+
method?: string;
|
|
11
|
+
headers?: Headers;
|
|
12
|
+
body?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates a mock Request and Response object the router will
|
|
16
|
+
* consume when running the specified request
|
|
17
|
+
* @param options
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export default function createRouteMock(options: string | RequestOptions): MockRun;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const MockRequest_1 = __importDefault(require("../MockRequest"));
|
|
7
|
+
const MockResponse_1 = __importDefault(require("../MockResponse"));
|
|
8
|
+
const isString_1 = __importDefault(require("../../utils/isString"));
|
|
9
|
+
/**
|
|
10
|
+
* Creates a mock Request and Response object the router will
|
|
11
|
+
* consume when running the specified request
|
|
12
|
+
* @param options
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
function createRouteMock(options) {
|
|
16
|
+
const requestOptions = {};
|
|
17
|
+
if (isString_1.default(options)) {
|
|
18
|
+
Object.assign(requestOptions, { path: options, url: options });
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
Object.assign(requestOptions, options);
|
|
22
|
+
}
|
|
23
|
+
const request = new MockRequest_1.default(requestOptions);
|
|
24
|
+
const response = new MockResponse_1.default({ request });
|
|
25
|
+
return { request, response };
|
|
26
|
+
}
|
|
27
|
+
exports.default = createRouteMock;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the default host for the app
|
|
3
|
+
*/
|
|
4
|
+
export declare function appHost(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Gets the default host for static assets
|
|
7
|
+
*/
|
|
8
|
+
export declare function staticHost(): string;
|
|
9
|
+
/**
|
|
10
|
+
* Gets the host for the given backend name
|
|
11
|
+
* @param backend
|
|
12
|
+
*/
|
|
13
|
+
export declare function backendHost(backend: string): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const config_1 = __importDefault(require("../../config"));
|
|
7
|
+
const ports_1 = require("../../utils/ports");
|
|
8
|
+
/**
|
|
9
|
+
* Gets the default host for the app
|
|
10
|
+
*/
|
|
11
|
+
function appHost() {
|
|
12
|
+
return `${ports_1.localhost}:${ports_1.jsPort}`;
|
|
13
|
+
}
|
|
14
|
+
exports.appHost = appHost;
|
|
15
|
+
/**
|
|
16
|
+
* Gets the default host for static assets
|
|
17
|
+
*/
|
|
18
|
+
function staticHost() {
|
|
19
|
+
return `${ports_1.localhost}:${ports_1.assetPort}`;
|
|
20
|
+
}
|
|
21
|
+
exports.staticHost = staticHost;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the host for the given backend name
|
|
24
|
+
* @param backend
|
|
25
|
+
*/
|
|
26
|
+
function backendHost(backend) {
|
|
27
|
+
const { domainOrIp, port } = config_1.default.all.backends[backend];
|
|
28
|
+
return port ? `${domainOrIp}:${port}` : domainOrIp;
|
|
29
|
+
}
|
|
30
|
+
exports.backendHost = backendHost;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getMessage(context: any, matcher: string, label: string, received: any): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
function getMessage(context, matcher, label, received) {
|
|
8
|
+
const to = context.isNot ? 'not to' : 'to';
|
|
9
|
+
label = label.replace(/\[\[to\]\]/g, to);
|
|
10
|
+
return [
|
|
11
|
+
`Matcher: ${context.isNot ? '.not' : ''}.${matcher}`,
|
|
12
|
+
chalk_1.default.green(`${chalk_1.default.bold('Expected:')} ${label}`),
|
|
13
|
+
chalk_1.default.red(`${chalk_1.default.bold('Received:')} ${received}`),
|
|
14
|
+
].join('\n');
|
|
15
|
+
}
|
|
16
|
+
exports.default = getMessage;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Router from '../../router/Router';
|
|
2
|
+
import { MockRun } from './createRouteMock';
|
|
3
|
+
import MockResponse from '../MockResponse';
|
|
4
|
+
/**
|
|
5
|
+
* Runs the provided path against the router, returning the mocked response
|
|
6
|
+
* @param router A router instance
|
|
7
|
+
* @param path The path, or result from `createRouteMock`, to run on the router
|
|
8
|
+
* @returns Promise<MockResponse>
|
|
9
|
+
*/
|
|
10
|
+
export default function runRoute(router: Router, path: string | MockRun): Promise<MockResponse>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const createRouteMock_1 = __importDefault(require("./createRouteMock"));
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const ports_1 = require("../../utils/ports");
|
|
9
|
+
/**
|
|
10
|
+
* Runs the provided path against the router, returning the mocked response
|
|
11
|
+
* @param router A router instance
|
|
12
|
+
* @param path The path, or result from `createRouteMock`, to run on the router
|
|
13
|
+
* @returns Promise<MockResponse>
|
|
14
|
+
*/
|
|
15
|
+
async function runRoute(router, path) {
|
|
16
|
+
let request, response;
|
|
17
|
+
if (typeof path === 'string') {
|
|
18
|
+
;
|
|
19
|
+
({ request, response } = createRouteMock_1.default(path));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
;
|
|
23
|
+
({ request, response } = path);
|
|
24
|
+
}
|
|
25
|
+
router
|
|
26
|
+
.setBackend(constants_1.BACKENDS.permanentStatic, {
|
|
27
|
+
domainOrIp: ports_1.localhost,
|
|
28
|
+
port: ports_1.assetPort,
|
|
29
|
+
})
|
|
30
|
+
.setBackend(constants_1.BACKENDS.static, {
|
|
31
|
+
domainOrIp: ports_1.localhost,
|
|
32
|
+
port: ports_1.assetPort,
|
|
33
|
+
})
|
|
34
|
+
.setBackend(constants_1.BACKENDS.js, { domainOrIp: ports_1.localhost, port: ports_1.jsPort });
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
await router.run(request, response);
|
|
37
|
+
return response;
|
|
38
|
+
}
|
|
39
|
+
exports.default = runRoute;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import Response from './router/Response';
|
|
2
|
+
export declare const NOT_ENDED_VALUE = "na";
|
|
3
|
+
export declare class InternalTiming {
|
|
4
|
+
/**
|
|
5
|
+
* The name assigned to the timing in response headers
|
|
6
|
+
*/
|
|
7
|
+
readonly name: string;
|
|
8
|
+
/**
|
|
9
|
+
* The time the timing started
|
|
10
|
+
*/
|
|
11
|
+
startTime?: Date;
|
|
12
|
+
/**
|
|
13
|
+
* The number of milliseconds elapsed
|
|
14
|
+
*/
|
|
15
|
+
duration: number;
|
|
16
|
+
/**
|
|
17
|
+
* A discrete value for the timing, for example "hit" for "ecc"
|
|
18
|
+
*/
|
|
19
|
+
discreteValue?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Set to true if the timing has been ended
|
|
22
|
+
*/
|
|
23
|
+
ended: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @param name The name of the timing component that will be reported in the `x-0-user-t` header
|
|
26
|
+
*/
|
|
27
|
+
constructor(name: string, internal?: boolean);
|
|
28
|
+
/**
|
|
29
|
+
* Starts the timing.
|
|
30
|
+
* @returns A self-reference, suitable for chaining
|
|
31
|
+
*/
|
|
32
|
+
start(): this;
|
|
33
|
+
/**
|
|
34
|
+
* Sets the discrete value for this timing
|
|
35
|
+
* @param discreteValue
|
|
36
|
+
* @returns A self-reference, suitable for chaining
|
|
37
|
+
*/
|
|
38
|
+
set(discreteValue: string): this;
|
|
39
|
+
/**
|
|
40
|
+
* Ends the timing.
|
|
41
|
+
* @returns A self-reference, suitable for chaining
|
|
42
|
+
*/
|
|
43
|
+
end(): this;
|
|
44
|
+
/**
|
|
45
|
+
* Convenience method that is the same as `end`, but meant to indicate
|
|
46
|
+
* that the timing may be resumed later
|
|
47
|
+
*/
|
|
48
|
+
pause(): this;
|
|
49
|
+
/**
|
|
50
|
+
* Convenience method that is the same as `start`, but meant to indicate
|
|
51
|
+
* that the timing has been paused.
|
|
52
|
+
*/
|
|
53
|
+
resume(): this;
|
|
54
|
+
/**
|
|
55
|
+
* Gets the value of the timing for response headers. Will be 'na' if not started, otherwise
|
|
56
|
+
* the numeric duration in milliseconds.
|
|
57
|
+
*/
|
|
58
|
+
get value(): string | number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A higher order function that wraps the provided function in a request context with user
|
|
62
|
+
* and internal timings reset
|
|
63
|
+
* @private
|
|
64
|
+
* @param handler
|
|
65
|
+
*/
|
|
66
|
+
export declare function withTimings<T extends Promise<any>>(handler: (...args: any[]) => T): (...args: any[]) => any;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the value of the internal timing with the specified name
|
|
69
|
+
* @private
|
|
70
|
+
* @param name The name of an internal timing, for example "ecc"
|
|
71
|
+
*/
|
|
72
|
+
export declare function getInternalTiming(name: string): string | number | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Adds x-0-t, x-0-user-t, and server-timing headers to the response
|
|
75
|
+
* @private
|
|
76
|
+
* @param response
|
|
77
|
+
*/
|
|
78
|
+
export declare function addTimings(response: Response): void;
|
|
79
|
+
/**
|
|
80
|
+
* Allows you to track the performance of your code and asynchronous operations such as fetches.
|
|
81
|
+
* Timings will be returned as a comma delimited list in the `x-0-user-t` header.
|
|
82
|
+
*
|
|
83
|
+
* ** Example **
|
|
84
|
+
*
|
|
85
|
+
* ```js
|
|
86
|
+
* import Timing from '@layer0/core/timing'
|
|
87
|
+
*
|
|
88
|
+
* const timing = new Timing('fetch').start()
|
|
89
|
+
* const result = await fetch('http://my-api.com/products/1')
|
|
90
|
+
* timing.end() // will result in `x-0-user-t: fetch=(millis)` response header
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* If a timing is started but not finished by the time the response is sent, the value will be `na`.
|
|
94
|
+
*/
|
|
95
|
+
export default class Timing extends InternalTiming {
|
|
96
|
+
constructor(name: string);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Names for x-0-t components
|
|
100
|
+
*/
|
|
101
|
+
export declare enum InternalNames {
|
|
102
|
+
edgeCache = "ecc",
|
|
103
|
+
transformRequest = "wa",
|
|
104
|
+
transformResponse = "wz",
|
|
105
|
+
routeMatching = "wr",
|
|
106
|
+
proxying = "wp"
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Values for edgeCache component of x-0-t
|
|
110
|
+
*/
|
|
111
|
+
export declare enum CacheValue {
|
|
112
|
+
hit = "hit",
|
|
113
|
+
pass = "pass",
|
|
114
|
+
cached = "cached"
|
|
115
|
+
}
|