close

server

  • Type: RsdoctorServerConfig
  • Optional: true
  • Default: {}

Configure the Rsdoctor report server.

port

  • Type: number
  • Optional: true
  • Default: random(3000, 8999)

Configure the port for the Rsdoctor report server.

If server.port is not set, Rsdoctor uses the top-level port option. If both options are set, server.port takes priority.

new RsdoctorRspackPlugin({
  server: {
    port: 3001,
  },
});

cors

  • Type: boolean | RsdoctorServerCorsOptions
  • Optional: true
  • Default: Allows local origins only.

Configure CORS response headers for the Rsdoctor report server.

By default, Rsdoctor allows local origins only:

  • http://localhost and https://localhost
  • localhost subdomains, such as http://foo.localhost
  • http://127.0.0.1 and https://127.0.0.1
  • http://[::1] and https://[::1]

All default local origins can include any port.

Values

  • false: Disable the CORS middleware.
  • true: Use the defaults from the cors package.
  • object: Pass options to the cors middleware. If origin is omitted, Rsdoctor keeps the default local-origin policy. If origin is set, it replaces the default local-origin policy.

Rsdoctor still validates local request hosts separately. The cors option only controls CORS middleware behavior and response headers.

Examples

Allow a custom origin:

new RsdoctorRspackPlugin({
  server: {
    cors: {
      origin: 'https://example.com',
      credentials: true,
    },
  },
});

Keep the default local-origin policy and add other CORS options:

new RsdoctorRspackPlugin({
  server: {
    cors: {
      credentials: true,
      methods: ['GET', 'POST', 'OPTIONS'],
    },
  },
});

Use the cors package defaults:

new RsdoctorRspackPlugin({
  server: {
    cors: true,
  },
});

Type definitions

interface RsdoctorServerConfig {
  port?: number;
  cors?: boolean | RsdoctorServerCorsOptions;
}

type RsdoctorServerCorsStaticOrigin =
  | boolean
  | string
  | RegExp
  | Array<boolean | string | RegExp>;

type RsdoctorServerCorsOrigin =
  | RsdoctorServerCorsStaticOrigin
  | ((
      requestOrigin: string | undefined,
      callback: (
        err: Error | null,
        origin?: RsdoctorServerCorsStaticOrigin,
      ) => void,
    ) => void);

interface RsdoctorServerCorsOptions {
  origin?: RsdoctorServerCorsOrigin;
  methods?: string | string[];
  allowedHeaders?: string | string[];
  exposedHeaders?: string | string[];
  credentials?: boolean;
  maxAge?: number;
  preflightContinue?: boolean;
  optionsSuccessStatus?: number;
}