@donkeylabs/adapter-sveltekit 2.0.14 → 2.0.16
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/dist/client/index.d.ts +231 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +501 -0
- package/dist/generator/index.d.ts +17 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +330 -0
- package/dist/hooks/index.d.ts +53 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +96 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +51 -120
- package/dist/vite.d.ts +71 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +611 -0
- package/package.json +16 -14
- package/src/client/index.ts +0 -659
- package/src/generator/index.ts +0 -401
- package/src/hooks/index.ts +0 -124
- package/src/vite.ts +0 -729
|
@@ -6,125 +6,60 @@
|
|
|
6
6
|
* - Direct service calls during SSR (no HTTP overhead)
|
|
7
7
|
* - Unified API client works in both SSR and browser
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
import type { Adapter, Builder } from "@sveltejs/kit";
|
|
11
9
|
import { fileURLToPath } from "node:url";
|
|
12
10
|
import { dirname, join, relative, resolve } from "node:path";
|
|
13
11
|
import { writeFileSync, mkdirSync } from "node:fs";
|
|
14
|
-
|
|
15
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
16
13
|
const __dirname = dirname(__filename);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
name: "@donkeylabs/adapter-sveltekit",
|
|
63
|
-
|
|
64
|
-
async adapt(builder: Builder) {
|
|
65
|
-
const serverDir = join(out, "server");
|
|
66
|
-
const clientDir = join(out, "client");
|
|
67
|
-
const prerenderedDir = join(out, "prerendered");
|
|
68
|
-
|
|
69
|
-
// 1. Clean and create output directories
|
|
70
|
-
builder.rimraf(out);
|
|
71
|
-
mkdirSync(serverDir, { recursive: true });
|
|
72
|
-
|
|
73
|
-
builder.log.minor("Writing SvelteKit server files...");
|
|
74
|
-
|
|
75
|
-
// 2. Write SvelteKit server files
|
|
76
|
-
builder.writeServer(serverDir);
|
|
77
|
-
|
|
78
|
-
// 3. Copy static assets and prerendered pages
|
|
79
|
-
const clientFiles = builder.writeClient(clientDir);
|
|
80
|
-
const prerenderedFiles = builder.writePrerendered(prerenderedDir);
|
|
81
|
-
|
|
82
|
-
// 4. Generate the manifest
|
|
83
|
-
const relativePath = relative(serverDir, ".");
|
|
84
|
-
builder.generateManifest({ relativePath });
|
|
85
|
-
|
|
86
|
-
// 5. Generate the unified runtime entry point
|
|
87
|
-
const serverEntryResolved = resolve(serverEntry);
|
|
88
|
-
const serverEntryRelative = relative(serverDir, serverEntryResolved);
|
|
89
|
-
|
|
90
|
-
const entryCode = generateEntryPoint({
|
|
91
|
-
serverEntryRelative,
|
|
92
|
-
envPrefix,
|
|
93
|
-
development,
|
|
94
|
-
clientDir: relative(serverDir, clientDir),
|
|
95
|
-
prerenderedDir: relative(serverDir, prerenderedDir),
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
writeFileSync(join(serverDir, "entry.js"), entryCode);
|
|
99
|
-
|
|
100
|
-
// 6. Write runtime handler (inline the full implementation)
|
|
101
|
-
writeFileSync(join(serverDir, "handler.js"), generateRuntimeHandler());
|
|
102
|
-
|
|
103
|
-
// 7. Precompress if enabled
|
|
104
|
-
if (precompress) {
|
|
105
|
-
builder.log.minor("Compressing assets...");
|
|
106
|
-
await builder.compress(clientDir);
|
|
107
|
-
if (prerenderedFiles.length > 0) {
|
|
108
|
-
await builder.compress(prerenderedDir);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
builder.log.success(`Adapter output written to ${out}`);
|
|
113
|
-
builder.log.minor(`Run with: bun ${out}/server/entry.js`);
|
|
114
|
-
},
|
|
115
|
-
};
|
|
14
|
+
export default function adapter(options = {}) {
|
|
15
|
+
const { out = "build", serverEntry = "./src/server/index.ts", precompress = true, envPrefix = "", development = false, } = options;
|
|
16
|
+
return {
|
|
17
|
+
name: "@donkeylabs/adapter-sveltekit",
|
|
18
|
+
async adapt(builder) {
|
|
19
|
+
const serverDir = join(out, "server");
|
|
20
|
+
const clientDir = join(out, "client");
|
|
21
|
+
const prerenderedDir = join(out, "prerendered");
|
|
22
|
+
// 1. Clean and create output directories
|
|
23
|
+
builder.rimraf(out);
|
|
24
|
+
mkdirSync(serverDir, { recursive: true });
|
|
25
|
+
builder.log.minor("Writing SvelteKit server files...");
|
|
26
|
+
// 2. Write SvelteKit server files
|
|
27
|
+
builder.writeServer(serverDir);
|
|
28
|
+
// 3. Copy static assets and prerendered pages
|
|
29
|
+
const clientFiles = builder.writeClient(clientDir);
|
|
30
|
+
const prerenderedFiles = builder.writePrerendered(prerenderedDir);
|
|
31
|
+
// 4. Generate the manifest
|
|
32
|
+
const relativePath = relative(serverDir, ".");
|
|
33
|
+
builder.generateManifest({ relativePath });
|
|
34
|
+
// 5. Generate the unified runtime entry point
|
|
35
|
+
const serverEntryResolved = resolve(serverEntry);
|
|
36
|
+
const serverEntryRelative = relative(serverDir, serverEntryResolved);
|
|
37
|
+
const entryCode = generateEntryPoint({
|
|
38
|
+
serverEntryRelative,
|
|
39
|
+
envPrefix,
|
|
40
|
+
development,
|
|
41
|
+
clientDir: relative(serverDir, clientDir),
|
|
42
|
+
prerenderedDir: relative(serverDir, prerenderedDir),
|
|
43
|
+
});
|
|
44
|
+
writeFileSync(join(serverDir, "entry.js"), entryCode);
|
|
45
|
+
// 6. Write runtime handler (inline the full implementation)
|
|
46
|
+
writeFileSync(join(serverDir, "handler.js"), generateRuntimeHandler());
|
|
47
|
+
// 7. Precompress if enabled
|
|
48
|
+
if (precompress) {
|
|
49
|
+
builder.log.minor("Compressing assets...");
|
|
50
|
+
await builder.compress(clientDir);
|
|
51
|
+
if (prerenderedFiles.length > 0) {
|
|
52
|
+
await builder.compress(prerenderedDir);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
builder.log.success(`Adapter output written to ${out}`);
|
|
56
|
+
builder.log.minor(`Run with: bun ${out}/server/entry.js`);
|
|
57
|
+
},
|
|
58
|
+
};
|
|
116
59
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
envPrefix: string;
|
|
121
|
-
development: boolean;
|
|
122
|
-
clientDir: string;
|
|
123
|
-
prerenderedDir: string;
|
|
124
|
-
}): string {
|
|
125
|
-
const { serverEntryRelative, envPrefix, development, clientDir, prerenderedDir } = config;
|
|
126
|
-
|
|
127
|
-
return `// Generated by @donkeylabs/adapter-sveltekit
|
|
60
|
+
function generateEntryPoint(config) {
|
|
61
|
+
const { serverEntryRelative, envPrefix, development, clientDir, prerenderedDir } = config;
|
|
62
|
+
return `// Generated by @donkeylabs/adapter-sveltekit
|
|
128
63
|
import { Server } from "./index.js";
|
|
129
64
|
import { manifest } from "./manifest.js";
|
|
130
65
|
import { createUnifiedServer } from "./handler.js";
|
|
@@ -166,10 +101,9 @@ createUnifiedServer({
|
|
|
166
101
|
console.log(\`Server running at http://\${host}:\${port}\`);
|
|
167
102
|
`;
|
|
168
103
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
return `// Generated runtime handler by @donkeylabs/adapter-sveltekit
|
|
104
|
+
function generateRuntimeHandler() {
|
|
105
|
+
// Inline the full runtime handler implementation
|
|
106
|
+
return `// Generated runtime handler by @donkeylabs/adapter-sveltekit
|
|
173
107
|
import { resolve, dirname } from "node:path";
|
|
174
108
|
import { fileURLToPath } from "node:url";
|
|
175
109
|
|
|
@@ -386,6 +320,3 @@ function getCorsHeaders() {
|
|
|
386
320
|
}
|
|
387
321
|
`;
|
|
388
322
|
}
|
|
389
|
-
|
|
390
|
-
// Re-export types
|
|
391
|
-
export type { AdapterOptions as Options };
|
package/dist/vite.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite plugin for @donkeylabs/adapter-sveltekit dev server integration
|
|
3
|
+
*
|
|
4
|
+
* Supports two modes:
|
|
5
|
+
* - `bun --bun run dev`: Single-process mode (in-process, one port)
|
|
6
|
+
* - `bun run dev`: Subprocess mode (two processes, proxy)
|
|
7
|
+
*/
|
|
8
|
+
import type { Plugin } from "vite";
|
|
9
|
+
export interface DevPluginOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Path to your @donkeylabs/server entry file.
|
|
12
|
+
* This file should export a configured AppServer instance.
|
|
13
|
+
*
|
|
14
|
+
* @default "./src/server/index.ts"
|
|
15
|
+
*/
|
|
16
|
+
serverEntry?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Port for the backend server (subprocess mode only).
|
|
19
|
+
* @default 3001
|
|
20
|
+
*/
|
|
21
|
+
backendPort?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Watch server files and auto-regenerate types on changes.
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
watchTypes?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Directory to watch for server file changes.
|
|
29
|
+
* @default "./src/server"
|
|
30
|
+
*/
|
|
31
|
+
watchDir?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Enable hot reload for route files (dev mode only).
|
|
34
|
+
* When a route file changes, the router will be reloaded without server restart.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
hotReloadRoutes?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Glob patterns for route files to watch for hot reload.
|
|
40
|
+
* @default ["**\/routes\/**\/*.ts"]
|
|
41
|
+
*/
|
|
42
|
+
routePatterns?: string[];
|
|
43
|
+
}
|
|
44
|
+
declare global {
|
|
45
|
+
var __donkeylabs_dev_server__: any;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the global app server instance for SSR direct calls.
|
|
49
|
+
* This allows hooks to access the server without HTTP.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getDevServer(): any;
|
|
52
|
+
/**
|
|
53
|
+
* Vite plugin that integrates @donkeylabs/server with the dev server.
|
|
54
|
+
*
|
|
55
|
+
* - With `bun --bun run dev`: Runs in-process (single port, recommended)
|
|
56
|
+
* - With `bun run dev`: Spawns subprocess (two ports, fallback)
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // vite.config.ts
|
|
60
|
+
* import { donkeylabsDev } from "@donkeylabs/adapter-sveltekit/vite";
|
|
61
|
+
*
|
|
62
|
+
* export default defineConfig({
|
|
63
|
+
* plugins: [
|
|
64
|
+
* donkeylabsDev({ serverEntry: "./src/server/index.ts" }),
|
|
65
|
+
* sveltekit()
|
|
66
|
+
* ]
|
|
67
|
+
* });
|
|
68
|
+
*/
|
|
69
|
+
export declare function donkeylabsDev(options?: DevPluginOptions): Plugin;
|
|
70
|
+
export default donkeylabsDev;
|
|
71
|
+
//# sourceMappingURL=vite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AASlD,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,yBAAyB,EAAE,GAAG,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,GAAG,CAElC;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAsnBpE;AAED,eAAe,aAAa,CAAC"}
|