Skip to content

Commit

Permalink
fix: make projectRoot optional in Puppeteer and launchers (#7967)
Browse files Browse the repository at this point in the history
  • Loading branch information
OrKoN committed Feb 7, 2022
1 parent 09ff56b commit 9afdc63
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
4 changes: 0 additions & 4 deletions src/initialize-node.ts
Expand Up @@ -34,10 +34,6 @@ export const initializePuppeteerNode = (packageName: string): PuppeteerNode => {
if (!isPuppeteerCore && productName === 'firefox')
preferredRevision = PUPPETEER_REVISIONS.firefox;

if (!puppeteerRootDirectory) {
throw new Error('puppeteerRootDirectory is not found.');
}

return new PuppeteerNode({
projectRoot: puppeteerRootDirectory,
preferredRevision,
Expand Down
20 changes: 15 additions & 5 deletions src/node/Launcher.ts
Expand Up @@ -52,12 +52,12 @@ export interface ProductLauncher {
* @internal
*/
class ChromeLauncher implements ProductLauncher {
_projectRoot: string;
_projectRoot: string | undefined;
_preferredRevision: string;
_isPuppeteerCore: boolean;

constructor(
projectRoot: string,
projectRoot: string | undefined,
preferredRevision: string,
isPuppeteerCore: boolean
) {
Expand Down Expand Up @@ -276,12 +276,12 @@ class ChromeLauncher implements ProductLauncher {
* @internal
*/
class FirefoxLauncher implements ProductLauncher {
_projectRoot: string;
_projectRoot: string | undefined;
_preferredRevision: string;
_isPuppeteerCore: boolean;

constructor(
projectRoot: string,
projectRoot: string | undefined,
preferredRevision: string,
isPuppeteerCore: boolean
) {
Expand Down Expand Up @@ -428,6 +428,11 @@ class FirefoxLauncher implements ProductLauncher {
async _updateRevision(): Promise<void> {
// replace 'latest' placeholder with actual downloaded revision
if (this._preferredRevision === 'latest') {
if (!this._projectRoot) {
throw new Error(
'_projectRoot is undefined. Unable to create a BrowserFetcher.'
);
}
const browserFetcher = new BrowserFetcher(this._projectRoot, {
product: this.product,
});
Expand Down Expand Up @@ -813,6 +818,11 @@ function resolveExecutablePath(launcher: ChromeLauncher | FirefoxLauncher): {
process.env.npm_config_puppeteer_download_path ||
process.env.npm_package_config_puppeteer_download_path;
}
if (!launcher._projectRoot) {
throw new Error(
'_projectRoot is undefined. Unable to create a BrowserFetcher.'
);
}
const browserFetcher = new BrowserFetcher(launcher._projectRoot, {
product: launcher.product,
path: downloadPath,
Expand Down Expand Up @@ -845,7 +855,7 @@ function resolveExecutablePath(launcher: ChromeLauncher | FirefoxLauncher): {
* @internal
*/
export default function Launcher(
projectRoot: string,
projectRoot: string | undefined,
preferredRevision: string,
isPuppeteerCore: boolean,
product?: string
Expand Down
9 changes: 7 additions & 2 deletions src/node/Puppeteer.ts
Expand Up @@ -67,7 +67,7 @@ import { Product } from '../common/Product.js';
*/
export class PuppeteerNode extends Puppeteer {
private _lazyLauncher?: ProductLauncher;
private _projectRoot: string;
private _projectRoot?: string;
private __productName?: Product;
/**
* @internal
Expand All @@ -79,7 +79,7 @@ export class PuppeteerNode extends Puppeteer {
*/
constructor(
settings: {
projectRoot: string;
projectRoot?: string;
preferredRevision: string;
productName?: Product;
} & CommonPuppeteerSettings
Expand Down Expand Up @@ -224,6 +224,11 @@ export class PuppeteerNode extends Puppeteer {
* @returns A new BrowserFetcher instance.
*/
createBrowserFetcher(options: BrowserFetcherOptions): BrowserFetcher {
if (!this._projectRoot) {
throw new Error(
'_projectRoot is undefined. Unable to create a BrowserFetcher.'
);
}
return new BrowserFetcher(this._projectRoot, options);
}
}

0 comments on commit 9afdc63

Please sign in to comment.