in src/debugging/DebugHelper.ts [93:117]
export function resolveDockerServerReadyAction(debugConfiguration: DockerDebugConfiguration, defaultDockerSRA: DockerServerReadyAction, createIfUserUndefined: boolean): DockerServerReadyAction | undefined {
const numBrowserOptions = [debugConfiguration.launchBrowser, debugConfiguration.serverReadyAction, debugConfiguration.dockerServerReadyAction].filter(item => item !== undefined).length;
if (numBrowserOptions > 1) {
// Multiple user-provided options is not valid
throw new Error(localize('vscode-docker.debug.helper.oneBrowserAction', 'Only at most one of the \'launchBrowser\', \'serverReadyAction\', and \'dockerServerReadyAction\' properties may be set at a time.'));
} else if (numBrowserOptions === 1 && !debugConfiguration.dockerServerReadyAction) {
// One user-provided option that is not DockerServerReadyAction--return nothing
return undefined;
} else if (numBrowserOptions === 0 && !createIfUserUndefined) {
// No user-provided option, and not creating if nothing user-defined--return nothing
return undefined;
}
// Otherwise create one based on user-defined and default options
const providedDockerSRA = debugConfiguration.dockerServerReadyAction || {};
return {
containerName: providedDockerSRA.containerName || defaultDockerSRA.containerName,
pattern: providedDockerSRA.pattern || defaultDockerSRA.pattern,
action: providedDockerSRA.action || defaultDockerSRA.action,
uriFormat: providedDockerSRA.uriFormat || defaultDockerSRA.uriFormat,
webRoot: providedDockerSRA.webRoot || defaultDockerSRA.webRoot,
};
}