Skip to content

Commit

Permalink
feat(core): allow clientPort to be set for proxied environments (e.g.…
Browse files Browse the repository at this point in the history
… GitHub Codespaces)
  • Loading branch information
fwouts committed Dec 2, 2023
1 parent 250fa03 commit 70a2306
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 3 deletions.
4 changes: 3 additions & 1 deletion core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export async function createWorkspace({
typeAnalyzer: frameworkPlugin.typeAnalyzer,
rootDir,
reader,
startServer: async ({ port, onStop } = {}) => {
startServer: async ({ port, clientPort, onStop } = {}) => {
port ||= await getFreePort(3140);
const router = new ApiRouter(logger);
router.registerRPC(RPCs.Analyze, async ({ previewableIds }) => {
Expand Down Expand Up @@ -199,6 +199,7 @@ export async function createWorkspace({
logger,
middlewares,
port,
clientPort,
});
await previewer.start();
activePreviewers.add(previewer);
Expand Down Expand Up @@ -246,6 +247,7 @@ export interface Workspace {
crawlFiles: Analyzer["crawlFiles"];
startServer: (options?: {
port?: number;
clientPort?: number;
onStop?: () => void;
}) => Promise<PreviewServer>;
dispose(): Promise<void>;
Expand Down
2 changes: 2 additions & 0 deletions core/src/previewer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export class Previewer {
frameworkPlugin: FrameworkPlugin;
middlewares: express.RequestHandler[];
port: number;
clientPort?: number;
}
) {
this.transformingReader = createStackedReader([
Expand Down Expand Up @@ -150,6 +151,7 @@ export class Previewer {
frameworkPlugin: this.options.frameworkPlugin,
server,
port: this.options.port,
clientPort: this.options.clientPort,
});
this.viteManager.start();
this.options.logger.debug(`Previewer ready`);
Expand Down
3 changes: 2 additions & 1 deletion core/src/vite/vite-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ export class ViteManager {
frameworkPlugin: FrameworkPlugin;
server: Server;
port: number;
clientPort?: number;
}
) {
const router = express.Router();
Expand Down Expand Up @@ -379,7 +380,7 @@ export class ViteManager {
hmr: {
overlay: false,
server: this.options.server,
clientPort: this.options.port,
clientPort: this.options.clientPort || this.options.port,
...(typeof config.vite?.server?.hmr === "object"
? config.vite?.server?.hmr
: {}),
Expand Down
2 changes: 2 additions & 0 deletions daemon/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ export type CrawlFileResponse =

export type StartPreviewRequest = {
rootDir: string;
port?: number;
clientPort?: number;
};

export type StartPreviewResponse = {
Expand Down
4 changes: 3 additions & 1 deletion daemon/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ export async function startDaemon({

endpoint<StartPreviewRequest, StartPreviewResponse>(
"/previews/start",
async ({ rootDir }) =>
async ({ rootDir, port, clientPort }) =>
inWorkspace<StartPreviewResponse>(rootDir, async (workspace) => {
if (workspace?.rootDir !== rootDir) {
throw new NotFoundError();
Expand All @@ -203,6 +203,8 @@ export async function startDaemon({
if (!previewServer) {
previewServer = previewServers[rootDir] = await workspace.startServer(
{
port,
clientPort,
onStop: () => {
delete previewServers[rootDir];
},
Expand Down

0 comments on commit 70a2306

Please sign in to comment.