@fluidframework/request-handler 2.0.0-internal.6.4.0 → 2.0.0-internal.7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/requestHandlers.d.ts +5 -1
- package/dist/requestHandlers.d.ts.map +1 -1
- package/dist/requestHandlers.js +7 -3
- package/dist/requestHandlers.js.map +1 -1
- package/dist/runtimeRequestHandlerBuilder.d.ts +2 -0
- package/dist/runtimeRequestHandlerBuilder.d.ts.map +1 -1
- package/dist/runtimeRequestHandlerBuilder.js +5 -0
- package/dist/runtimeRequestHandlerBuilder.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/requestHandlers.d.ts +5 -1
- package/lib/requestHandlers.d.ts.map +1 -1
- package/lib/requestHandlers.js +7 -3
- package/lib/requestHandlers.js.map +1 -1
- package/lib/runtimeRequestHandlerBuilder.d.ts +2 -0
- package/lib/runtimeRequestHandlerBuilder.d.ts.map +1 -1
- package/lib/runtimeRequestHandlerBuilder.js +5 -0
- package/lib/runtimeRequestHandlerBuilder.js.map +1 -1
- package/package.json +12 -12
- package/src/requestHandlers.ts +6 -0
- package/src/runtimeRequestHandlerBuilder.ts +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @fluidframework/request-handler
|
|
2
2
|
|
|
3
|
+
## 2.0.0-internal.7.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- DEPRECATED: container-runtime: requestHandlers are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
8
|
+
|
|
9
|
+
The concept of `requestHandlers` has been deprecated. Please migrate all usage of the following APIs to the new `entryPoint` pattern:
|
|
10
|
+
|
|
11
|
+
- `requestHandler` property in `ContainerRuntime.loadRuntime(...)`
|
|
12
|
+
- `RuntimeRequestHandler`
|
|
13
|
+
- `RuntimeRequestHandlerBuilder`
|
|
14
|
+
- `defaultFluidObjectRequestHandler(...)`
|
|
15
|
+
- `defaultRouteRequestHandler(...)`
|
|
16
|
+
- `mountableViewRequestHandler(...)`
|
|
17
|
+
- `buildRuntimeRequestHandler(...)`
|
|
18
|
+
- `createFluidObjectResponse(...)`
|
|
19
|
+
- `handleFromLegacyUri(...)`
|
|
20
|
+
- `rootDataStoreRequestHandler(...)`
|
|
21
|
+
|
|
22
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
23
|
+
|
|
24
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
25
|
+
|
|
26
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
27
|
+
|
|
3
28
|
## 2.0.0-internal.6.4.0
|
|
4
29
|
|
|
5
30
|
### Minor Changes
|
|
@@ -11,19 +11,23 @@ import { RequestParser } from "@fluidframework/runtime-utils";
|
|
|
11
11
|
* if it does not apply. These handlers are called in series, so there may be other handlers before or after.
|
|
12
12
|
* A handler should only return error if the request is for a route the handler owns, and there is a problem with
|
|
13
13
|
* the route, or fulling the specific request.
|
|
14
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
14
15
|
*/
|
|
15
|
-
export
|
|
16
|
+
export type RuntimeRequestHandler = (request: RequestParser, runtime: IContainerRuntime) => Promise<IResponse | undefined>;
|
|
16
17
|
/**
|
|
17
18
|
* A request handler to expose access to all root data stores in the container by id.
|
|
18
19
|
* @param request - the request for the root data store. The first path part must be the data store's ID.
|
|
19
20
|
* @param runtime - the container runtime
|
|
20
21
|
* @returns the result of the request
|
|
22
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
21
23
|
*/
|
|
22
24
|
export declare const rootDataStoreRequestHandler: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse | undefined>;
|
|
25
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
23
26
|
export declare const createFluidObjectResponse: (fluidObject: FluidObject) => {
|
|
24
27
|
status: 200;
|
|
25
28
|
mimeType: "fluid/object";
|
|
26
29
|
value: FluidObject;
|
|
27
30
|
};
|
|
31
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
28
32
|
export declare function handleFromLegacyUri<T = FluidObject & IFluidLoadable>(uri: string, runtime: IContainerRuntimeBase): IFluidHandle<T>;
|
|
29
33
|
//# sourceMappingURL=requestHandlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,KACtB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,YAC9B,QAAQ,WACR,iBAAiB,mCAkB1B,CAAC;AAEF,4JAA4J;AAC5J,eAAO,MAAM,yBAAyB,gBACxB,WAAW,KACtB;IAAE,QAAQ,GAAG,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAE7D,CAAC;AAkCF,4JAA4J;AAC5J,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,WAAW,GAAG,cAAc,EACnE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,GAC5B,YAAY,CAAC,CAAC,CAAC,CAEjB"}
|
package/dist/requestHandlers.js
CHANGED
|
@@ -12,11 +12,13 @@ const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
|
12
12
|
* @param request - the request for the root data store. The first path part must be the data store's ID.
|
|
13
13
|
* @param runtime - the container runtime
|
|
14
14
|
* @returns the result of the request
|
|
15
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
15
16
|
*/
|
|
16
17
|
const rootDataStoreRequestHandler = async (request, runtime) => {
|
|
17
18
|
const requestParser = runtime_utils_1.RequestParser.create(request);
|
|
18
19
|
const id = requestParser.pathParts[0];
|
|
19
20
|
const wait = typeof request.headers?.wait === "boolean" ? request.headers.wait : undefined;
|
|
21
|
+
// eslint-disable-next-line import/no-deprecated
|
|
20
22
|
let rootDataStore;
|
|
21
23
|
try {
|
|
22
24
|
// getRootDataStore currently throws if the data store is not found
|
|
@@ -33,19 +35,20 @@ const rootDataStoreRequestHandler = async (request, runtime) => {
|
|
|
33
35
|
}
|
|
34
36
|
};
|
|
35
37
|
exports.rootDataStoreRequestHandler = rootDataStoreRequestHandler;
|
|
38
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
36
39
|
const createFluidObjectResponse = (fluidObject) => {
|
|
37
40
|
return { status: 200, mimeType: "fluid/object", value: fluidObject };
|
|
38
41
|
};
|
|
39
42
|
exports.createFluidObjectResponse = createFluidObjectResponse;
|
|
40
43
|
class LegacyUriHandle {
|
|
44
|
+
get IFluidHandle() {
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
41
47
|
constructor(absolutePath, runtime) {
|
|
42
48
|
this.absolutePath = absolutePath;
|
|
43
49
|
this.runtime = runtime;
|
|
44
50
|
this.isAttached = true;
|
|
45
51
|
}
|
|
46
|
-
get IFluidHandle() {
|
|
47
|
-
return this;
|
|
48
|
-
}
|
|
49
52
|
attachGraph() {
|
|
50
53
|
(0, core_utils_1.assert)(false, 0x0ca /* "Trying to use legacy graph attach!" */);
|
|
51
54
|
}
|
|
@@ -63,6 +66,7 @@ class LegacyUriHandle {
|
|
|
63
66
|
throw new Error("Cannot bind to LegacyUriHandle");
|
|
64
67
|
}
|
|
65
68
|
}
|
|
69
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
66
70
|
function handleFromLegacyUri(uri, runtime) {
|
|
67
71
|
return new LegacyUriHandle(uri, runtime);
|
|
68
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAoD;
|
|
1
|
+
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAoD;AAYpD,iEAA8D;AAc9D;;;;;;GAMG;AACI,MAAM,2BAA2B,GAAG,KAAK,EAC/C,OAAiB,EACjB,OAA0B,EACzB,EAAE;IACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,gDAAgD;IAChD,IAAI,aAA2B,CAAC;IAChC,IAAI;QACH,mEAAmE;QACnE,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACzD;IAAC,OAAO,KAAK,EAAE;QACf,OAAO,SAAS,CAAC,CAAC,kBAAkB;KACpC;IACD,IAAI;QACH,OAAO,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACnF;IAAC,OAAO,KAAK,EAAE;QACf,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAC/D;AACF,CAAC,CAAC;AApBW,QAAA,2BAA2B,+BAoBtC;AAEF,4JAA4J;AACrJ,MAAM,yBAAyB,GAAG,CACxC,WAAwB,EACwC,EAAE;IAClE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC;AAEF,MAAM,eAAe;IAGpB,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YACiB,YAAY,EACZ,OAA8B;QAD9B,iBAAY,GAAZ,YAAY,CAAA;QACZ,YAAO,GAAP,OAAO,CAAuB;QAR/B,eAAU,GAAG,IAAI,CAAC;IAS/B,CAAC;IAEG,WAAW;QACjB,IAAA,mBAAM,EAAC,KAAK,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,GAAG;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC;YACrE,GAAG,EAAE,IAAI,CAAC,YAAY;SACtB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,cAAc,EAAE;YACpE,+DAA+D;YAC/D,OAAO,QAAQ,CAAC,KAAK,CAAC;SACtB;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEM,IAAI,CAAC,MAAoB;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACnD,CAAC;CACD;AAED,4JAA4J;AAC5J,SAAgB,mBAAmB,CAClC,GAAW,EACX,OAA8B;IAE9B,OAAO,IAAI,eAAe,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AALD,kDAKC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport {\n\tIResponse,\n\tIRequest,\n\tIFluidHandle,\n\tIFluidLoadable,\n\tFluidObject,\n\t// eslint-disable-next-line import/no-deprecated\n\tIFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { IContainerRuntimeBase } from \"@fluidframework/runtime-definitions\";\nimport { RequestParser } from \"@fluidframework/runtime-utils\";\n\n/**\n * A request handler for the container runtime. Each handler should handle a specific request, and return undefined\n * if it does not apply. These handlers are called in series, so there may be other handlers before or after.\n * A handler should only return error if the request is for a route the handler owns, and there is a problem with\n * the route, or fulling the specific request.\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport type RuntimeRequestHandler = (\n\trequest: RequestParser,\n\truntime: IContainerRuntime,\n) => Promise<IResponse | undefined>;\n\n/**\n * A request handler to expose access to all root data stores in the container by id.\n * @param request - the request for the root data store. The first path part must be the data store's ID.\n * @param runtime - the container runtime\n * @returns the result of the request\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport const rootDataStoreRequestHandler = async (\n\trequest: IRequest,\n\truntime: IContainerRuntime,\n) => {\n\tconst requestParser = RequestParser.create(request);\n\tconst id = requestParser.pathParts[0];\n\tconst wait = typeof request.headers?.wait === \"boolean\" ? request.headers.wait : undefined;\n\t// eslint-disable-next-line import/no-deprecated\n\tlet rootDataStore: IFluidRouter;\n\ttry {\n\t\t// getRootDataStore currently throws if the data store is not found\n\t\trootDataStore = await runtime.getRootDataStore(id, wait);\n\t} catch (error) {\n\t\treturn undefined; // continue search\n\t}\n\ttry {\n\t\treturn await rootDataStore.IFluidRouter.request(requestParser.createSubRequest(1));\n\t} catch (error) {\n\t\treturn { status: 500, mimeType: \"fluid/object\", value: error };\n\t}\n};\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\nexport const createFluidObjectResponse = (\n\tfluidObject: FluidObject,\n): { status: 200; mimeType: \"fluid/object\"; value: FluidObject } => {\n\treturn { status: 200, mimeType: \"fluid/object\", value: fluidObject };\n};\n\nclass LegacyUriHandle<T = FluidObject & IFluidLoadable> implements IFluidHandle<T> {\n\tpublic readonly isAttached = true;\n\n\tpublic get IFluidHandle(): IFluidHandle {\n\t\treturn this;\n\t}\n\n\tpublic constructor(\n\t\tpublic readonly absolutePath,\n\t\tpublic readonly runtime: IContainerRuntimeBase,\n\t) {}\n\n\tpublic attachGraph() {\n\t\tassert(false, 0x0ca /* \"Trying to use legacy graph attach!\" */);\n\t}\n\n\tpublic async get(): Promise<any> {\n\t\tconst response = await this.runtime.IFluidHandleContext.resolveHandle({\n\t\t\turl: this.absolutePath,\n\t\t});\n\t\tif (response.status === 200 && response.mimeType === \"fluid/object\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\treturn response.value;\n\t\t}\n\t\tthrow new Error(`Failed to resolve container path ${this.absolutePath}`);\n\t}\n\n\tpublic bind(handle: IFluidHandle) {\n\t\tthrow new Error(\"Cannot bind to LegacyUriHandle\");\n\t}\n}\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\nexport function handleFromLegacyUri<T = FluidObject & IFluidLoadable>(\n\turi: string,\n\truntime: IContainerRuntimeBase,\n): IFluidHandle<T> {\n\treturn new LegacyUriHandle<T>(uri, runtime);\n}\n"]}
|
|
@@ -8,11 +8,13 @@ import { RuntimeRequestHandler } from "./requestHandlers";
|
|
|
8
8
|
/**
|
|
9
9
|
* The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.
|
|
10
10
|
* The provided handlers sequentially applied until one is able to satisfy the request.
|
|
11
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
11
12
|
*/
|
|
12
13
|
export declare class RuntimeRequestHandlerBuilder {
|
|
13
14
|
private readonly handlers;
|
|
14
15
|
pushHandler(...handlers: RuntimeRequestHandler[]): void;
|
|
15
16
|
handleRequest(request: IRequest, runtime: IContainerRuntime): Promise<IResponse>;
|
|
16
17
|
}
|
|
18
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
17
19
|
export declare function buildRuntimeRequestHandler(...handlers: RuntimeRequestHandler[]): (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>;
|
|
18
20
|
//# sourceMappingURL=runtimeRequestHandlerBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeRequestHandlerBuilder.d.ts","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeRequestHandlerBuilder.d.ts","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,4BAA4B;IAExC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAGjD,WAAW,CAAC,GAAG,QAAQ,EAAE,qBAAqB,EAAE;IAM1C,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;CAU7F;AAED,4JAA4J;AAE5J,wBAAgB,0BAA0B,CAAC,GAAG,QAAQ,EAAE,qBAAqB,EAAE,aAGvD,QAAQ,WAAW,iBAAiB,wBAE3D"}
|
|
@@ -9,11 +9,14 @@ const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
|
9
9
|
/**
|
|
10
10
|
* The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.
|
|
11
11
|
* The provided handlers sequentially applied until one is able to satisfy the request.
|
|
12
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
12
13
|
*/
|
|
13
14
|
class RuntimeRequestHandlerBuilder {
|
|
14
15
|
constructor() {
|
|
16
|
+
// eslint-disable-next-line import/no-deprecated
|
|
15
17
|
this.handlers = [];
|
|
16
18
|
}
|
|
19
|
+
// eslint-disable-next-line import/no-deprecated
|
|
17
20
|
pushHandler(...handlers) {
|
|
18
21
|
if (handlers !== undefined) {
|
|
19
22
|
this.handlers.push(...handlers);
|
|
@@ -31,6 +34,8 @@ class RuntimeRequestHandlerBuilder {
|
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
exports.RuntimeRequestHandlerBuilder = RuntimeRequestHandlerBuilder;
|
|
37
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
38
|
+
// eslint-disable-next-line import/no-deprecated
|
|
34
39
|
function buildRuntimeRequestHandler(...handlers) {
|
|
35
40
|
const builder = new RuntimeRequestHandlerBuilder();
|
|
36
41
|
builder.pushHandler(...handlers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeRequestHandlerBuilder.js","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,iEAAiF;
|
|
1
|
+
{"version":3,"file":"runtimeRequestHandlerBuilder.js","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,iEAAiF;AAIjF;;;;GAIG;AACH,MAAa,4BAA4B;IAAzC;QACC,gDAAgD;QAC/B,aAAQ,GAA4B,EAAE,CAAC;IAmBzD,CAAC;IAjBA,gDAAgD;IACzC,WAAW,CAAC,GAAG,QAAiC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChC;IACF,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAiB,EAAE,OAA0B;QACvE,MAAM,MAAM,GAAG,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC3B,OAAO,QAAQ,CAAC;aAChB;SACD;QACD,OAAO,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACD;AArBD,oEAqBC;AAED,4JAA4J;AAC5J,gDAAgD;AAChD,SAAgB,0BAA0B,CAAC,GAAG,QAAiC;IAC9E,MAAM,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;IACnD,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,OAAO,KAAK,EAAE,OAAiB,EAAE,OAA0B,EAAE,EAAE,CAC9D,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AALD,gEAKC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { RequestParser, create404Response } from \"@fluidframework/runtime-utils\";\n// eslint-disable-next-line import/no-deprecated\nimport { RuntimeRequestHandler } from \"./requestHandlers\";\n\n/**\n * The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.\n * The provided handlers sequentially applied until one is able to satisfy the request.\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport class RuntimeRequestHandlerBuilder {\n\t// eslint-disable-next-line import/no-deprecated\n\tprivate readonly handlers: RuntimeRequestHandler[] = [];\n\n\t// eslint-disable-next-line import/no-deprecated\n\tpublic pushHandler(...handlers: RuntimeRequestHandler[]) {\n\t\tif (handlers !== undefined) {\n\t\t\tthis.handlers.push(...handlers);\n\t\t}\n\t}\n\n\tpublic async handleRequest(request: IRequest, runtime: IContainerRuntime): Promise<IResponse> {\n\t\tconst parser = RequestParser.create(request);\n\t\tfor (const handler of this.handlers) {\n\t\t\tconst response = await handler(parser, runtime);\n\t\t\tif (response !== undefined) {\n\t\t\t\treturn response;\n\t\t\t}\n\t\t}\n\t\treturn create404Response(request);\n\t}\n}\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\n// eslint-disable-next-line import/no-deprecated\nexport function buildRuntimeRequestHandler(...handlers: RuntimeRequestHandler[]) {\n\tconst builder = new RuntimeRequestHandlerBuilder();\n\tbuilder.pushHandler(...handlers);\n\treturn async (request: IRequest, runtime: IContainerRuntime) =>\n\t\tbuilder.handleRequest(request, runtime);\n}\n"]}
|
package/dist/tsdoc-metadata.json
CHANGED
package/lib/requestHandlers.d.ts
CHANGED
|
@@ -11,19 +11,23 @@ import { RequestParser } from "@fluidframework/runtime-utils";
|
|
|
11
11
|
* if it does not apply. These handlers are called in series, so there may be other handlers before or after.
|
|
12
12
|
* A handler should only return error if the request is for a route the handler owns, and there is a problem with
|
|
13
13
|
* the route, or fulling the specific request.
|
|
14
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
14
15
|
*/
|
|
15
|
-
export
|
|
16
|
+
export type RuntimeRequestHandler = (request: RequestParser, runtime: IContainerRuntime) => Promise<IResponse | undefined>;
|
|
16
17
|
/**
|
|
17
18
|
* A request handler to expose access to all root data stores in the container by id.
|
|
18
19
|
* @param request - the request for the root data store. The first path part must be the data store's ID.
|
|
19
20
|
* @param runtime - the container runtime
|
|
20
21
|
* @returns the result of the request
|
|
22
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
21
23
|
*/
|
|
22
24
|
export declare const rootDataStoreRequestHandler: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse | undefined>;
|
|
25
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
23
26
|
export declare const createFluidObjectResponse: (fluidObject: FluidObject) => {
|
|
24
27
|
status: 200;
|
|
25
28
|
mimeType: "fluid/object";
|
|
26
29
|
value: FluidObject;
|
|
27
30
|
};
|
|
31
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
28
32
|
export declare function handleFromLegacyUri<T = FluidObject & IFluidLoadable>(uri: string, runtime: IContainerRuntimeBase): IFluidHandle<T>;
|
|
29
33
|
//# sourceMappingURL=requestHandlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,KACtB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,YAC9B,QAAQ,WACR,iBAAiB,mCAkB1B,CAAC;AAEF,4JAA4J;AAC5J,eAAO,MAAM,yBAAyB,gBACxB,WAAW,KACtB;IAAE,QAAQ,GAAG,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAE7D,CAAC;AAkCF,4JAA4J;AAC5J,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,WAAW,GAAG,cAAc,EACnE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,GAC5B,YAAY,CAAC,CAAC,CAAC,CAEjB"}
|
package/lib/requestHandlers.js
CHANGED
|
@@ -9,11 +9,13 @@ import { RequestParser } from "@fluidframework/runtime-utils";
|
|
|
9
9
|
* @param request - the request for the root data store. The first path part must be the data store's ID.
|
|
10
10
|
* @param runtime - the container runtime
|
|
11
11
|
* @returns the result of the request
|
|
12
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
12
13
|
*/
|
|
13
14
|
export const rootDataStoreRequestHandler = async (request, runtime) => {
|
|
14
15
|
const requestParser = RequestParser.create(request);
|
|
15
16
|
const id = requestParser.pathParts[0];
|
|
16
17
|
const wait = typeof request.headers?.wait === "boolean" ? request.headers.wait : undefined;
|
|
18
|
+
// eslint-disable-next-line import/no-deprecated
|
|
17
19
|
let rootDataStore;
|
|
18
20
|
try {
|
|
19
21
|
// getRootDataStore currently throws if the data store is not found
|
|
@@ -29,18 +31,19 @@ export const rootDataStoreRequestHandler = async (request, runtime) => {
|
|
|
29
31
|
return { status: 500, mimeType: "fluid/object", value: error };
|
|
30
32
|
}
|
|
31
33
|
};
|
|
34
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
32
35
|
export const createFluidObjectResponse = (fluidObject) => {
|
|
33
36
|
return { status: 200, mimeType: "fluid/object", value: fluidObject };
|
|
34
37
|
};
|
|
35
38
|
class LegacyUriHandle {
|
|
39
|
+
get IFluidHandle() {
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
36
42
|
constructor(absolutePath, runtime) {
|
|
37
43
|
this.absolutePath = absolutePath;
|
|
38
44
|
this.runtime = runtime;
|
|
39
45
|
this.isAttached = true;
|
|
40
46
|
}
|
|
41
|
-
get IFluidHandle() {
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
47
|
attachGraph() {
|
|
45
48
|
assert(false, 0x0ca /* "Trying to use legacy graph attach!" */);
|
|
46
49
|
}
|
|
@@ -58,6 +61,7 @@ class LegacyUriHandle {
|
|
|
58
61
|
throw new Error("Cannot bind to LegacyUriHandle");
|
|
59
62
|
}
|
|
60
63
|
}
|
|
64
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
61
65
|
export function handleFromLegacyUri(uri, runtime) {
|
|
62
66
|
return new LegacyUriHandle(uri, runtime);
|
|
63
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../src/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAYpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAc9D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC/C,OAAiB,EACjB,OAA0B,EACzB,EAAE;IACH,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,gDAAgD;IAChD,IAAI,aAA2B,CAAC;IAChC,IAAI;QACH,mEAAmE;QACnE,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACzD;IAAC,OAAO,KAAK,EAAE;QACf,OAAO,SAAS,CAAC,CAAC,kBAAkB;KACpC;IACD,IAAI;QACH,OAAO,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACnF;IAAC,OAAO,KAAK,EAAE;QACf,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAC/D;AACF,CAAC,CAAC;AAEF,4JAA4J;AAC5J,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,WAAwB,EACwC,EAAE;IAClE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,eAAe;IAGpB,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YACiB,YAAY,EACZ,OAA8B;QAD9B,iBAAY,GAAZ,YAAY,CAAA;QACZ,YAAO,GAAP,OAAO,CAAuB;QAR/B,eAAU,GAAG,IAAI,CAAC;IAS/B,CAAC;IAEG,WAAW;QACjB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,GAAG;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC;YACrE,GAAG,EAAE,IAAI,CAAC,YAAY;SACtB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,cAAc,EAAE;YACpE,+DAA+D;YAC/D,OAAO,QAAQ,CAAC,KAAK,CAAC;SACtB;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEM,IAAI,CAAC,MAAoB;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACnD,CAAC;CACD;AAED,4JAA4J;AAC5J,MAAM,UAAU,mBAAmB,CAClC,GAAW,EACX,OAA8B;IAE9B,OAAO,IAAI,eAAe,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport {\n\tIResponse,\n\tIRequest,\n\tIFluidHandle,\n\tIFluidLoadable,\n\tFluidObject,\n\t// eslint-disable-next-line import/no-deprecated\n\tIFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { IContainerRuntimeBase } from \"@fluidframework/runtime-definitions\";\nimport { RequestParser } from \"@fluidframework/runtime-utils\";\n\n/**\n * A request handler for the container runtime. Each handler should handle a specific request, and return undefined\n * if it does not apply. These handlers are called in series, so there may be other handlers before or after.\n * A handler should only return error if the request is for a route the handler owns, and there is a problem with\n * the route, or fulling the specific request.\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport type RuntimeRequestHandler = (\n\trequest: RequestParser,\n\truntime: IContainerRuntime,\n) => Promise<IResponse | undefined>;\n\n/**\n * A request handler to expose access to all root data stores in the container by id.\n * @param request - the request for the root data store. The first path part must be the data store's ID.\n * @param runtime - the container runtime\n * @returns the result of the request\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport const rootDataStoreRequestHandler = async (\n\trequest: IRequest,\n\truntime: IContainerRuntime,\n) => {\n\tconst requestParser = RequestParser.create(request);\n\tconst id = requestParser.pathParts[0];\n\tconst wait = typeof request.headers?.wait === \"boolean\" ? request.headers.wait : undefined;\n\t// eslint-disable-next-line import/no-deprecated\n\tlet rootDataStore: IFluidRouter;\n\ttry {\n\t\t// getRootDataStore currently throws if the data store is not found\n\t\trootDataStore = await runtime.getRootDataStore(id, wait);\n\t} catch (error) {\n\t\treturn undefined; // continue search\n\t}\n\ttry {\n\t\treturn await rootDataStore.IFluidRouter.request(requestParser.createSubRequest(1));\n\t} catch (error) {\n\t\treturn { status: 500, mimeType: \"fluid/object\", value: error };\n\t}\n};\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\nexport const createFluidObjectResponse = (\n\tfluidObject: FluidObject,\n): { status: 200; mimeType: \"fluid/object\"; value: FluidObject } => {\n\treturn { status: 200, mimeType: \"fluid/object\", value: fluidObject };\n};\n\nclass LegacyUriHandle<T = FluidObject & IFluidLoadable> implements IFluidHandle<T> {\n\tpublic readonly isAttached = true;\n\n\tpublic get IFluidHandle(): IFluidHandle {\n\t\treturn this;\n\t}\n\n\tpublic constructor(\n\t\tpublic readonly absolutePath,\n\t\tpublic readonly runtime: IContainerRuntimeBase,\n\t) {}\n\n\tpublic attachGraph() {\n\t\tassert(false, 0x0ca /* \"Trying to use legacy graph attach!\" */);\n\t}\n\n\tpublic async get(): Promise<any> {\n\t\tconst response = await this.runtime.IFluidHandleContext.resolveHandle({\n\t\t\turl: this.absolutePath,\n\t\t});\n\t\tif (response.status === 200 && response.mimeType === \"fluid/object\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\treturn response.value;\n\t\t}\n\t\tthrow new Error(`Failed to resolve container path ${this.absolutePath}`);\n\t}\n\n\tpublic bind(handle: IFluidHandle) {\n\t\tthrow new Error(\"Cannot bind to LegacyUriHandle\");\n\t}\n}\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\nexport function handleFromLegacyUri<T = FluidObject & IFluidLoadable>(\n\turi: string,\n\truntime: IContainerRuntimeBase,\n): IFluidHandle<T> {\n\treturn new LegacyUriHandle<T>(uri, runtime);\n}\n"]}
|
|
@@ -8,11 +8,13 @@ import { RuntimeRequestHandler } from "./requestHandlers";
|
|
|
8
8
|
/**
|
|
9
9
|
* The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.
|
|
10
10
|
* The provided handlers sequentially applied until one is able to satisfy the request.
|
|
11
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
11
12
|
*/
|
|
12
13
|
export declare class RuntimeRequestHandlerBuilder {
|
|
13
14
|
private readonly handlers;
|
|
14
15
|
pushHandler(...handlers: RuntimeRequestHandler[]): void;
|
|
15
16
|
handleRequest(request: IRequest, runtime: IContainerRuntime): Promise<IResponse>;
|
|
16
17
|
}
|
|
18
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
17
19
|
export declare function buildRuntimeRequestHandler(...handlers: RuntimeRequestHandler[]): (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>;
|
|
18
20
|
//# sourceMappingURL=runtimeRequestHandlerBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeRequestHandlerBuilder.d.ts","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeRequestHandlerBuilder.d.ts","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,4BAA4B;IAExC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAGjD,WAAW,CAAC,GAAG,QAAQ,EAAE,qBAAqB,EAAE;IAM1C,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;CAU7F;AAED,4JAA4J;AAE5J,wBAAgB,0BAA0B,CAAC,GAAG,QAAQ,EAAE,qBAAqB,EAAE,aAGvD,QAAQ,WAAW,iBAAiB,wBAE3D"}
|
|
@@ -6,11 +6,14 @@ import { RequestParser, create404Response } from "@fluidframework/runtime-utils"
|
|
|
6
6
|
/**
|
|
7
7
|
* The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.
|
|
8
8
|
* The provided handlers sequentially applied until one is able to satisfy the request.
|
|
9
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
9
10
|
*/
|
|
10
11
|
export class RuntimeRequestHandlerBuilder {
|
|
11
12
|
constructor() {
|
|
13
|
+
// eslint-disable-next-line import/no-deprecated
|
|
12
14
|
this.handlers = [];
|
|
13
15
|
}
|
|
16
|
+
// eslint-disable-next-line import/no-deprecated
|
|
14
17
|
pushHandler(...handlers) {
|
|
15
18
|
if (handlers !== undefined) {
|
|
16
19
|
this.handlers.push(...handlers);
|
|
@@ -27,6 +30,8 @@ export class RuntimeRequestHandlerBuilder {
|
|
|
27
30
|
return create404Response(request);
|
|
28
31
|
}
|
|
29
32
|
}
|
|
33
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
34
|
+
// eslint-disable-next-line import/no-deprecated
|
|
30
35
|
export function buildRuntimeRequestHandler(...handlers) {
|
|
31
36
|
const builder = new RuntimeRequestHandlerBuilder();
|
|
32
37
|
builder.pushHandler(...handlers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeRequestHandlerBuilder.js","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeRequestHandlerBuilder.js","sourceRoot":"","sources":["../src/runtimeRequestHandlerBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIjF;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IAAzC;QACC,gDAAgD;QAC/B,aAAQ,GAA4B,EAAE,CAAC;IAmBzD,CAAC;IAjBA,gDAAgD;IACzC,WAAW,CAAC,GAAG,QAAiC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChC;IACF,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAiB,EAAE,OAA0B;QACvE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC3B,OAAO,QAAQ,CAAC;aAChB;SACD;QACD,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACD;AAED,4JAA4J;AAC5J,gDAAgD;AAChD,MAAM,UAAU,0BAA0B,CAAC,GAAG,QAAiC;IAC9E,MAAM,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;IACnD,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,OAAO,KAAK,EAAE,OAAiB,EAAE,OAA0B,EAAE,EAAE,CAC9D,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { RequestParser, create404Response } from \"@fluidframework/runtime-utils\";\n// eslint-disable-next-line import/no-deprecated\nimport { RuntimeRequestHandler } from \"./requestHandlers\";\n\n/**\n * The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.\n * The provided handlers sequentially applied until one is able to satisfy the request.\n * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md\n */\nexport class RuntimeRequestHandlerBuilder {\n\t// eslint-disable-next-line import/no-deprecated\n\tprivate readonly handlers: RuntimeRequestHandler[] = [];\n\n\t// eslint-disable-next-line import/no-deprecated\n\tpublic pushHandler(...handlers: RuntimeRequestHandler[]) {\n\t\tif (handlers !== undefined) {\n\t\t\tthis.handlers.push(...handlers);\n\t\t}\n\t}\n\n\tpublic async handleRequest(request: IRequest, runtime: IContainerRuntime): Promise<IResponse> {\n\t\tconst parser = RequestParser.create(request);\n\t\tfor (const handler of this.handlers) {\n\t\t\tconst response = await handler(parser, runtime);\n\t\t\tif (response !== undefined) {\n\t\t\t\treturn response;\n\t\t\t}\n\t\t}\n\t\treturn create404Response(request);\n\t}\n}\n\n/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the \"entryPoint\" pattern. Refer to Removing-IFluidRouter.md */\n// eslint-disable-next-line import/no-deprecated\nexport function buildRuntimeRequestHandler(...handlers: RuntimeRequestHandler[]) {\n\tconst builder = new RuntimeRequestHandlerBuilder();\n\tbuilder.pushHandler(...handlers);\n\treturn async (request: IRequest, runtime: IContainerRuntime) =>\n\t\tbuilder.handleRequest(request, runtime);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/request-handler",
|
|
3
|
-
"version": "2.0.0-internal.
|
|
3
|
+
"version": "2.0.0-internal.7.0.0",
|
|
4
4
|
"description": "A simple request handling library for Fluid Framework",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -35,21 +35,21 @@
|
|
|
35
35
|
"temp-directory": "nyc/.nyc_output"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@fluidframework/container-runtime-definitions": ">=2.0.0-internal.
|
|
39
|
-
"@fluidframework/core-interfaces": ">=2.0.0-internal.
|
|
40
|
-
"@fluidframework/core-utils": ">=2.0.0-internal.
|
|
41
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-internal.
|
|
42
|
-
"@fluidframework/runtime-utils": ">=2.0.0-internal.
|
|
38
|
+
"@fluidframework/container-runtime-definitions": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
39
|
+
"@fluidframework/core-interfaces": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
40
|
+
"@fluidframework/core-utils": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
41
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
42
|
+
"@fluidframework/runtime-utils": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@fluid-tools/build-cli": "^0.
|
|
45
|
+
"@fluid-tools/build-cli": "^0.24.0",
|
|
46
46
|
"@fluidframework/build-common": "^2.0.0",
|
|
47
|
-
"@fluidframework/build-tools": "^0.
|
|
47
|
+
"@fluidframework/build-tools": "^0.24.0",
|
|
48
48
|
"@fluidframework/eslint-config-fluid": "^2.1.0",
|
|
49
|
-
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.
|
|
49
|
+
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
50
50
|
"@fluidframework/request-handler-previous": "npm:@fluidframework/request-handler@2.0.0-internal.6.3.0",
|
|
51
|
-
"@fluidframework/test-runtime-utils": ">=2.0.0-internal.
|
|
52
|
-
"@microsoft/api-extractor": "^7.
|
|
51
|
+
"@fluidframework/test-runtime-utils": ">=2.0.0-internal.7.0.0 <2.0.0-internal.7.1.0",
|
|
52
|
+
"@microsoft/api-extractor": "^7.37.0",
|
|
53
53
|
"@types/diff": "^3.5.1",
|
|
54
54
|
"@types/mocha": "^9.1.1",
|
|
55
55
|
"@types/node": "^16.18.38",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"moment": "^2.21.0",
|
|
65
65
|
"prettier": "~2.6.2",
|
|
66
66
|
"rimraf": "^4.4.0",
|
|
67
|
-
"typescript": "~
|
|
67
|
+
"typescript": "~5.1.6"
|
|
68
68
|
},
|
|
69
69
|
"typeValidation": {
|
|
70
70
|
"broken": {}
|
package/src/requestHandlers.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
IFluidHandle,
|
|
11
11
|
IFluidLoadable,
|
|
12
12
|
FluidObject,
|
|
13
|
+
// eslint-disable-next-line import/no-deprecated
|
|
13
14
|
IFluidRouter,
|
|
14
15
|
} from "@fluidframework/core-interfaces";
|
|
15
16
|
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
@@ -21,6 +22,7 @@ import { RequestParser } from "@fluidframework/runtime-utils";
|
|
|
21
22
|
* if it does not apply. These handlers are called in series, so there may be other handlers before or after.
|
|
22
23
|
* A handler should only return error if the request is for a route the handler owns, and there is a problem with
|
|
23
24
|
* the route, or fulling the specific request.
|
|
25
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
24
26
|
*/
|
|
25
27
|
export type RuntimeRequestHandler = (
|
|
26
28
|
request: RequestParser,
|
|
@@ -32,6 +34,7 @@ export type RuntimeRequestHandler = (
|
|
|
32
34
|
* @param request - the request for the root data store. The first path part must be the data store's ID.
|
|
33
35
|
* @param runtime - the container runtime
|
|
34
36
|
* @returns the result of the request
|
|
37
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
35
38
|
*/
|
|
36
39
|
export const rootDataStoreRequestHandler = async (
|
|
37
40
|
request: IRequest,
|
|
@@ -40,6 +43,7 @@ export const rootDataStoreRequestHandler = async (
|
|
|
40
43
|
const requestParser = RequestParser.create(request);
|
|
41
44
|
const id = requestParser.pathParts[0];
|
|
42
45
|
const wait = typeof request.headers?.wait === "boolean" ? request.headers.wait : undefined;
|
|
46
|
+
// eslint-disable-next-line import/no-deprecated
|
|
43
47
|
let rootDataStore: IFluidRouter;
|
|
44
48
|
try {
|
|
45
49
|
// getRootDataStore currently throws if the data store is not found
|
|
@@ -54,6 +58,7 @@ export const rootDataStoreRequestHandler = async (
|
|
|
54
58
|
}
|
|
55
59
|
};
|
|
56
60
|
|
|
61
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
57
62
|
export const createFluidObjectResponse = (
|
|
58
63
|
fluidObject: FluidObject,
|
|
59
64
|
): { status: 200; mimeType: "fluid/object"; value: FluidObject } => {
|
|
@@ -92,6 +97,7 @@ class LegacyUriHandle<T = FluidObject & IFluidLoadable> implements IFluidHandle<
|
|
|
92
97
|
}
|
|
93
98
|
}
|
|
94
99
|
|
|
100
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
95
101
|
export function handleFromLegacyUri<T = FluidObject & IFluidLoadable>(
|
|
96
102
|
uri: string,
|
|
97
103
|
runtime: IContainerRuntimeBase,
|
|
@@ -6,15 +6,19 @@
|
|
|
6
6
|
import { IRequest, IResponse } from "@fluidframework/core-interfaces";
|
|
7
7
|
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
8
8
|
import { RequestParser, create404Response } from "@fluidframework/runtime-utils";
|
|
9
|
+
// eslint-disable-next-line import/no-deprecated
|
|
9
10
|
import { RuntimeRequestHandler } from "./requestHandlers";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* The RuntimeRequestHandlerBuilder creates a runtime request handler based on request handlers.
|
|
13
14
|
* The provided handlers sequentially applied until one is able to satisfy the request.
|
|
15
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
14
16
|
*/
|
|
15
17
|
export class RuntimeRequestHandlerBuilder {
|
|
18
|
+
// eslint-disable-next-line import/no-deprecated
|
|
16
19
|
private readonly handlers: RuntimeRequestHandler[] = [];
|
|
17
20
|
|
|
21
|
+
// eslint-disable-next-line import/no-deprecated
|
|
18
22
|
public pushHandler(...handlers: RuntimeRequestHandler[]) {
|
|
19
23
|
if (handlers !== undefined) {
|
|
20
24
|
this.handlers.push(...handlers);
|
|
@@ -33,6 +37,8 @@ export class RuntimeRequestHandlerBuilder {
|
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
|
|
40
|
+
/** @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
|
|
41
|
+
// eslint-disable-next-line import/no-deprecated
|
|
36
42
|
export function buildRuntimeRequestHandler(...handlers: RuntimeRequestHandler[]) {
|
|
37
43
|
const builder = new RuntimeRequestHandlerBuilder();
|
|
38
44
|
builder.pushHandler(...handlers);
|