@torpor/build 0.1.2 → 0.1.4
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 +12 -0
- package/dist/{Server-CB99REgs.d.cts → Site-Df1k0TuQ.d.cts} +27 -1
- package/dist/{Server-CB99REgs.d.ts → Site-Df1k0TuQ.d.ts} +27 -1
- package/dist/bin/index.cjs +164 -166
- package/dist/bin/index.cjs.map +1 -1
- package/dist/bin/index.js +2 -3
- package/dist/bin/index.js.map +1 -1
- package/dist/chunk-L3QBUPXY.js +176 -0
- package/dist/chunk-L3QBUPXY.js.map +1 -0
- package/dist/{chunk-ENB7RXFX.js → chunk-Q623TPGO.js} +43 -185
- package/dist/chunk-Q623TPGO.js.map +1 -0
- package/dist/index.cjs +174 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/run.cjs +164 -166
- package/dist/run.cjs.map +1 -1
- package/dist/run.d.cts +1 -2
- package/dist/run.d.ts +1 -2
- package/dist/run.js +2 -3
- package/package.json +1 -1
- package/src/index.ts +4 -1
- package/src/site/Site.ts +2 -2
- package/src/site/clientEntry.ts +1 -1
- package/src/site/defaultAdapter.ts +11 -0
- package/src/site/runDev.ts +1 -1
- package/src/site/serverEntry.ts +2 -2
- package/tsconfig.json +1 -1
- package/tsup.config.ts +1 -9
- package/dist/Site-CgoeDt8k.d.cts +0 -29
- package/dist/Site-D95nwrAg.d.ts +0 -29
- package/dist/adapters/cloudflare/index.cjs +0 -125
- package/dist/adapters/cloudflare/index.cjs.map +0 -1
- package/dist/adapters/cloudflare/index.d.cts +0 -13
- package/dist/adapters/cloudflare/index.d.ts +0 -13
- package/dist/adapters/cloudflare/index.js +0 -80
- package/dist/adapters/cloudflare/index.js.map +0 -1
- package/dist/adapters/node/index.cjs +0 -152
- package/dist/adapters/node/index.cjs.map +0 -1
- package/dist/adapters/node/index.d.cts +0 -8
- package/dist/adapters/node/index.d.ts +0 -8
- package/dist/adapters/node/index.js +0 -8
- package/dist/adapters/node/index.js.map +0 -1
- package/dist/chunk-5X4T3PZN.js +0 -23
- package/dist/chunk-5X4T3PZN.js.map +0 -1
- package/dist/chunk-ALHFYD7U.js +0 -113
- package/dist/chunk-ALHFYD7U.js.map +0 -1
- package/dist/chunk-ENB7RXFX.js.map +0 -1
- package/dist/chunk-V4XTDQEV.js +0 -19
- package/dist/chunk-V4XTDQEV.js.map +0 -1
- package/src/adapters/cloudflare/_worker.ts +0 -38
- package/src/adapters/cloudflare/index.ts +0 -98
- package/src/adapters/node/constants.ts +0 -1
- package/src/adapters/node/createFetchHandler.ts +0 -29
- package/src/adapters/node/createNodeServer.ts +0 -8
- package/src/adapters/node/index.ts +0 -18
- package/src/adapters/node/nodeMessageToRequest.ts +0 -43
- package/src/adapters/node/responseToNodeResponse.ts +0 -44
- /package/src/{adapters/node → server/connect}/createMiddlewareHandler.ts +0 -0
- /package/src/{adapters/node → server/connect}/flattenHeaders.ts +0 -0
- /package/src/{adapters/node → server/connect}/nodeMessageToNodeResponse.ts +0 -0
- /package/src/{adapters/node → server/connect}/readableToBuffer.ts +0 -0
- /package/src/{adapters/node → server/connect}/requestToNodeMessage.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
1
2
|
import { SerializeOptions } from 'cookie';
|
|
2
3
|
|
|
3
4
|
declare class CookieHelper {
|
|
@@ -71,4 +72,29 @@ declare class RouteHandler {
|
|
|
71
72
|
constructor(path: string, fn: ServerFunction);
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
type Adapter = {
|
|
76
|
+
prebuild?: (site: Site) => Promise<void> | void;
|
|
77
|
+
postbuild?: (site: Site) => Promise<void> | void;
|
|
78
|
+
serve: (server: Server, site: Site) => void;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The Site class contains the information necessary to setup a @torpor/build
|
|
83
|
+
* site, including routes, plugins, and options.
|
|
84
|
+
*/
|
|
85
|
+
declare class Site {
|
|
86
|
+
#private;
|
|
87
|
+
root: string;
|
|
88
|
+
routes: {
|
|
89
|
+
path: string;
|
|
90
|
+
file: string;
|
|
91
|
+
type: number;
|
|
92
|
+
}[];
|
|
93
|
+
plugins: Plugin[];
|
|
94
|
+
adapter: Adapter;
|
|
95
|
+
constructor();
|
|
96
|
+
addRouteFolder(folder: string): Promise<void>;
|
|
97
|
+
addRouteFile(path: string, file: string): void;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { type Adapter as A, CookieHelper as C, HeaderHelper as H, Site as S, Server as a };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
1
2
|
import { SerializeOptions } from 'cookie';
|
|
2
3
|
|
|
3
4
|
declare class CookieHelper {
|
|
@@ -71,4 +72,29 @@ declare class RouteHandler {
|
|
|
71
72
|
constructor(path: string, fn: ServerFunction);
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
type Adapter = {
|
|
76
|
+
prebuild?: (site: Site) => Promise<void> | void;
|
|
77
|
+
postbuild?: (site: Site) => Promise<void> | void;
|
|
78
|
+
serve: (server: Server, site: Site) => void;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The Site class contains the information necessary to setup a @torpor/build
|
|
83
|
+
* site, including routes, plugins, and options.
|
|
84
|
+
*/
|
|
85
|
+
declare class Site {
|
|
86
|
+
#private;
|
|
87
|
+
root: string;
|
|
88
|
+
routes: {
|
|
89
|
+
path: string;
|
|
90
|
+
file: string;
|
|
91
|
+
type: number;
|
|
92
|
+
}[];
|
|
93
|
+
plugins: Plugin[];
|
|
94
|
+
adapter: Adapter;
|
|
95
|
+
constructor();
|
|
96
|
+
addRouteFolder(folder: string): Promise<void>;
|
|
97
|
+
addRouteFile(path: string, file: string): void;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { type Adapter as A, CookieHelper as C, HeaderHelper as H, Site as S, Server as a };
|
package/dist/bin/index.cjs
CHANGED
|
@@ -137,170 +137,8 @@ var import_vite3 = __toESM(require("@torpor/unplugin/vite"), 1);
|
|
|
137
137
|
var import_dotenv = require("dotenv");
|
|
138
138
|
var import_node_fs3 = require("fs");
|
|
139
139
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
140
|
-
var import_node_url = require("url");
|
|
141
140
|
var import_vite4 = require("vite");
|
|
142
141
|
|
|
143
|
-
// src/adapters/node/flattenHeaders.ts
|
|
144
|
-
function flattenHeaders(headers) {
|
|
145
|
-
const flatHeaders = new Headers();
|
|
146
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
147
|
-
if (value === void 0 || value === null) {
|
|
148
|
-
continue;
|
|
149
|
-
} else if (Array.isArray(value)) {
|
|
150
|
-
for (const v of value) {
|
|
151
|
-
if (v !== void 0 && v !== null) {
|
|
152
|
-
value.forEach((v2) => flatHeaders.append(key, v2));
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
flatHeaders.set(key, String(value));
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return flatHeaders;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// src/adapters/node/nodeMessageToNodeResponse.ts
|
|
163
|
-
var import_node_http = require("http");
|
|
164
|
-
var import_node_stream = require("stream");
|
|
165
|
-
function nodeMessageToNodeResponse(incomingMessage) {
|
|
166
|
-
const res = new import_node_http.ServerResponse(incomingMessage);
|
|
167
|
-
const passThrough = new import_node_stream.PassThrough();
|
|
168
|
-
let handled = false;
|
|
169
|
-
const onReadable = (cb) => {
|
|
170
|
-
const handleReadable = () => {
|
|
171
|
-
if (handled) return;
|
|
172
|
-
handled = true;
|
|
173
|
-
cb({
|
|
174
|
-
readable: import_node_stream.Readable.from(passThrough),
|
|
175
|
-
headers: res.getHeaders(),
|
|
176
|
-
status: res.statusCode
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
passThrough.once("readable", handleReadable);
|
|
180
|
-
passThrough.once("end", handleReadable);
|
|
181
|
-
};
|
|
182
|
-
passThrough.once("finish", () => {
|
|
183
|
-
res.emit("finish");
|
|
184
|
-
});
|
|
185
|
-
passThrough.once("close", () => {
|
|
186
|
-
res.destroy();
|
|
187
|
-
res.emit("close");
|
|
188
|
-
});
|
|
189
|
-
passThrough.on("drain", () => {
|
|
190
|
-
res.emit("drain");
|
|
191
|
-
});
|
|
192
|
-
res.write = passThrough.write.bind(passThrough);
|
|
193
|
-
res.end = passThrough.end.bind(passThrough);
|
|
194
|
-
res.writeHead = function writeHead(statusCode, statusMessage, headers) {
|
|
195
|
-
res.statusCode = statusCode;
|
|
196
|
-
if (typeof statusMessage === "object") {
|
|
197
|
-
headers = statusMessage;
|
|
198
|
-
statusMessage = void 0;
|
|
199
|
-
}
|
|
200
|
-
if (headers) {
|
|
201
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
202
|
-
if (value !== void 0) {
|
|
203
|
-
res.setHeader(key, value);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return res;
|
|
208
|
-
};
|
|
209
|
-
return {
|
|
210
|
-
res,
|
|
211
|
-
onReadable
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// src/adapters/node/readableToBuffer.ts
|
|
216
|
-
function readableToBuffer(req) {
|
|
217
|
-
return new Promise((resolve, reject) => {
|
|
218
|
-
const chunks = [];
|
|
219
|
-
req.on("data", (chunk) => {
|
|
220
|
-
chunks.push(chunk);
|
|
221
|
-
});
|
|
222
|
-
req.on("end", () => {
|
|
223
|
-
resolve(Buffer.concat(chunks));
|
|
224
|
-
});
|
|
225
|
-
req.on("error", (err) => {
|
|
226
|
-
reject(err);
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// src/adapters/node/requestToNodeMessage.ts
|
|
232
|
-
var import_node_stream2 = require("stream");
|
|
233
|
-
var DUMMY_BASE_URL = "http://localhost";
|
|
234
|
-
function requestToNodeMessage(request) {
|
|
235
|
-
const parsedUrl = new URL(request.url, DUMMY_BASE_URL);
|
|
236
|
-
const pathAndQuery = (parsedUrl.pathname || "") + (parsedUrl.search || "");
|
|
237
|
-
const body = (
|
|
238
|
-
/*request.body ? Readable.fromWeb(request.body as any) :*/
|
|
239
|
-
import_node_stream2.Readable.from([])
|
|
240
|
-
);
|
|
241
|
-
return Object.assign(body, {
|
|
242
|
-
url: pathAndQuery,
|
|
243
|
-
method: request.method,
|
|
244
|
-
headers: Object.fromEntries(request.headers)
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// src/adapters/node/createMiddlewareHandler.ts
|
|
249
|
-
function createMiddlewareHandler(handler) {
|
|
250
|
-
return async (ev, next) => {
|
|
251
|
-
const req = requestToNodeMessage(ev.request);
|
|
252
|
-
const { res, onReadable } = nodeMessageToNodeResponse(req);
|
|
253
|
-
return new Promise(async (resolve, reject) => {
|
|
254
|
-
onReadable(async ({ readable, headers, status }) => {
|
|
255
|
-
const responseBody = statusCodesWithoutBody.includes(status) ? null : (
|
|
256
|
-
//(Readable.toWeb(readable) as ReadableStream);
|
|
257
|
-
// HACK: Chunked bodies are not being
|
|
258
|
-
// read correctly somewhere...
|
|
259
|
-
await readableToBuffer(readable)
|
|
260
|
-
);
|
|
261
|
-
ev.response = new Response(responseBody, {
|
|
262
|
-
status,
|
|
263
|
-
headers: flattenHeaders(headers)
|
|
264
|
-
});
|
|
265
|
-
resolve();
|
|
266
|
-
});
|
|
267
|
-
const cnext = async (error) => {
|
|
268
|
-
if (error) {
|
|
269
|
-
reject(error instanceof Error ? error : new Error(String(error)));
|
|
270
|
-
} else {
|
|
271
|
-
await next();
|
|
272
|
-
resolve();
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
|
-
try {
|
|
276
|
-
const handled = await handler(req, res, cnext);
|
|
277
|
-
if (handled === false) {
|
|
278
|
-
res.destroy();
|
|
279
|
-
resolve();
|
|
280
|
-
}
|
|
281
|
-
} catch (e) {
|
|
282
|
-
cnext(e);
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
var statusCodesWithoutBody = [
|
|
288
|
-
100,
|
|
289
|
-
// Continue
|
|
290
|
-
101,
|
|
291
|
-
// Switching Protocols
|
|
292
|
-
102,
|
|
293
|
-
// Processing (WebDAV)
|
|
294
|
-
103,
|
|
295
|
-
// Early Hints
|
|
296
|
-
204,
|
|
297
|
-
// No Content
|
|
298
|
-
205,
|
|
299
|
-
// Reset Content
|
|
300
|
-
304
|
|
301
|
-
// Not Modified
|
|
302
|
-
];
|
|
303
|
-
|
|
304
142
|
// src/response/response.ts
|
|
305
143
|
function response(status, body) {
|
|
306
144
|
let headers = void 0;
|
|
@@ -495,6 +333,167 @@ var RouteHandler = class {
|
|
|
495
333
|
}
|
|
496
334
|
};
|
|
497
335
|
|
|
336
|
+
// src/server/connect/flattenHeaders.ts
|
|
337
|
+
function flattenHeaders(headers) {
|
|
338
|
+
const flatHeaders = new Headers();
|
|
339
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
340
|
+
if (value === void 0 || value === null) {
|
|
341
|
+
continue;
|
|
342
|
+
} else if (Array.isArray(value)) {
|
|
343
|
+
for (const v of value) {
|
|
344
|
+
if (v !== void 0 && v !== null) {
|
|
345
|
+
value.forEach((v2) => flatHeaders.append(key, v2));
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
} else {
|
|
349
|
+
flatHeaders.set(key, String(value));
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return flatHeaders;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
// src/server/connect/nodeMessageToNodeResponse.ts
|
|
356
|
+
var import_node_http = require("http");
|
|
357
|
+
var import_node_stream = require("stream");
|
|
358
|
+
function nodeMessageToNodeResponse(incomingMessage) {
|
|
359
|
+
const res = new import_node_http.ServerResponse(incomingMessage);
|
|
360
|
+
const passThrough = new import_node_stream.PassThrough();
|
|
361
|
+
let handled = false;
|
|
362
|
+
const onReadable = (cb) => {
|
|
363
|
+
const handleReadable = () => {
|
|
364
|
+
if (handled) return;
|
|
365
|
+
handled = true;
|
|
366
|
+
cb({
|
|
367
|
+
readable: import_node_stream.Readable.from(passThrough),
|
|
368
|
+
headers: res.getHeaders(),
|
|
369
|
+
status: res.statusCode
|
|
370
|
+
});
|
|
371
|
+
};
|
|
372
|
+
passThrough.once("readable", handleReadable);
|
|
373
|
+
passThrough.once("end", handleReadable);
|
|
374
|
+
};
|
|
375
|
+
passThrough.once("finish", () => {
|
|
376
|
+
res.emit("finish");
|
|
377
|
+
});
|
|
378
|
+
passThrough.once("close", () => {
|
|
379
|
+
res.destroy();
|
|
380
|
+
res.emit("close");
|
|
381
|
+
});
|
|
382
|
+
passThrough.on("drain", () => {
|
|
383
|
+
res.emit("drain");
|
|
384
|
+
});
|
|
385
|
+
res.write = passThrough.write.bind(passThrough);
|
|
386
|
+
res.end = passThrough.end.bind(passThrough);
|
|
387
|
+
res.writeHead = function writeHead(statusCode, statusMessage, headers) {
|
|
388
|
+
res.statusCode = statusCode;
|
|
389
|
+
if (typeof statusMessage === "object") {
|
|
390
|
+
headers = statusMessage;
|
|
391
|
+
statusMessage = void 0;
|
|
392
|
+
}
|
|
393
|
+
if (headers) {
|
|
394
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
395
|
+
if (value !== void 0) {
|
|
396
|
+
res.setHeader(key, value);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return res;
|
|
401
|
+
};
|
|
402
|
+
return {
|
|
403
|
+
res,
|
|
404
|
+
onReadable
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// src/server/connect/readableToBuffer.ts
|
|
409
|
+
function readableToBuffer(req) {
|
|
410
|
+
return new Promise((resolve, reject) => {
|
|
411
|
+
const chunks = [];
|
|
412
|
+
req.on("data", (chunk) => {
|
|
413
|
+
chunks.push(chunk);
|
|
414
|
+
});
|
|
415
|
+
req.on("end", () => {
|
|
416
|
+
resolve(Buffer.concat(chunks));
|
|
417
|
+
});
|
|
418
|
+
req.on("error", (err) => {
|
|
419
|
+
reject(err);
|
|
420
|
+
});
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
// src/server/connect/requestToNodeMessage.ts
|
|
425
|
+
var import_node_stream2 = require("stream");
|
|
426
|
+
var DUMMY_BASE_URL = "http://localhost";
|
|
427
|
+
function requestToNodeMessage(request) {
|
|
428
|
+
const parsedUrl = new URL(request.url, DUMMY_BASE_URL);
|
|
429
|
+
const pathAndQuery = (parsedUrl.pathname || "") + (parsedUrl.search || "");
|
|
430
|
+
const body = (
|
|
431
|
+
/*request.body ? Readable.fromWeb(request.body as any) :*/
|
|
432
|
+
import_node_stream2.Readable.from([])
|
|
433
|
+
);
|
|
434
|
+
return Object.assign(body, {
|
|
435
|
+
url: pathAndQuery,
|
|
436
|
+
method: request.method,
|
|
437
|
+
headers: Object.fromEntries(request.headers)
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
// src/server/connect/createMiddlewareHandler.ts
|
|
442
|
+
function createMiddlewareHandler(handler) {
|
|
443
|
+
return async (ev, next) => {
|
|
444
|
+
const req = requestToNodeMessage(ev.request);
|
|
445
|
+
const { res, onReadable } = nodeMessageToNodeResponse(req);
|
|
446
|
+
return new Promise(async (resolve, reject) => {
|
|
447
|
+
onReadable(async ({ readable, headers, status }) => {
|
|
448
|
+
const responseBody = statusCodesWithoutBody.includes(status) ? null : (
|
|
449
|
+
//(Readable.toWeb(readable) as ReadableStream);
|
|
450
|
+
// HACK: Chunked bodies are not being
|
|
451
|
+
// read correctly somewhere...
|
|
452
|
+
await readableToBuffer(readable)
|
|
453
|
+
);
|
|
454
|
+
ev.response = new Response(responseBody, {
|
|
455
|
+
status,
|
|
456
|
+
headers: flattenHeaders(headers)
|
|
457
|
+
});
|
|
458
|
+
resolve();
|
|
459
|
+
});
|
|
460
|
+
const cnext = async (error) => {
|
|
461
|
+
if (error) {
|
|
462
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
463
|
+
} else {
|
|
464
|
+
await next();
|
|
465
|
+
resolve();
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
try {
|
|
469
|
+
const handled = await handler(req, res, cnext);
|
|
470
|
+
if (handled === false) {
|
|
471
|
+
res.destroy();
|
|
472
|
+
resolve();
|
|
473
|
+
}
|
|
474
|
+
} catch (e) {
|
|
475
|
+
cnext(e);
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
var statusCodesWithoutBody = [
|
|
481
|
+
100,
|
|
482
|
+
// Continue
|
|
483
|
+
101,
|
|
484
|
+
// Switching Protocols
|
|
485
|
+
102,
|
|
486
|
+
// Processing (WebDAV)
|
|
487
|
+
103,
|
|
488
|
+
// Early Hints
|
|
489
|
+
204,
|
|
490
|
+
// No Content
|
|
491
|
+
205,
|
|
492
|
+
// Reset Content
|
|
493
|
+
304
|
|
494
|
+
// Not Modified
|
|
495
|
+
];
|
|
496
|
+
|
|
498
497
|
// src/site/prepareTemplate.ts
|
|
499
498
|
function prepareTemplate(template, clientScript) {
|
|
500
499
|
let contentStart = regexIndexOf(template, /\<div\s+id=("app"|'app'|app)\s+/);
|
|
@@ -511,8 +510,6 @@ function regexIndexOf(string, regex, position) {
|
|
|
511
510
|
}
|
|
512
511
|
|
|
513
512
|
// src/site/runDev.ts
|
|
514
|
-
var import_meta = {};
|
|
515
|
-
var __dirname = import_node_path3.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url));
|
|
516
513
|
async function runDev(site) {
|
|
517
514
|
const server = new Server();
|
|
518
515
|
const vite = await (0, import_vite4.createServer)({
|
|
@@ -528,8 +525,9 @@ async function runDev(site) {
|
|
|
528
525
|
const templateFile = import_node_path3.default.resolve(site.root, "src/site.html");
|
|
529
526
|
let template = await import_node_fs3.promises.readFile(templateFile, "utf-8");
|
|
530
527
|
template = await vite.transformIndexHtml("", template);
|
|
531
|
-
const
|
|
532
|
-
|
|
528
|
+
const siteFolder = import_node_path3.default.resolve(site.root, "./node_modules/@torpor/build/src/site/");
|
|
529
|
+
let clientScript = import_node_path3.default.join(siteFolder, "clientEntry.ts");
|
|
530
|
+
let serverScript = import_node_path3.default.join(siteFolder, "serverEntry.ts");
|
|
533
531
|
template = prepareTemplate(template, clientScript);
|
|
534
532
|
server.use(createMiddlewareHandler(vite.middlewares));
|
|
535
533
|
server.add("*", async (ev) => {
|