diff --git a/packages/puppeteer-extra/package.json b/packages/puppeteer-extra/package.json index 0bf15f90..4873e4c3 100644 --- a/packages/puppeteer-extra/package.json +++ b/packages/puppeteer-extra/package.json @@ -66,7 +66,8 @@ "@types/debug": "^4.1.0", "@types/puppeteer": "*", "debug": "^4.1.1", - "deepmerge": "^4.2.2" + "deepmerge": "^4.2.2", + "is-plain-object": "^5.0.0" }, "gitHead": "babb041828cab50c525e0b9aab02d58f73416ef3" } diff --git a/packages/puppeteer-extra/src/index.ts b/packages/puppeteer-extra/src/index.ts index 4638ba6d..0d2d6389 100644 --- a/packages/puppeteer-extra/src/index.ts +++ b/packages/puppeteer-extra/src/index.ts @@ -4,6 +4,7 @@ import Debug from 'debug' const debug = Debug('puppeteer-extra') import merge from 'deepmerge' +import {isPlainObject} from 'is-plain-object' /** * Original Puppeteer API @@ -153,7 +154,8 @@ export class PuppeteerExtra implements VanillaPuppeteer { async launch(options?: Puppeteer.LaunchOptions): Promise { // Ensure there are certain properties (e.g. the `options.args` array) const defaultLaunchOptions = { args: [] } - options = merge(defaultLaunchOptions, options || {} as any) + options = merge(defaultLaunchOptions, options || {} as any, { "isMergeableObject": isPlainObject }) + this.resolvePluginDependencies() this.orderPlugins()