@chuckcchen/vite-plugin 1.0.3 → 1.0.5

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/utils.js CHANGED
@@ -1,58 +1,46 @@
1
1
  /**
2
2
  * EdgeOne Vite Plugin Adapter - Utility Functions Module
3
3
  *
4
- * This module provides a set of general utility functions, including:
4
+ * This module provides utility functions for:
5
5
  * - Logging
6
- * - File system operations (read, write, copy, delete, etc.)
6
+ * - File system operations
7
7
  * - Path detection
8
- * - File size formatting
9
- * - Conditional waiting, etc.
8
+ * - Config file loading
9
+ * - Server wrapper generation
10
+ * - Meta configuration
10
11
  */
11
12
  import fs from "fs/promises";
12
13
  import path from "path";
14
+ import { pathToFileURL } from "url";
15
+ // ============================================================================
16
+ // Logging
17
+ // ============================================================================
13
18
  /**
14
19
  * Create logger instance
15
- *
16
- * @param verbose - Enable verbose logging mode, default is false
17
- * @returns Logger object with log, verbose, warn, error methods
18
- *
19
- * @example
20
- * const logger = createLogger(true);
21
- * logger.verbose("This message only shows in verbose mode");
22
- * logger.warn("This is a warning message");
23
20
  */
24
21
  export function createLogger(verbose = false) {
25
22
  return {
26
- // Normal log, always outputs
27
23
  log: (message, ...args) => {
28
24
  console.log(`[EdgeOne Adapter] ${message}`, ...args);
29
25
  },
30
- // Verbose log, only outputs in verbose mode
31
26
  verbose: (message, ...args) => {
32
27
  if (verbose) {
33
28
  console.log(`[EdgeOne Adapter] ${message}`, ...args);
34
29
  }
35
30
  },
36
- // Warning log with warning icon
37
31
  warn: (message, ...args) => {
38
32
  console.warn(`[EdgeOne Adapter] ⚠️ ${message}`, ...args);
39
33
  },
40
- // Error log with error icon
41
34
  error: (message, ...args) => {
42
35
  console.error(`[EdgeOne Adapter] ❌ ${message}`, ...args);
43
36
  },
44
37
  };
45
38
  }
39
+ // ============================================================================
40
+ // File System Operations
41
+ // ============================================================================
46
42
  /**
47
43
  * Check if specified path exists
48
- *
49
- * @param filePath - File or directory path to check
50
- * @returns True if path exists, false otherwise
51
- *
52
- * @example
53
- * if (await pathExists('/path/to/file')) {
54
- * console.log('File exists');
55
- * }
56
44
  */
