Skip to content

Commit 33f68d8

Browse files
committed
chore(router): don't prop-drill serdes
1 parent ebf3de3 commit 33f68d8

File tree

15 files changed

+41
-132
lines changed

15 files changed

+41
-132
lines changed

packages/qwik-router/src/buildtime/vite/dev-server.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
resolveRequestHandlers,
1010
} from '../../middleware/request-handler/resolve-request-handlers';
1111
import { getQwikRouterServerData } from '../../middleware/request-handler/response-page';
12-
import type { QwikSerializer } from '../../middleware/request-handler/types';
1312
import {
1413
QDATA_JSON,
1514
getRouteMatchPathname,
@@ -226,10 +225,6 @@ export function ssrDevMiddleware(ctx: BuildContext, server: ViteDevServer) {
226225
const serverRequestEv = await fromNodeHttp(url, req, res, 'dev');
227226
Object.assign(serverRequestEv.platform, ctx.opts.platform);
228227

229-
const { _deserialize, _serialize, _verifySerializable } =
230-
await server.ssrLoadModule('@qwik-serializer');
231-
const qwikSerializer: QwikSerializer = { _deserialize, _serialize, _verifySerializable };
232-
233228
const rebuildRouteInfo: RebuildRouteInfoInternal = async (url: URL) => {
234229
const { serverPlugins, loadedRoute } = await resolveRoute(routeModulePaths, url);
235230
const requestHandlers = resolveRequestHandlers(
@@ -251,8 +246,7 @@ export function ssrDevMiddleware(ctx: BuildContext, server: ViteDevServer) {
251246
loadedRoute,
252247
requestHandlers,
253248
rebuildRouteInfo,
254-
ctx.opts.basePathname,
255-
qwikSerializer
249+
ctx.opts.basePathname
256250
);
257251
const result = await completion;
258252
if (result != null) {

packages/qwik-router/src/buildtime/vite/plugin.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import type {
2323
} from './types';
2424
import { validatePlugin } from './validate-plugin';
2525

26-
const QWIK_SERIALIZER = '@qwik-serializer';
2726
export const QWIK_ROUTER_CONFIG_ID = '@qwik-router-config';
2827
const QWIK_ROUTER_ENTRIES_ID = '@qwik-router-entries';
2928
const QWIK_ROUTER = '@qwik.dev/router';
@@ -160,9 +159,6 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
160159
},
161160

162161
resolveId(id) {
163-
if (id === QWIK_SERIALIZER) {
164-
return join(rootDir!, id);
165-
}
166162
if (id === QWIK_ROUTER_CONFIG_ID || id === QWIK_ROUTER_ENTRIES_ID) {
167163
return {
168164
id: join(rootDir!, id),
@@ -184,10 +180,6 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any {
184180
// @qwik-router-entries
185181
return generateQwikRouterEntries(ctx);
186182
}
187-
const isSerializer = id.endsWith(QWIK_SERIALIZER);
188-
if (isSerializer) {
189-
return `export {_deserialize, _serialize, _verifySerializable} from '@qwik.dev/core'`;
190-
}
191183
const isRouterConfig = id.endsWith(QWIK_ROUTER_CONFIG_ID);
192184
const isSwRegister = id.endsWith(QWIK_ROUTER_SW_REGISTER);
193185
if (isRouterConfig || isSwRegister) {

packages/qwik-router/src/middleware/azure-swa/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { AzureFunction, Context, HttpRequest } from '@azure/functions';
2-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
32
import { setServerPlatform } from '@qwik.dev/core/server';
43
import type {
54
ServerRenderOptions,
@@ -11,7 +10,6 @@ import {
1110
requestHandler,
1211
} from '@qwik.dev/router/middleware/request-handler';
1312
import { parseString } from 'set-cookie-parser';
14-
import type { QwikSerializer } from '../request-handler/types';
1513

1614
// @qwik.dev/router/middleware/azure-swa
1715

@@ -56,11 +54,6 @@ export function createQwikRouter(opts: QwikRouterAzureOptions): AzureFunction {
5654
console.warn('qwikCityPlan is deprecated. Simply remove it.');
5755
opts.qwikRouterConfig = opts.qwikCityPlan;
5856
}
59-
const qwikSerializer: QwikSerializer = {
60-
_deserialize,
61-
_serialize,
62-
_verifySerializable,
63-
};
6457
if (opts.manifest) {
6558
setServerPlatform(opts.manifest);
6659
}
@@ -116,7 +109,7 @@ export function createQwikRouter(opts: QwikRouterAzureOptions): AzureFunction {
116109
};
117110

118111
// send request to qwik router request handler
119-
const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
112+
const handledResponse = await requestHandler(serverRequestEv, opts);
120113
if (handledResponse) {
121114
handledResponse.completion.then((err) => {
122115
if (err) {

packages/qwik-router/src/middleware/bun/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/// <reference types="bun" />
2-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
32
import { setServerPlatform } from '@qwik.dev/core/server';
43
import type {
54
ClientConn,
@@ -26,7 +25,6 @@ export function createQwikRouter(opts: QwikRouterBunOptions) {
2625
// still missing from bun: last check was bun version 1.1.8
2726
globalThis.TextEncoderStream ||= _TextEncoderStream_polyfill;
2827

29-
const qwikSerializer = { _deserialize, _serialize, _verifySerializable };
3028
if (opts.manifest) {
3129
setServerPlatform(opts.manifest);
3230
}
@@ -66,7 +64,7 @@ export function createQwikRouter(opts: QwikRouterBunOptions) {
6664
};
6765

6866
// send request to qwik router request handler
69-
const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
67+
const handledResponse = await requestHandler(serverRequestEv, opts);
7068
if (handledResponse) {
7169
handledResponse.completion.then((v) => {
7270
if (v) {

packages/qwik-router/src/middleware/cloudflare-pages/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
21
import { setServerPlatform } from '@qwik.dev/core/server';
32
import type {
43
ServerRenderOptions,
@@ -27,7 +26,6 @@ export function createQwikRouter(opts: QwikRouterCloudflarePagesOptions) {
2726
} catch {
2827
globalThis.TextEncoderStream = _TextEncoderStream_polyfill;
2928
}
30-
const qwikSerializer = { _deserialize, _serialize, _verifySerializable };
3129
if (opts.manifest) {
3230
setServerPlatform(opts.manifest);
3331
}
@@ -92,7 +90,7 @@ export function createQwikRouter(opts: QwikRouterCloudflarePagesOptions) {
9290
};
9391

9492
// send request to qwik router request handler
95-
const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
93+
const handledResponse = await requestHandler(serverRequestEv, opts);
9694
if (handledResponse) {
9795
handledResponse.completion.then((v) => {
9896
if (v) {

packages/qwik-router/src/middleware/deno/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
21
import { setServerPlatform } from '@qwik.dev/core/server';
32
import type {
43
ClientConn,
@@ -14,7 +13,6 @@ import {
1413
import { MIME_TYPES } from '../request-handler/mime-types';
1514
// @ts-ignore
1615
import { extname, fromFileUrl, join } from 'https://deno.land/std/path/mod.ts';
17-
import type { QwikSerializer } from '../request-handler/types';
1816

1917
// @qwik.dev/router/middleware/deno
2018

@@ -36,11 +34,6 @@ export function createQwikRouter(opts: QwikRouterDenoOptions) {
3634
console.warn('qwikCityPlan is deprecated. Simply remove it.');
3735
opts.qwikRouterConfig = opts.qwikCityPlan;
3836
}
39-
const qwikSerializer: QwikSerializer = {
40-
_deserialize,
41-
_serialize,
42-
_verifySerializable,
43-
};
4437
if (opts.manifest) {
4538
setServerPlatform(opts.manifest);
4639
}
@@ -80,7 +73,7 @@ export function createQwikRouter(opts: QwikRouterDenoOptions) {
8073
};
8174

8275
// send request to qwik router request handler
83-
const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
76+
const handledResponse = await requestHandler(serverRequestEv, opts);
8477
if (handledResponse) {
8578
handledResponse.completion.then((v) => {
8679
if (v) {

packages/qwik-router/src/middleware/netlify-edge/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ import type {
44
ServerRequestEvent,
55
} from '@qwik.dev/router/middleware/request-handler';
66

7-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
87
import { setServerPlatform } from '@qwik.dev/core/server';
98
import {
109
getNotFound,
1110
isStaticPath,
1211
mergeHeadersCookies,
1312
requestHandler,
1413
} from '@qwik.dev/router/middleware/request-handler';
15-
import type { QwikSerializer } from '../request-handler/types';
1614

1715
// @qwik.dev/router/middleware/netlify-edge
1816

@@ -23,11 +21,6 @@ export function createQwikRouter(opts: QwikRouterNetlifyOptions) {
2321
console.warn('qwikCityPlan is deprecated. Simply remove it.');
2422
opts.qwikRouterConfig = opts.qwikCityPlan;
2523
}
26-
const qwikSerializer: QwikSerializer = {
27-
_deserialize,
28-
_serialize,
29-
_verifySerializable,
30-
};
3124
if (opts.manifest) {
3225
setServerPlatform(opts.manifest);
3326
}
@@ -65,7 +58,7 @@ export function createQwikRouter(opts: QwikRouterNetlifyOptions) {
6558
};
6659

6760
// send request to qwik router request handler
68-
const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
61+
const handledResponse = await requestHandler(serverRequestEv, opts);
6962
if (handledResponse) {
7063
handledResponse.completion.then((v) => {
7164
if (v) {

packages/qwik-router/src/middleware/node/index.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal';
21
import { setServerPlatform } from '@qwik.dev/core/server';
32
import type { ClientConn, ServerRenderOptions } from '@qwik.dev/router/middleware/request-handler';
43
import {
@@ -12,7 +11,6 @@ import type { Http2ServerRequest } from 'node:http2';
1211
import { basename, extname, join } from 'node:path';
1312
import { fileURLToPath } from 'node:url';
1413
import { MIME_TYPES } from '../request-handler/mime-types';
15-
import type { QwikSerializer } from '../request-handler/types';
1614
import { computeOrigin, fromNodeHttp, getUrl } from './http';
1715

1816
// @qwik.dev/router/middleware/node
@@ -24,12 +22,6 @@ export function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNo
2422
opts.qwikRouterConfig = opts.qwikCityPlan;
2523
}
2624

27-
const qwikSerializer: QwikSerializer = {
28-
_deserialize,
29-
_serialize,
30-
_verifySerializable,
31-
};
32-
3325
if (opts.manifest) {
3426
setServerPlatform(opts.manifest);
3527
}
@@ -50,7 +42,7 @@ export function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNo
5042
'server',
5143
opts.getClientConn
5244
);
53-
const handled = await requestHandler(serverRequestEv, opts, qwikSerializer);
45+
const handled = await requestHandler(serverRequestEv, opts);
5446
if (handled) {
5547
const err = await handled.completion;
5648
if (err) {

packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
```ts
66

77
import type { Action } from '@qwik.dev/router';
8-
import type { _deserialize } from '@qwik.dev/core/internal';
98
import type { EnvGetter as EnvGetter_2 } from '@qwik.dev/router/middleware/request-handler';
109
import type { FailReturn } from '@qwik.dev/router';
1110
import type { Loader as Loader_2 } from '@qwik.dev/router';
@@ -18,9 +17,7 @@ import { RequestEvent as RequestEvent_2 } from '@qwik.dev/router/middleware/requ
1817
import type { RequestHandler as RequestHandler_2 } from '@qwik.dev/router/middleware/request-handler';
1918
import type { ResolveSyncValue as ResolveSyncValue_2 } from '@qwik.dev/router/middleware/request-handler';
2019
import { SerializationStrategy } from '@qwik.dev/core/internal';
21-
import type { _serialize } from '@qwik.dev/core/internal';
2220
import type { ValueOrPromise } from '@qwik.dev/core';
23-
import type { _verifySerializable } from '@qwik.dev/core/internal';
2421

2522
// @public (undocumented)
2623
export class AbortMessage {
@@ -171,11 +168,10 @@ export const RequestEvShareQData = "qData";
171168
// @public (undocumented)
172169
export type RequestHandler<PLATFORM = QwikRouterPlatform> = (ev: RequestEvent<PLATFORM>) => Promise<void> | void;
173170

174-
// Warning: (ae-forgotten-export) The symbol "QwikSerializer" needs to be exported by the entry point index.d.ts
175171
// Warning: (ae-forgotten-export) The symbol "QwikRouterRun" needs to be exported by the entry point index.d.ts
176172
//
177173
// @public
178-
export function requestHandler<T = unknown>(serverRequestEv: ServerRequestEvent<T>, opts: ServerRenderOptions, qwikSerializer: QwikSerializer): Promise<QwikRouterRun<T> | null>;
174+
export function requestHandler<T = unknown>(serverRequestEv: ServerRequestEvent<T>, opts: ServerRenderOptions): Promise<QwikRouterRun<T> | null>;
179175

180176
// @public (undocumented)
181177
export interface ResolveSyncValue {

packages/qwik-router/src/middleware/request-handler/request-event.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { ValueOrPromise } from '@qwik.dev/core';
2-
import { _UNINITIALIZED, type SerializationStrategy } from '@qwik.dev/core/internal';
2+
import { _deserialize, _UNINITIALIZED, type SerializationStrategy } from '@qwik.dev/core/internal';
33
import { QDATA_KEY } from '../../runtime/src/constants';
44
import {
55
LoadedRouteProp,
@@ -23,7 +23,6 @@ import { encoder, getRouteLoaderPromise } from './resolve-request-handlers';
2323
import type {
2424
CacheControl,
2525
CacheControlTarget,
26-
QwikSerializer,
2726
RequestEvent,
2827
RequestEventCommon,
2928
RequestEventLoader,
@@ -37,7 +36,6 @@ import { IsQData, QDATA_JSON, QDATA_JSON_LEN } from './user-response';
3736
const RequestEvLoaders = Symbol('RequestEvLoaders');
3837
const RequestEvMode = Symbol('RequestEvMode');
3938
const RequestEvRoute = Symbol('RequestEvRoute');
40-
export const RequestEvQwikSerializer = Symbol('RequestEvQwikSerializer');
4139
export const RequestEvLoaderSerializationStrategyMap = Symbol(
4240
'RequestEvLoaderSerializationStrategyMap'
4341
);
@@ -55,7 +53,6 @@ export function createRequestEvent(
5553
loadedRoute: LoadedRoute | null,
5654
requestHandlers: RequestHandler<any>[],
5755
basePathname: string,
58-
qwikSerializer: QwikSerializer,
5956
resolved: (response: any) => void
6057
) {
6158
const { request, platform, env } = serverRequestEv;
@@ -160,7 +157,6 @@ export function createRequestEvent(
160157
get [RequestEvRoute]() {
161158
return loadedRoute;
162159
},
163-
[RequestEvQwikSerializer]: qwikSerializer,
164160
cookie,
165161
headers,
166162
env,
@@ -213,7 +209,7 @@ export function createRequestEvent(
213209
}
214210
if (loaders[id] === _UNINITIALIZED) {
215211
const isDev = getRequestMode(requestEv) === 'dev';
216-
await getRouteLoaderPromise(loaderOrAction, loaders, requestEv, isDev, qwikSerializer);
212+
await getRouteLoaderPromise(loaderOrAction, loaders, requestEv, isDev);
217213
}
218214
}
219215

@@ -295,7 +291,7 @@ export function createRequestEvent(
295291
if (requestData !== undefined) {
296292
return requestData;
297293
}
298-
return (requestData = parseRequest(requestEv, sharedMap, qwikSerializer));
294+
return (requestData = parseRequest(requestEv, sharedMap));
299295
},
300296

301297
json: (statusCode: number, data: any) => {
@@ -341,7 +337,6 @@ export interface RequestEventInternal extends RequestEvent, RequestEventLoader {
341337
[RequestEvLoaderSerializationStrategyMap]: Map<string, SerializationStrategy>;
342338
[RequestEvMode]: ServerRequestMode;
343339
[RequestEvRoute]: LoadedRoute | null;
344-
[RequestEvQwikSerializer]: QwikSerializer;
345340

346341
/**
347342
* Check if this request is already written to.
@@ -384,8 +379,7 @@ const ABORT_INDEX = Number.MAX_SAFE_INTEGER;
384379

385380
const parseRequest = async (
386381
{ request, method, query }: RequestEventInternal,
387-
sharedMap: Map<string, any>,
388-
qwikSerializer: QwikSerializer
382+
sharedMap: Map<string, any>
389383
): Promise<JSONValue | undefined> => {
390384
const type = request.headers.get('content-type')?.split(/[;,]/, 1)[0].trim() ?? '';
391385
if (type === 'application/x-www-form-urlencoded' || type === 'multipart/form-data') {
@@ -400,13 +394,13 @@ const parseRequest = async (
400394
const data = query.get(QDATA_KEY);
401395
if (data) {
402396
try {
403-
return qwikSerializer._deserialize(decodeURIComponent(data)) as JSONValue;
397+
return _deserialize(decodeURIComponent(data)) as JSONValue;
404398
} catch {
405399
//
406400
}
407401
}
408402
}
409-
return qwikSerializer._deserialize(await request.text()) as JSONValue;
403+
return _deserialize(await request.text()) as JSONValue;
410404
}
411405
return undefined;
412406
};

0 commit comments

Comments
 (0)