@client-compose/client 0.5.1 → 0.7.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/README.md +8 -1
- package/dist/index.d.ts +39 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +181 -21
- package/dist/index.js.map +1 -1
- package/dist/proxy.d.ts +9 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +87 -21
- package/dist/proxy.js.map +1 -1
- package/dist/testing.d.ts +19 -2
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +118 -20
- package/dist/testing.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +218 -20
- package/src/proxy.ts +107 -25
- package/src/testing.ts +147 -20
package/dist/testing.d.ts
CHANGED
|
@@ -19,6 +19,15 @@ export interface RecordedScreenRequest extends RecordedRequest {
|
|
|
19
19
|
client: ClientContext | undefined;
|
|
20
20
|
islands: Capabilities;
|
|
21
21
|
}
|
|
22
|
+
/** An island request (spec §4.5): a page of one island, or the island resolved again. */
|
|
23
|
+
export interface RecordedIslandRequest extends RecordedRequest {
|
|
24
|
+
screen: string;
|
|
25
|
+
key: string;
|
|
26
|
+
version: number;
|
|
27
|
+
params: Record<string, string>;
|
|
28
|
+
cursor: string | undefined;
|
|
29
|
+
client: ClientContext | undefined;
|
|
30
|
+
}
|
|
22
31
|
export interface RecordedActionRequest extends RecordedRequest {
|
|
23
32
|
action: string;
|
|
24
33
|
version: number;
|
|
@@ -31,6 +40,8 @@ export interface FakeGatewayHandlers {
|
|
|
31
40
|
screens?: Record<string, (request: RecordedScreenRequest) => FakeResponse>;
|
|
32
41
|
/** By action name. */
|
|
33
42
|
actions?: Record<string, (request: RecordedActionRequest) => FakeResponse>;
|
|
43
|
+
/** Island requests, by `"{screen}/{key}"`. */
|
|
44
|
+
islands?: Record<string, (request: RecordedIslandRequest) => FakeResponse>;
|
|
34
45
|
/** Anything else, e.g. uploads to storage: return undefined to leave a request to the others. */
|
|
35
46
|
other?: (request: RecordedRequest) => FakeResponse | undefined;
|
|
36
47
|
}
|
|
@@ -40,6 +51,7 @@ export interface FakeGateway {
|
|
|
40
51
|
/** Every request received, in order. */
|
|
41
52
|
requests: RecordedRequest[];
|
|
42
53
|
screenRequests(): RecordedScreenRequest[];
|
|
54
|
+
islandRequests(): RecordedIslandRequest[];
|
|
43
55
|
actionRequests(): RecordedActionRequest[];
|
|
44
56
|
}
|
|
45
57
|
/** A composer whose screens and actions are the handlers given. */
|
|
@@ -53,12 +65,17 @@ export interface InstalledFakeGateway extends FakeGateway {
|
|
|
53
65
|
* app rendered in a test). Call `restore()` after the test.
|
|
54
66
|
*/
|
|
55
67
|
export declare function installFakeGateway(handlers?: FakeGatewayHandlers): InstalledFakeGateway;
|
|
56
|
-
/**
|
|
57
|
-
|
|
68
|
+
/**
|
|
69
|
+
* An island in a screen or island response, typed by its generated descriptor. Give `next` for an
|
|
70
|
+
* island with more pages (spec §4.5).
|
|
71
|
+
*/
|
|
72
|
+
export declare function island<P>(key: string, descriptor: IslandDescriptor<P>, props: P, next?: string): IslandEntry<P>;
|
|
58
73
|
/** An island that failed on the composer (spec §3.4). */
|
|
59
74
|
export declare function islandError(key: string, descriptor: IslandDescriptor<unknown>, error: IslandError): IslandEntry;
|
|
60
75
|
/** A screen response. */
|
|
61
76
|
export declare function screen(id: string, islands: IslandEntry<unknown>[], meta?: ScreenMeta): FakeResponse;
|
|
77
|
+
/** An island response (spec §4.5): a page of one island, or the island resolved again. */
|
|
78
|
+
export declare function islandResponse(screen: string, entry: IslandEntry<unknown>): FakeResponse;
|
|
62
79
|
/** A screen request that fails, e.g. `screenError(404, "not_found")` or `screenError(401, "unauthenticated")`. */
|
|
63
80
|
export declare function screenError(status: number, code: string): FakeResponse;
|
|
64
81
|
/** An action that succeeded, with its result typed by the descriptor. */
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// const gateway = createFakeGateway({
|
|
6
6
|
// screens: { profile: () => screen("profile", [island("header", ProfileHeaderV1, { name: "Ada" })]) },
|
|
7
7
|
// actions: { follow: () => actionOk(FollowUserV1, { followers: 8 }) },
|
|
8
|
+
// islands: { "profile/posts": (r) => islandResponse("profile", island("posts", PostsV1, …, "page:3")) },
|
|
8
9
|
// });
|
|
9
10
|
// // pass gateway.fetch as the client's fetch, then assert on gateway.actionRequests()
|
|
10
11
|
//
|
|
@@ -12,13 +13,15 @@
|
|
|
12
13
|
import { PROTOCOL_VERSION, } from "@client-compose/protocol";
|
|
13
14
|
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
14
15
|
function strings(value) {
|
|
15
|
-
if (!isRecord(value))
|
|
16
|
+
if (!isRecord(value)) {
|
|
16
17
|
return {};
|
|
18
|
+
}
|
|
17
19
|
return Object.fromEntries(Object.entries(value).filter((e) => typeof e[1] === "string"));
|
|
18
20
|
}
|
|
19
21
|
function capabilities(value) {
|
|
20
|
-
if (!isRecord(value))
|
|
22
|
+
if (!isRecord(value)) {
|
|
21
23
|
return {};
|
|
24
|
+
}
|
|
22
25
|
return Object.fromEntries(Object.entries(value).map(([type, versions]) => [
|
|
23
26
|
type,
|
|
24
27
|
Array.isArray(versions) ? versions.filter((v) => typeof v === "number") : [],
|
|
@@ -27,13 +30,19 @@ function capabilities(value) {
|
|
|
27
30
|
function clientContext(value) {
|
|
28
31
|
if (!isRecord(value) ||
|
|
29
32
|
typeof value.platform !== "string" ||
|
|
30
|
-
typeof value.appVersion !== "string")
|
|
33
|
+
typeof value.appVersion !== "string") {
|
|
31
34
|
return undefined;
|
|
32
|
-
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...value,
|
|
38
|
+
platform: value.platform,
|
|
39
|
+
appVersion: value.appVersion,
|
|
40
|
+
};
|
|
33
41
|
}
|
|
34
42
|
function parseBody(body) {
|
|
35
|
-
if (typeof body !== "string")
|
|
43
|
+
if (typeof body !== "string") {
|
|
36
44
|
return body;
|
|
45
|
+
}
|
|
37
46
|
try {
|
|
38
47
|
return JSON.parse(body);
|
|
39
48
|
}
|
|
@@ -42,8 +51,9 @@ function parseBody(body) {
|
|
|
42
51
|
}
|
|
43
52
|
}
|
|
44
53
|
function urlOf(input) {
|
|
45
|
-
if (typeof input === "string")
|
|
54
|
+
if (typeof input === "string") {
|
|
46
55
|
return input;
|
|
56
|
+
}
|
|
47
57
|
return input instanceof URL ? input.href : input.url;
|
|
48
58
|
}
|
|
49
59
|
function headersOf(init) {
|
|
@@ -51,10 +61,15 @@ function headersOf(init) {
|
|
|
51
61
|
new Headers(init).forEach((value, name) => (out[name] = value));
|
|
52
62
|
return out;
|
|
53
63
|
}
|
|
64
|
+
function isIslandURL(url) {
|
|
65
|
+
return /\/screens\/[^/]+\/islands\/[^/?]+/.test(url);
|
|
66
|
+
}
|
|
54
67
|
function asScreenRequest(request) {
|
|
55
68
|
const { body } = request;
|
|
56
|
-
|
|
69
|
+
const isScreen = request.url.includes("/screens/") && !isIslandURL(request.url);
|
|
70
|
+
if (!isScreen || !isRecord(body) || typeof body.screen !== "string") {
|
|
57
71
|
return undefined;
|
|
72
|
+
}
|
|
58
73
|
return {
|
|
59
74
|
...request,
|
|
60
75
|
screen: body.screen,
|
|
@@ -63,10 +78,29 @@ function asScreenRequest(request) {
|
|
|
63
78
|
islands: capabilities(body.islands),
|
|
64
79
|
};
|
|
65
80
|
}
|
|
81
|
+
function asIslandRequest(request) {
|
|
82
|
+
const { body } = request;
|
|
83
|
+
if (!isIslandURL(request.url) || !isRecord(body)) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
if (typeof body.screen !== "string" || typeof body.key !== "string") {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
...request,
|
|
91
|
+
screen: body.screen,
|
|
92
|
+
key: body.key,
|
|
93
|
+
version: typeof body.version === "number" ? body.version : 0,
|
|
94
|
+
params: strings(body.params),
|
|
95
|
+
cursor: typeof body.cursor === "string" ? body.cursor : undefined,
|
|
96
|
+
client: clientContext(body.client),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
66
99
|
function asActionRequest(request) {
|
|
67
100
|
const { body } = request;
|
|
68
|
-
if (!request.url.includes("/actions/") || !isRecord(body) || typeof body.action !== "string")
|
|
101
|
+
if (!request.url.includes("/actions/") || !isRecord(body) || typeof body.action !== "string") {
|
|
69
102
|
return undefined;
|
|
103
|
+
}
|
|
70
104
|
return {
|
|
71
105
|
...request,
|
|
72
106
|
action: body.action,
|
|
@@ -94,22 +128,31 @@ export function createFakeGateway(handlers = {}) {
|
|
|
94
128
|
};
|
|
95
129
|
requests.push(request);
|
|
96
130
|
const other = handlers.other?.(request);
|
|
97
|
-
if (other)
|
|
131
|
+
if (other) {
|
|
98
132
|
return respond(other);
|
|
133
|
+
}
|
|
134
|
+
const islandRequest = asIslandRequest(request);
|
|
135
|
+
const islandHandler = islandRequest && handlers.islands?.[`${islandRequest.screen}/${islandRequest.key}`];
|
|
136
|
+
if (islandRequest && islandHandler) {
|
|
137
|
+
return respond(islandHandler(islandRequest));
|
|
138
|
+
}
|
|
99
139
|
const screenRequest = asScreenRequest(request);
|
|
100
140
|
const screenHandler = screenRequest && handlers.screens?.[screenRequest.screen];
|
|
101
|
-
if (screenRequest && screenHandler)
|
|
141
|
+
if (screenRequest && screenHandler) {
|
|
102
142
|
return respond(screenHandler(screenRequest));
|
|
143
|
+
}
|
|
103
144
|
const actionRequest = asActionRequest(request);
|
|
104
145
|
const actionHandler = actionRequest && handlers.actions?.[actionRequest.action];
|
|
105
|
-
if (actionRequest && actionHandler)
|
|
146
|
+
if (actionRequest && actionHandler) {
|
|
106
147
|
return respond(actionHandler(actionRequest));
|
|
148
|
+
}
|
|
107
149
|
throw new Error(`fake gateway: no handler for ${request.method} ${request.url} ${JSON.stringify(request.body)}`);
|
|
108
150
|
}
|
|
109
151
|
return {
|
|
110
152
|
fetch: fakeFetch,
|
|
111
153
|
requests,
|
|
112
154
|
screenRequests: () => requests.flatMap((r) => asScreenRequest(r) ?? []),
|
|
155
|
+
islandRequests: () => requests.flatMap((r) => asIslandRequest(r) ?? []),
|
|
113
156
|
actionRequests: () => requests.flatMap((r) => asActionRequest(r) ?? []),
|
|
114
157
|
};
|
|
115
158
|
}
|
|
@@ -129,19 +172,51 @@ export function installFakeGateway(handlers = {}) {
|
|
|
129
172
|
};
|
|
130
173
|
}
|
|
131
174
|
// ---- Responses ----
|
|
132
|
-
/**
|
|
133
|
-
|
|
134
|
-
|
|
175
|
+
/**
|
|
176
|
+
* An island in a screen or island response, typed by its generated descriptor. Give `next` for an
|
|
177
|
+
* island with more pages (spec §4.5).
|
|
178
|
+
*/
|
|
179
|
+
export function island(key, descriptor, props, next) {
|
|
180
|
+
return {
|
|
181
|
+
key,
|
|
182
|
+
type: descriptor.type,
|
|
183
|
+
version: descriptor.version,
|
|
184
|
+
status: "ok",
|
|
185
|
+
props,
|
|
186
|
+
...(next !== undefined && { next }),
|
|
187
|
+
};
|
|
135
188
|
}
|
|
136
189
|
/** An island that failed on the composer (spec §3.4). */
|
|
137
190
|
export function islandError(key, descriptor, error) {
|
|
138
|
-
return {
|
|
191
|
+
return {
|
|
192
|
+
key,
|
|
193
|
+
type: descriptor.type,
|
|
194
|
+
version: descriptor.version,
|
|
195
|
+
status: "error",
|
|
196
|
+
error,
|
|
197
|
+
};
|
|
139
198
|
}
|
|
140
199
|
/** A screen response. */
|
|
141
200
|
export function screen(id, islands, meta) {
|
|
142
201
|
return {
|
|
143
202
|
status: 200,
|
|
144
|
-
body: {
|
|
203
|
+
body: {
|
|
204
|
+
protocol: PROTOCOL_VERSION,
|
|
205
|
+
screen: id,
|
|
206
|
+
islands,
|
|
207
|
+
...(meta && { meta }),
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/** An island response (spec §4.5): a page of one island, or the island resolved again. */
|
|
212
|
+
export function islandResponse(screen, entry) {
|
|
213
|
+
return {
|
|
214
|
+
status: 200,
|
|
215
|
+
body: {
|
|
216
|
+
protocol: PROTOCOL_VERSION,
|
|
217
|
+
screen,
|
|
218
|
+
island: entry,
|
|
219
|
+
},
|
|
145
220
|
};
|
|
146
221
|
}
|
|
147
222
|
/** A screen request that fails, e.g. `screenError(404, "not_found")` or `screenError(401, "unauthenticated")`. */
|
|
@@ -150,13 +225,36 @@ export function screenError(status, code) {
|
|
|
150
225
|
}
|
|
151
226
|
/** An action that succeeded, with its result typed by the descriptor. */
|
|
152
227
|
export function actionOk(action, result, effects) {
|
|
153
|
-
const base = {
|
|
154
|
-
|
|
228
|
+
const base = {
|
|
229
|
+
protocol: PROTOCOL_VERSION,
|
|
230
|
+
action: action.action,
|
|
231
|
+
version: action.version,
|
|
232
|
+
};
|
|
233
|
+
return {
|
|
234
|
+
status: 200,
|
|
235
|
+
body: {
|
|
236
|
+
...base,
|
|
237
|
+
status: "ok",
|
|
238
|
+
result,
|
|
239
|
+
...(effects && { effects }),
|
|
240
|
+
},
|
|
241
|
+
};
|
|
155
242
|
}
|
|
156
243
|
/** An action that ended with one of its declared errors. */
|
|
157
244
|
export function actionError(action, error) {
|
|
158
|
-
const base = {
|
|
159
|
-
|
|
245
|
+
const base = {
|
|
246
|
+
protocol: PROTOCOL_VERSION,
|
|
247
|
+
action: action.action,
|
|
248
|
+
version: action.version,
|
|
249
|
+
};
|
|
250
|
+
return {
|
|
251
|
+
status: 200,
|
|
252
|
+
body: {
|
|
253
|
+
...base,
|
|
254
|
+
status: "error",
|
|
255
|
+
error,
|
|
256
|
+
},
|
|
257
|
+
};
|
|
160
258
|
}
|
|
161
259
|
/** An action the composer didn't perform, e.g. `actionFailure(401, "unauthenticated")` (spec §5.4). */
|
|
162
260
|
export function actionFailure(status, code) {
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,yFAAyF;AACzF,EAAE;AACF,0CAA0C;AAC1C,6GAA6G;AAC7G,6EAA6E;AAC7E,UAAU;AACV,2FAA2F;AAC3F,EAAE;AACF,0FAA0F;AAE1F,OAAO,EASL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@client-compose/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Framework-agnostic Client Compose client: island registry, screen requests and render planning.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"client-compose",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"LICENSE"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@client-compose/protocol": "0.
|
|
47
|
+
"@client-compose/protocol": "0.4.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@client-compose/conformance": "0.
|
|
50
|
+
"@client-compose/conformance": "0.7.0"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|