@fluidframework/core-interfaces 2.0.0-internal.7.3.0 → 2.0.0-internal.8.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 +26 -0
- package/Removing-IFluidRouter.md +22 -17
- package/api-extractor-lint.json +13 -0
- package/api-extractor.json +3 -6
- package/api-report/core-interfaces.api.md +66 -73
- package/dist/config.d.ts +35 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -0
- package/dist/core-interfaces-alpha.d.ts +101 -249
- package/dist/core-interfaces-beta.d.ts +105 -905
- package/dist/core-interfaces-public.d.ts +105 -905
- package/dist/core-interfaces-untrimmed.d.ts +112 -18
- package/dist/disposable.d.ts +1 -0
- package/dist/disposable.d.ts.map +1 -1
- package/dist/disposable.js.map +1 -1
- package/dist/error.d.ts +9 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +1 -0
- package/dist/error.js.map +1 -1
- package/dist/events.d.ts +8 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/fluidLoadable.d.ts +16 -0
- package/dist/fluidLoadable.d.ts.map +1 -1
- package/dist/fluidLoadable.js +6 -0
- package/dist/fluidLoadable.js.map +1 -1
- package/dist/fluidPackage.d.ts +9 -0
- package/dist/fluidPackage.d.ts.map +1 -1
- package/dist/fluidPackage.js +3 -0
- package/dist/fluidPackage.js.map +1 -1
- package/dist/fluidRouter.d.ts +9 -17
- package/dist/fluidRouter.d.ts.map +1 -1
- package/dist/fluidRouter.js +0 -5
- package/dist/fluidRouter.js.map +1 -1
- package/dist/handles.d.ts +14 -0
- package/dist/handles.d.ts.map +1 -1
- package/dist/handles.js +6 -0
- package/dist/handles.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +16 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -0
- package/dist/logger.js.map +1 -1
- package/dist/provider.d.ts +3 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js.map +1 -1
- package/lib/config.d.ts +35 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +7 -0
- package/lib/config.js.map +1 -0
- package/lib/core-interfaces-alpha.d.ts +101 -249
- package/lib/core-interfaces-beta.d.ts +105 -905
- package/lib/core-interfaces-public.d.ts +105 -905
- package/lib/core-interfaces-untrimmed.d.ts +112 -18
- package/lib/disposable.d.ts +1 -0
- package/lib/disposable.d.ts.map +1 -1
- package/lib/disposable.js +2 -1
- package/lib/disposable.js.map +1 -1
- package/lib/error.d.ts +9 -0
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +5 -1
- package/lib/error.js.map +1 -1
- package/lib/events.d.ts +8 -1
- package/lib/events.d.ts.map +1 -1
- package/lib/events.js +2 -1
- package/lib/events.js.map +1 -1
- package/lib/fluidLoadable.d.ts +16 -0
- package/lib/fluidLoadable.d.ts.map +1 -1
- package/lib/fluidLoadable.js +11 -2
- package/lib/fluidLoadable.js.map +1 -1
- package/lib/fluidPackage.d.ts +9 -0
- package/lib/fluidPackage.d.ts.map +1 -1
- package/lib/fluidPackage.js +12 -4
- package/lib/fluidPackage.js.map +1 -1
- package/lib/fluidRouter.d.ts +9 -17
- package/lib/fluidRouter.d.ts.map +1 -1
- package/lib/fluidRouter.js +2 -4
- package/lib/fluidRouter.js.map +1 -1
- package/lib/handles.d.ts +14 -0
- package/lib/handles.d.ts.map +1 -1
- package/lib/handles.js +11 -2
- package/lib/handles.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -9
- package/lib/index.js.map +1 -1
- package/lib/logger.d.ts +16 -0
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +5 -1
- package/lib/logger.js.map +1 -1
- package/lib/provider.d.ts +3 -2
- package/lib/provider.d.ts.map +1 -1
- package/lib/provider.js +2 -1
- package/lib/provider.js.map +1 -1
- package/package.json +22 -6
- package/src/config.ts +36 -0
- package/src/disposable.ts +1 -0
- package/src/error.ts +9 -0
- package/src/events.ts +8 -1
- package/src/fluidLoadable.ts +16 -0
- package/src/fluidPackage.ts +9 -0
- package/src/fluidRouter.ts +9 -20
- package/src/handles.ts +14 -0
- package/src/index.ts +2 -7
- package/src/logger.ts +16 -0
- package/src/provider.ts +3 -2
package/src/fluidPackage.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackageEnvironment}
|
|
10
10
|
* to have code loading modules in same package.
|
|
11
|
+
* @internal
|
|
11
12
|
*/
|
|
12
13
|
export interface IFluidPackageEnvironment {
|
|
13
14
|
/**
|
|
@@ -41,6 +42,7 @@ export interface IFluidPackageEnvironment {
|
|
|
41
42
|
*
|
|
42
43
|
* @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackage}
|
|
43
44
|
* to have code loading modules in same package.
|
|
45
|
+
* @internal
|
|
44
46
|
*/
|
|
45
47
|
export interface IFluidPackage {
|
|
46
48
|
/**
|
|
@@ -72,6 +74,7 @@ export interface IFluidPackage {
|
|
|
72
74
|
* to have code loading modules in same package.
|
|
73
75
|
*
|
|
74
76
|
* @param pkg - The package json data to check if it is a Fluid package.
|
|
77
|
+
* @internal
|
|
75
78
|
*/
|
|
76
79
|
export const isFluidPackage = (pkg: unknown): pkg is Readonly<IFluidPackage> =>
|
|
77
80
|
typeof pkg === "object" &&
|
|
@@ -83,6 +86,7 @@ export const isFluidPackage = (pkg: unknown): pkg is Readonly<IFluidPackage> =>
|
|
|
83
86
|
*
|
|
84
87
|
* @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsConfig}
|
|
85
88
|
* to have code loading modules in same package.
|
|
89
|
+
* @internal
|
|
86
90
|
*/
|
|
87
91
|
export interface IFluidCodeDetailsConfig {
|
|
88
92
|
readonly [key: string]: string;
|
|
@@ -93,6 +97,7 @@ export interface IFluidCodeDetailsConfig {
|
|
|
93
97
|
*
|
|
94
98
|
* @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetails}
|
|
95
99
|
* to have code loading modules in same package.
|
|
100
|
+
* @internal
|
|
96
101
|
*/
|
|
97
102
|
export interface IFluidCodeDetails {
|
|
98
103
|
/**
|
|
@@ -111,6 +116,7 @@ export interface IFluidCodeDetails {
|
|
|
111
116
|
/**
|
|
112
117
|
* @deprecated in favor of {@link @fluidframework/container-definitions#isFluidCodeDetails}
|
|
113
118
|
* to have code loading modules in same package.
|
|
119
|
+
* @internal
|
|
114
120
|
*/
|
|
115
121
|
export const isFluidCodeDetails = (details: unknown): details is Readonly<IFluidCodeDetails> => {
|
|
116
122
|
const maybeCodeDetails = details as Partial<IFluidCodeDetails> | undefined;
|
|
@@ -125,6 +131,7 @@ export const isFluidCodeDetails = (details: unknown): details is Readonly<IFluid
|
|
|
125
131
|
/**
|
|
126
132
|
* @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
|
|
127
133
|
* to have code loading modules in same package.
|
|
134
|
+
* @internal
|
|
128
135
|
*/
|
|
129
136
|
export const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =
|
|
130
137
|
"IFluidCodeDetailsComparer";
|
|
@@ -132,6 +139,7 @@ export const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =
|
|
|
132
139
|
/**
|
|
133
140
|
* @deprecated in favor of {@link @fluidframework/container-definitions#IProvideFluidCodeDetailsComparer}
|
|
134
141
|
* to have code loading modules in same package.
|
|
142
|
+
* @internal
|
|
135
143
|
*/
|
|
136
144
|
export interface IProvideFluidCodeDetailsComparer {
|
|
137
145
|
readonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;
|
|
@@ -142,6 +150,7 @@ export interface IProvideFluidCodeDetailsComparer {
|
|
|
142
150
|
*
|
|
143
151
|
* @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
|
|
144
152
|
* to have code loading modules in same package.
|
|
153
|
+
* @internal
|
|
145
154
|
*/
|
|
146
155
|
export interface IFluidCodeDetailsComparer extends IProvideFluidCodeDetailsComparer {
|
|
147
156
|
/**
|
package/src/fluidRouter.ts
CHANGED
|
@@ -3,17 +3,26 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @alpha
|
|
8
|
+
*/
|
|
6
9
|
export interface IRequestHeader {
|
|
7
10
|
// TODO: Use `unknown` instead (API-Breaking)
|
|
8
11
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
12
|
[index: string]: any;
|
|
10
13
|
}
|
|
11
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @alpha
|
|
17
|
+
*/
|
|
12
18
|
export interface IRequest {
|
|
13
19
|
url: string;
|
|
14
20
|
headers?: IRequestHeader;
|
|
15
21
|
}
|
|
16
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @alpha
|
|
25
|
+
*/
|
|
17
26
|
export interface IResponse {
|
|
18
27
|
mimeType: string;
|
|
19
28
|
status: number;
|
|
@@ -25,23 +34,3 @@ export interface IResponse {
|
|
|
25
34
|
headers?: { [key: string]: any };
|
|
26
35
|
stack?: string;
|
|
27
36
|
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
31
|
-
*/
|
|
32
|
-
export const IFluidRouter: keyof IProvideFluidRouter = "IFluidRouter";
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Request routing
|
|
36
|
-
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
37
|
-
*/
|
|
38
|
-
export interface IProvideFluidRouter {
|
|
39
|
-
readonly IFluidRouter: IFluidRouter;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
44
|
-
*/
|
|
45
|
-
export interface IFluidRouter extends IProvideFluidRouter {
|
|
46
|
-
request(request: IRequest): Promise<IResponse>;
|
|
47
|
-
}
|
package/src/handles.ts
CHANGED
|
@@ -7,14 +7,21 @@ import { IRequest, IResponse } from "./fluidRouter";
|
|
|
7
7
|
import { IFluidLoadable } from "./fluidLoadable";
|
|
8
8
|
import { FluidObject } from "./provider";
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @alpha
|
|
12
|
+
*/
|
|
10
13
|
export const IFluidHandleContext: keyof IProvideFluidHandleContext = "IFluidHandleContext";
|
|
11
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @alpha
|
|
17
|
+
*/
|
|
12
18
|
export interface IProvideFluidHandleContext {
|
|
13
19
|
readonly IFluidHandleContext: IFluidHandleContext;
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
/**
|
|
17
23
|
* Describes a routing context from which other `IFluidHandleContext`s are defined.
|
|
24
|
+
* @alpha
|
|
18
25
|
*/
|
|
19
26
|
export interface IFluidHandleContext extends IProvideFluidHandleContext {
|
|
20
27
|
/**
|
|
@@ -41,14 +48,21 @@ export interface IFluidHandleContext extends IProvideFluidHandleContext {
|
|
|
41
48
|
resolveHandle(request: IRequest): Promise<IResponse>;
|
|
42
49
|
}
|
|
43
50
|
|
|
51
|
+
/**
|
|
52
|
+
* @alpha
|
|
53
|
+
*/
|
|
44
54
|
export const IFluidHandle: keyof IProvideFluidHandle = "IFluidHandle";
|
|
45
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @alpha
|
|
58
|
+
*/
|
|
46
59
|
export interface IProvideFluidHandle {
|
|
47
60
|
readonly IFluidHandle: IFluidHandle;
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
/**
|
|
51
64
|
* Handle to a shared {@link FluidObject}.
|
|
65
|
+
* @alpha
|
|
52
66
|
*/
|
|
53
67
|
export interface IFluidHandle<
|
|
54
68
|
// REVIEW: Constrain `T` to something? How do we support dds and datastores safely?
|
package/src/index.ts
CHANGED
|
@@ -45,13 +45,7 @@ export {
|
|
|
45
45
|
// TypeScript forgets the index signature when customers augment IRequestHeader if we export *.
|
|
46
46
|
// So we export the explicit members as a workaround:
|
|
47
47
|
// https://github.com/microsoft/TypeScript/issues/18877#issuecomment-476921038
|
|
48
|
-
export {
|
|
49
|
-
IRequest,
|
|
50
|
-
IRequestHeader,
|
|
51
|
-
IResponse,
|
|
52
|
-
IProvideFluidRouter,
|
|
53
|
-
IFluidRouter,
|
|
54
|
-
} from "./fluidRouter";
|
|
48
|
+
export { IRequest, IRequestHeader, IResponse } from "./fluidRouter";
|
|
55
49
|
|
|
56
50
|
export {
|
|
57
51
|
IFluidHandleContext,
|
|
@@ -78,3 +72,4 @@ export type {
|
|
|
78
72
|
} from "./logger";
|
|
79
73
|
export { LogLevel } from "./logger";
|
|
80
74
|
export { FluidObjectProviderKeys, FluidObject, FluidObjectKeys } from "./provider";
|
|
75
|
+
export { ConfigTypes, IConfigProviderBase } from "./config";
|
package/src/logger.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Examples of known categories, however category can be any string for extensibility.
|
|
8
8
|
*
|
|
9
9
|
* @deprecated Moved to \@fluidframework/telemetry-utils package
|
|
10
|
+
* @alpha
|
|
10
11
|
*/
|
|
11
12
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
12
13
|
|
|
@@ -16,6 +17,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
|
16
17
|
* @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
|
|
17
18
|
* easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
|
|
18
19
|
* General best practice is to explicitly log the fields you care about from objects.
|
|
20
|
+
* @internal
|
|
19
21
|
*/
|
|
20
22
|
export type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
|
|
21
23
|
|
|
@@ -23,6 +25,7 @@ export type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
|
|
|
23
25
|
* {@inheritDoc TelemetryBaseEventPropertyType}
|
|
24
26
|
*
|
|
25
27
|
* @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
|
|
28
|
+
* @alpha
|
|
26
29
|
*/
|
|
27
30
|
export type TelemetryEventPropertyType = string | number | boolean | undefined;
|
|
28
31
|
|
|
@@ -32,6 +35,7 @@ export type TelemetryEventPropertyType = string | number | boolean | undefined;
|
|
|
32
35
|
*
|
|
33
36
|
* This indicates that the value should be organized or handled differently by loggers in various first or third
|
|
34
37
|
* party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.
|
|
38
|
+
* @alpha
|
|
35
39
|
*/
|
|
36
40
|
export interface Tagged<V, T extends string = string> {
|
|
37
41
|
value: V;
|
|
@@ -42,6 +46,7 @@ export interface Tagged<V, T extends string = string> {
|
|
|
42
46
|
* @see {@link Tagged} for info on tagging
|
|
43
47
|
*
|
|
44
48
|
* @deprecated Use Tagged\<TelemetryBaseEventPropertyType\>
|
|
49
|
+
* @internal
|
|
45
50
|
*/
|
|
46
51
|
export interface ITaggedTelemetryPropertyType {
|
|
47
52
|
value: TelemetryEventPropertyType;
|
|
@@ -50,6 +55,7 @@ export interface ITaggedTelemetryPropertyType {
|
|
|
50
55
|
|
|
51
56
|
/**
|
|
52
57
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
58
|
+
* @alpha
|
|
53
59
|
*/
|
|
54
60
|
export type ITelemetryBaseProperties = ITelemetryProperties;
|
|
55
61
|
|
|
@@ -57,6 +63,7 @@ export type ITelemetryBaseProperties = ITelemetryProperties;
|
|
|
57
63
|
* {@inheritDoc ITelemetryBaseProperties}
|
|
58
64
|
*
|
|
59
65
|
* @deprecated Renamed to {@link ITelemetryBaseProperties}
|
|
66
|
+
* @alpha
|
|
60
67
|
*/
|
|
61
68
|
export interface ITelemetryProperties {
|
|
62
69
|
[index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
|
|
@@ -67,6 +74,7 @@ export interface ITelemetryProperties {
|
|
|
67
74
|
* Can contain any number of properties that get serialized as json payload.
|
|
68
75
|
* @param category - category of the event, like "error", "performance", "generic", etc.
|
|
69
76
|
* @param eventName - name of the event.
|
|
77
|
+
* @alpha
|
|
70
78
|
*/
|
|
71
79
|
export interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
|
|
72
80
|
category: string;
|
|
@@ -75,6 +83,7 @@ export interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
|
|
|
75
83
|
|
|
76
84
|
/**
|
|
77
85
|
* Specify levels of the logs.
|
|
86
|
+
* @alpha
|
|
78
87
|
*/
|
|
79
88
|
export const LogLevel = {
|
|
80
89
|
verbose: 10, // To log any verbose event for example when you are debugging something.
|
|
@@ -84,12 +93,14 @@ export const LogLevel = {
|
|
|
84
93
|
|
|
85
94
|
/**
|
|
86
95
|
* Specify a level to the log to filter out logs based on the level.
|
|
96
|
+
* @alpha
|
|
87
97
|
*/
|
|
88
98
|
export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|
|
89
99
|
|
|
90
100
|
/**
|
|
91
101
|
* Interface to output telemetry events.
|
|
92
102
|
* Implemented by hosting app / loader
|
|
103
|
+
* @alpha
|
|
93
104
|
*/
|
|
94
105
|
export interface ITelemetryBaseLogger {
|
|
95
106
|
send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
|
|
@@ -103,6 +114,7 @@ export interface ITelemetryBaseLogger {
|
|
|
103
114
|
*
|
|
104
115
|
* @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
|
|
105
116
|
* No replacement intended for FluidFramework consumers.
|
|
117
|
+
* @alpha
|
|
106
118
|
*/
|
|
107
119
|
export interface ITelemetryGenericEvent extends ITelemetryProperties {
|
|
108
120
|
eventName: string;
|
|
@@ -115,6 +127,7 @@ export interface ITelemetryGenericEvent extends ITelemetryProperties {
|
|
|
115
127
|
*
|
|
116
128
|
* @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
|
|
117
129
|
* No replacement intended for FluidFramework consumers.
|
|
130
|
+
* @alpha
|
|
118
131
|
*/
|
|
119
132
|
export interface ITelemetryErrorEvent extends ITelemetryProperties {
|
|
120
133
|
eventName: string;
|
|
@@ -126,6 +139,7 @@ export interface ITelemetryErrorEvent extends ITelemetryProperties {
|
|
|
126
139
|
*
|
|
127
140
|
* @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
|
|
128
141
|
* No replacement intended for FluidFramework consumers.
|
|
142
|
+
* @alpha
|
|
129
143
|
*/
|
|
130
144
|
export interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
|
|
131
145
|
duration?: number; // Duration of event (optional)
|
|
@@ -133,6 +147,7 @@ export interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
|
|
|
133
147
|
|
|
134
148
|
/**
|
|
135
149
|
* An error object that supports exporting its properties to be logged to telemetry
|
|
150
|
+
* @internal
|
|
136
151
|
*/
|
|
137
152
|
export interface ILoggingError extends Error {
|
|
138
153
|
/**
|
|
@@ -148,6 +163,7 @@ export interface ILoggingError extends Error {
|
|
|
148
163
|
*
|
|
149
164
|
* @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
|
|
150
165
|
* No replacement intended for FluidFramework consumers.
|
|
166
|
+
* @alpha
|
|
151
167
|
*/
|
|
152
168
|
export interface ITelemetryLogger extends ITelemetryBaseLogger {
|
|
153
169
|
/**
|
package/src/provider.ts
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*
|
|
28
28
|
* This pattern enables discovery, and delegation in a standard way which is central
|
|
29
29
|
* to FluidObject pattern.
|
|
30
|
+
* @alpha
|
|
30
31
|
*/
|
|
31
32
|
export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp
|
|
32
33
|
? never
|
|
@@ -69,7 +70,7 @@ export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string
|
|
|
69
70
|
*
|
|
70
71
|
* You can inspect multiple types via a intersection. For example:
|
|
71
72
|
* `FluidObject<IFoo & IBar>`
|
|
72
|
-
*
|
|
73
|
+
* @alpha
|
|
73
74
|
*/
|
|
74
75
|
export type FluidObject<T = unknown> = {
|
|
75
76
|
[P in FluidObjectProviderKeys<T>]?: T[P];
|
|
@@ -82,6 +83,6 @@ export type FluidObject<T = unknown> = {
|
|
|
82
83
|
* See {@link FluidObject}
|
|
83
84
|
*
|
|
84
85
|
* For example `FluidObjectKeys<IFoo & IBar>` would result in `"IFoo" | "IBar"`
|
|
85
|
-
*
|
|
86
|
+
* @alpha
|
|
86
87
|
*/
|
|
87
88
|
export type FluidObjectKeys<T> = keyof FluidObject<T>;
|