57
45
  export async function pathExists(filePath) {
58
46
  try {
@@ -63,200 +51,274 @@ export async function pathExists(filePath) {
63
51
  return false;
64
52
  }
65
53
  }
66
- /**
67
- * Find first existing path from candidate list
68
- *
69
- * @param candidates - Candidate paths array, sorted by priority
70
- * @returns First existing path, or null if none exist
71
- *
72
- * @example
73
- * const buildDir = await findExistingPath([
74
- * '/project/dist',
75
- * '/project/build',
76
- * '/project/output'
77
- * ]);
78
- */
79
- export async function findExistingPath(candidates) {
80
- for (const candidate of candidates) {
81
- if (await pathExists(candidate)) {
82
- return candidate;
83
- }
84
- }
85
- return null;
86
- }
87
54
  /**
88
55
  * Recursively copy directory
89
- * Copy all contents from source directory to destination directory
90
- *
91
- * @param src - Source directory path
92
- * @param dest - Destination directory path
93
- *
94
- * @example
95
- * await copyDirectory('dist/client', '.edgeone/assets');
96
56
  */
97
57
  export async function copyDirectory(src, dest) {
98
58
  await fs.cp(src, dest, { recursive: true });
99
59
  }
100
60
  /**
101
- * Clean directory (delete and recreate)
102
- * Used to ensure directory is in a clean empty state
103
- *
104
- * @param dir - Directory path to clean
105
- *
106
- * @example
107
- * await cleanDirectory('.edgeone');
108
- */
109
- export async function cleanDirectory(dir) {
110
- await fs.rm(dir, { recursive: true, force: true });
111
- await fs.mkdir(dir, { recursive: true });
112
- }
113
- /**
114
- * Ensure directory exists
115
- * Recursively create if directory doesn't exist
116
- *
117
- * @param dir - Directory path
118
- *
119
- * @example
120
- * await ensureDirectory('.edgeone/server-handler');
61
+ * Ensure directory exists (creates recursively if needed)
121
62
  */
122
63
  export async function ensureDirectory(dir) {
123
64
  await fs.mkdir(dir, { recursive: true });
124
65
  }
125
66
  /**
126
67
  * Read file content as string
127
- *
128
- * @param filePath - File path
129
- * @returns File content string (UTF-8 encoded)
130
- *
131
- * @example
132
- * const content = await readFile('dist/server/index.js');
133
68
  */
134
69
  export async function readFile(filePath) {
135
70
  return fs.readFile(filePath, "utf-8");
136
71
  }
137
72
  /**
138
- * Write content to file
139
- * Automatically creates parent directory if it doesn't exist
140
- *
141
- * @param filePath - File path
142
- * @param content - Content to write
143
- *
144
- * @example
145
- * await writeFile('.edgeone/meta.json', JSON.stringify(config));
73
+ * Write content to file (auto-creates parent directory)
146
74
  */
147
75
  export async function writeFile(filePath, content) {
148
- // Ensure parent directory exists
149
76
  await ensureDirectory(path.dirname(filePath));
150
77
  await fs.writeFile(filePath, content);
151
78
  }
152
79
  /**
153
80
  * Delete file
154
- *
155
- * @param filePath - File path to delete
156
- *
157
- * @example
158
- * await deleteFile('server-wrapper.temp.js');
159
81
  */
160
82
  export async function deleteFile(filePath) {
161
83
  await fs.unlink(filePath);
162
84
  }
163
85
  /**
164
- * Format file size to human-readable string
165
- *
166
- * @param bytes - Number of bytes
167
- * @returns Formatted string, e.g. "1.5 KB", "2.3 MB"
168
- *
169
- * @example
170
- * formatSize(1536); // "1.5 KB"
171
- * formatSize(2457600); // "2.34 MB"
86
+ * List files in directory
87
+ * @param dir - Directory path
88
+ * @param logger - Optional logger for verbose error reporting
172
89
  */
173
- export function formatSize(bytes) {
174
- if (bytes === 0)
175
- return "0 B";
176
- const k = 1024;
177
- const sizes = ["B", "KB", "MB", "GB"];
178
- // Calculate appropriate unit level
179
- const i = Math.floor(Math.log(bytes) / Math.log(k));
180
- // Convert and keep two decimal places
181
- return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
90
+ export async function listFiles(dir, logger) {
91
+ try {
92
+ return await fs.readdir(dir);
93
+ }
94
+ catch (error) {
95
+ logger?.verbose(`Failed to list files in ${dir}: ${error instanceof Error ? error.message : String(error)}`);
96
+ return [];
97
+ }
182
98
  }
99
+ // ============================================================================
100
+ // Path Detection
101
+ // ============================================================================
183
102
  /**
184
- * Wait for condition to be met (with retry mechanism)
185
- * Used to wait for async operations to complete, like file writes
186
- *
187
- * @param condition - Async condition function returning boolean
188
- * @param options - Configuration options
189
- * @param options.maxRetries - Maximum retry count, default 15
190
- * @param options.delay - Delay between retries in milliseconds, default 300ms
191
- * @returns True if condition met, false if timeout
192
- *
193
- * @example
194
- * const ready = await waitFor(
195
- * async () => await pathExists('dist/index.html'),
196
- * { maxRetries: 10, delay: 500 }
197
- * );
103
+ * Detect config file from candidate list
198
104
  */
199
- export async function waitFor(condition, options = {}) {
200
- const { maxRetries = 15, delay = 300 } = options;
201
- for (let i = 0; i < maxRetries; i++) {
202
- // Check if condition is met
203
- if (await condition()) {
204
- return true;
105
+ export async function detectConfigFile(projectRoot, patterns) {
106
+ for (const pattern of patterns) {
107
+ const fullPath = path.join(projectRoot, pattern);
108
+ if (await pathExists(fullPath)) {
109
+ return fullPath;
205
110
  }
206
- // If not last attempt, wait then retry
207
- if (i < maxRetries - 1) {
208
- await new Promise((resolve) => setTimeout(resolve, delay));
111
+ }
112
+ return null;
113
+ }
114
+ /**
115
+ * Detect build directory from candidate list
116
+ */
117
+ export async function detectBuildDir(projectRoot, candidates) {
118
+ for (const candidate of candidates) {
119
+ const dirPath = path.join(projectRoot, candidate);
120
+ if (await pathExists(dirPath)) {
121
+ return dirPath;
209
122
  }
210
123
  }
211
- return false;
124
+ return null;
212
125
  }
213
126
  /**
214
- * List files and subdirectory names in directory
215
- *
216
- * @param dir - Directory path
217
- * @returns Array of file and directory names, empty array if directory doesn't exist
218
- *
219
- * @example
220
- * const files = await listFiles('dist/client');
221
- * // ['index.html', 'assets', 'favicon.ico']
127
+ * Detect server entry file from candidate list
222
128
  */
223
- export async function listFiles(dir) {
129
+ export async function detectServerEntry(serverDir, candidates = ["index.js", "index.mjs", "entry.js", "main.js"]) {
130
+ for (const candidate of candidates) {
131
+ const entryPath = path.join(serverDir, candidate);
132
+ if (await pathExists(entryPath)) {
133
+ return entryPath;
134
+ }
135
+ }
136
+ return null;
137
+ }
138
+ /**
139
+ * Dynamically import config file
140
+ */
141
+ /**
142
+ * Dynamically import config file
143
+ * @param configPath - Path to config file
144
+ * @param logger - Optional logger for verbose error reporting
145
+ */
146
+ export async function loadConfigFile(configPath, logger) {
224
147
  try {
225
- return await fs.readdir(dir);
148
+ const fileUrl = pathToFileURL(configPath).href;
149
+ const module = await import(`${fileUrl}?t=${Date.now()}`);
150
+ return module.default;
226
151
  }
227
- catch {
228
- return [];
152
+ catch (importError) {
153
+ logger?.verbose(`Dynamic import failed for ${configPath}: ${importError instanceof Error ? importError.message : String(importError)}`);
154
+ // If dynamic import fails (e.g., TypeScript file), try to parse the file content
155
+ try {
156
+ const content = await fs.readFile(configPath, "utf-8");
157
+ return parseConfigFromContent(content);
158
+ }
159
+ catch (parseError) {
160
+ logger?.verbose(`Config parsing failed for ${configPath}: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
161
+ return null;
162
+ }
229
163
  }
230
164
  }
231
165
  /**
232
- * Recursively count files in directory
233
- *
234
- * @param dir - Directory path
235
- * @returns Total file count (excluding directories)
236
- *
237
- * @example
238
- * const count = await countFiles('dist');
239
- * console.log(`Build artifacts contain ${count} files`);
166
+ * Parse config object from file content (simple extraction for common patterns)
167
+ * This is a fallback when dynamic import fails (e.g., for TypeScript files)
240
168
  */
241
- export async function countFiles(dir) {
242
- let count = 0;
169
+ function parseConfigFromContent(content) {
243
170
  try {
244
- // Get directory contents with type info
245
- const entries = await fs.readdir(dir, { withFileTypes: true });
246
- for (const entry of entries) {
247
- if (entry.isDirectory()) {
248
- // Recursively count subdirectory
249
- count += await countFiles(path.join(dir, entry.name));
250
- }
251
- else {
252
- // Increment file count
253
- count++;
254
- }
171
+ const config = {};
172
+ // Extract ssr: true/false
173
+ const ssrMatch = content.match(/ssr\s*:\s*(true|false)/);
174
+ if (ssrMatch) {
175
+ config.ssr = ssrMatch[1] === "true";
255
176
  }
177
+ // Extract buildDirectory: "..."
178
+ const buildDirMatch = content.match(/buildDirectory\s*:\s*["']([^"']+)["']/);
179
+ if (buildDirMatch) {
180
+ config.buildDirectory = buildDirMatch[1];
181
+ }
182
+ // Extract serverBuildFile: "..."
183
+ const serverBuildFileMatch = content.match(/serverBuildFile\s*:\s*["']([^"']+)["']/);
184
+ if (serverBuildFileMatch) {
185
+ config.serverBuildFile = serverBuildFileMatch[1];
186
+ }
187
+ // Extract serverModuleFormat: "..."
188
+ const serverModuleFormatMatch = content.match(/serverModuleFormat\s*:\s*["']([^"']+)["']/);
189
+ if (serverModuleFormatMatch) {
190
+ config.serverModuleFormat = serverModuleFormatMatch[1];
191
+ }
192
+ return Object.keys(config).length > 0 ? config : null;
256
193
  }
257
194
  catch {
258
- // Ignore errors (e.g. directory doesn't exist)
195
+ return null;
196
+ }
197
+ }
198
+ // ============================================================================
199
+ // Route Helpers
200
+ // ============================================================================
201
+ /**
202
+ * Normalize route path
203
+ */
204
+ export function normalizeRoutePath(routePath) {
205
+ let normalized = routePath.replace(/\/+/g, "/");
206
+ if (!normalized.startsWith("/")) {
207
+ normalized = "/" + normalized;
208
+ }
209
+ if (normalized !== "/" && normalized.endsWith("/")) {
210
+ normalized = normalized.slice(0, -1);
211
+ }
212
+ return normalized;
213
+ }
214
+ // ============================================================================
215
+ // Meta Configuration
216
+ // ============================================================================
217
+ /**
218
+ * Create default meta configuration
219
+ */
220
+ export function createDefaultMeta(routes, options = {}) {
221
+ const { isSSR = false, has404 = false } = options;
222
+ return {
223
+ conf: {
224
+ headers: [],
225
+ redirects: [],
226
+ rewrites: [],
227
+ caches: [],
228
+ has404,
229
+ ssr404: isSSR && !has404,
230
+ },
231
+ has404,
232
+ frameworkRoutes: routes,
233
+ };
234
+ }
235
+ // ============================================================================
236
+ // Server Wrapper Generation
237
+ // ============================================================================
238
+ /** Node.js IncomingMessage to Web Request converter code */
239
+ export const NODE_REQUEST_CONVERTER_CODE = `
240
+ function nodeRequestToWebRequest(nodeReq) {
241
+ const protocol = nodeReq.connection?.encrypted ? 'https' : 'http';
242
+ const host = nodeReq.headers.host || 'localhost';
243
+ const url = \`\${protocol}://\${host}\${nodeReq.url}\`;
244
+
245
+ const headers = new Headers();
246
+ for (const [key, value] of Object.entries(nodeReq.headers)) {
247
+ if (value) {
248
+ if (Array.isArray(value)) {
249
+ value.forEach(v => headers.append(key, v));
250
+ } else {
251
+ headers.set(key, value);
252
+ }
253
+ }
254
+ }
255
+
256
+ const init = {
257
+ method: nodeReq.method,
258
+ headers: headers,
259
+ };
260
+
261
+ if (nodeReq.method !== 'GET' && nodeReq.method !== 'HEAD') {
262
+ init.body = nodeReq;
263
+ }
264
+
265
+ return new Request(url, init);
266
+ }
267
+ `.trim();
268
+ /**
269
+ * Generate server wrapper code
270
+ */
271
+ export async function generateServerWrapperCode(options) {
272
+ const { serverEntryPath, handlerSetup = "", handlerCall, imports = "", needsNodeRequestConversion = true, mode = "inline", additionalExports = [], } = options;
273
+ const parts = [];
274
+ if (mode === "inline") {
275
+ const serverBuildContent = await readFile(serverEntryPath);
276
+ parts.push(`// Server build content`);
277
+ parts.push(serverBuildContent);
278
+ parts.push(``);
279
+ parts.push(`// HTTP server wrapper`);
280
+ }
281
+ else {
282
+ parts.push(`// Server Wrapper for EdgeOne`);
283
+ parts.push(`import server from "${serverEntryPath}";`);
284
+ parts.push(``);
285
+ }
286
+ if (imports) {
287
+ parts.push(imports);
288
+ parts.push(``);
289
+ }
290
+ if (handlerSetup) {
291
+ parts.push(handlerSetup);
292
+ parts.push(``);
293
+ }
294
+ if (needsNodeRequestConversion) {
295
+ parts.push(NODE_REQUEST_CONVERTER_CODE);
296
+ parts.push(``);
297
+ }
298
+ parts.push(`
299
+ async function nodeRequestHandler(nodeReq, ...args) {
300
+ const webRequest = nodeRequestToWebRequest(nodeReq);
301
+ return ${handlerCall};
302
+ }
303
+
304
+ export default nodeRequestHandler;`.trim());
305
+ if (mode === "import" && additionalExports.length > 0) {
306
+ parts.push(`\nexport { ${additionalExports.join(", ")} };`);
307
+ }
308
+ return parts.join("\n");
309
+ }
310
+ // ============================================================================
311
+ // Logging Helpers
312
+ // ============================================================================
313
+ /**
314
+ * Log build artifacts info
315
+ */
316
+ export function logBuildArtifacts(logger, adapterName, artifacts) {
317
+ logger.verbose(`${adapterName} build artifacts:`);
318
+ logger.verbose(` Client: ${artifacts.clientDir || "not found"}`);
319
+ logger.verbose(` Server: ${artifacts.serverDir || "not found"}`);
320
+ if (artifacts.serverEntry) {
321
+ logger.verbose(` Server entry: ${artifacts.serverEntry}`);
259
322
  }
260
- return count;
261
323
  }
262
324
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chuckcchen/vite-plugin",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Core adapter plugin for EdgeOne platform - handles build artifacts, bundling, and deployment configuration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",