MCPcopy
hub / github.com/QwikDev/qwik / createQwikCity

Function createQwikCity

packages/qwik-city/src/middleware/deno/index.ts:43–185  ·  view source on GitHub ↗
(opts: QwikCityDenoOptions)

Source from the content-addressed store, hash-verified

41
42/** @public */
43export function createQwikCity(opts: QwikCityDenoOptions) {
44 const qwikSerializer = {
45 _deserializeData,
46 _serializeData,
47 _verifySerializable,
48 };
49 if (opts.manifest) {
50 setServerPlatform(opts.manifest);
51 }
52
53 const staticFolder = opts.static?.root ?? join(fromFileUrl(import.meta.url), '..', '..', 'dist');
54
55 async function router(request: Request, info: ServeHandlerInfo) {
56 try {
57 const url = getRequestUrl(request, opts, info);
58
59 const serverRequestEv: ServerRequestEvent<Response> = {
60 mode: 'server',
61 locale: undefined,
62 url,
63 // @ts-ignore
64 env: Deno.env,
65 request,
66 getWritableStream: (status, headers, cookies, resolve) => {
67 const { readable, writable } = new TransformStream<Uint8Array>();
68 const response = new Response(readable, {
69 status,
70 headers: mergeHeadersCookies(headers, cookies),
71 });
72 resolve(response);
73 return writable;
74 },
75 platform: {
76 ssr: true,
77 },
78 getClientConn: () => {
79 return opts.getClientConn
80 ? opts.getClientConn(request, info)
81 : {
82 ip: info.remoteAddr.hostname,
83 };
84 },
85 };
86
87 // send request to qwik city request handler
88 const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
89 if (handledResponse) {
90 handledResponse.completion.then((err) => {
91 if (err) {
92 console.error(err);
93 }
94 });
95 const response = await handledResponse.response;
96 if (response) {
97 return response;
98 }
99 }
100

Callers 1

entry.deno.tsFile · 0.90

Calls 2

setServerPlatformFunction · 0.90
joinFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…