mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-01 19:25:10 +02:00
d7c732b282
* fix: Windows support — Node.js server fallback for Playwright Setup hangs on Windows 11 because Bun's child_process can't handle Playwright's --remote-debugging-pipe (fd 3/4 pipe handles). Fall back to Node.js on Windows for both the setup verification and server runtime. macOS/Linux completely unaffected — all Windows code behind IS_WINDOWS / process.platform === 'win32' guards. Based on community PR #194 by @sozairali. Fixed sed -i portability (perl -pi -e) in build-node-server.sh for macOS compatibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: cross-platform path handling for Windows compatibility Replace hardcoded '/tmp' and 'dir + "/"' path checks with platform-aware constants from new platform.ts module. On macOS/Linux this evaluates identically ('/tmp', '/'); on Windows it uses os.tmpdir() and path.sep. Zero behavior change on Unix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: add tests for Windows polyfill, platform constants, and Node server resolution Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: Windows support in README + CHANGELOG (v0.9.1.1) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump version and changelog (v0.9.3.0) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
18 lines
634 B
TypeScript
18 lines
634 B
TypeScript
/**
|
|
* Cross-platform constants for gstack browse.
|
|
*
|
|
* On macOS/Linux: TEMP_DIR = '/tmp', path.sep = '/' — identical to hardcoded values.
|
|
* On Windows: TEMP_DIR = os.tmpdir(), path.sep = '\\' — correct Windows behavior.
|
|
*/
|
|
|
|
import * as os from 'os';
|
|
import * as path from 'path';
|
|
|
|
export const IS_WINDOWS = process.platform === 'win32';
|
|
export const TEMP_DIR = IS_WINDOWS ? os.tmpdir() : '/tmp';
|
|
|
|
/** Check if resolvedPath is within dir, using platform-aware separators. */
|
|
export function isPathWithin(resolvedPath: string, dir: string): boolean {
|
|
return resolvedPath === dir || resolvedPath.startsWith(dir + path.sep);
|
|
}
|