puppeteer#BrowserContext TypeScript Examples
The following examples show how to use
puppeteer#BrowserContext.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: puppeteer.providers.ts From nest-puppeteer with MIT License | 6 votes |
export function createPuppeteerProviders(
instanceName?: string,
pages: string[] = [],
) {
return pages.map(page => ({
provide: getPageToken(page),
useFactory: (context: BrowserContext) => context.newPage(),
inject: [getContextToken(instanceName)],
}));
}
Example #2
Source File: crawler.controller.ts From nest-puppeteer with MIT License | 5 votes |
constructor(
@InjectContext() private readonly context: BrowserContext,
private readonly crawlerService: CrawlerService,
) {}
Example #3
Source File: puppeteer-core.module.ts From nest-puppeteer with MIT License | 5 votes |
static forRoot(
launchOptions: LaunchOptions = DEFAULT_CHROME_LAUNCH_OPTIONS,
instanceName: string = DEFAULT_PUPPETEER_INSTANCE_NAME,
): DynamicModule {
const instanceNameProvider = {
provide: PUPPETEER_INSTANCE_NAME,
useValue: instanceName,
};
const browserProvider = {
provide: getBrowserToken(instanceName),
async useFactory() {
return await launch(launchOptions);
},
};
const contextProvider = {
provide: getContextToken(instanceName),
async useFactory(browser: Browser) {
return browser.createIncognitoBrowserContext();
},
inject: [getBrowserToken(instanceName)],
};
const pageProvider = {
provide: getPageToken(instanceName),
async useFactory(context: BrowserContext) {
return await context.newPage();
},
inject: [getContextToken(instanceName)],
};
return {
module: PuppeteerCoreModule,
providers: [
instanceNameProvider,
browserProvider,
contextProvider,
pageProvider,
],
exports: [browserProvider, contextProvider, pageProvider],
};
}
Example #4
Source File: puppeteer-core.module.ts From nest-puppeteer with MIT License | 5 votes |
static forRootAsync(options: PuppeteerModuleAsyncOptions): DynamicModule {
const puppeteerInstanceName =
options.instanceName ?? DEFAULT_PUPPETEER_INSTANCE_NAME;
const instanceNameProvider = {
provide: PUPPETEER_INSTANCE_NAME,
useValue: puppeteerInstanceName,
};
const browserProvider = {
provide: getBrowserToken(puppeteerInstanceName),
async useFactory(puppeteerModuleOptions: PuppeteerModuleOptions) {
return await launch(
puppeteerModuleOptions.launchOptions ?? DEFAULT_CHROME_LAUNCH_OPTIONS,
);
},
inject: [PUPPETEER_MODULE_OPTIONS],
};
const contextProvider = {
provide: getContextToken(puppeteerInstanceName),
async useFactory(browser: Browser) {
return await browser.createIncognitoBrowserContext();
},
inject: [
PUPPETEER_MODULE_OPTIONS,
getBrowserToken(puppeteerInstanceName),
],
};
const pageProvider = {
provide: getPageToken(puppeteerInstanceName),
async useFactory(context: BrowserContext) {
return await context.newPage();
},
inject: [
PUPPETEER_MODULE_OPTIONS,
getContextToken(puppeteerInstanceName),
],
};
const asyncProviders = this.createAsyncProviders(options);
return {
module: PuppeteerCoreModule,
imports: options.imports,
providers: [
...asyncProviders,
browserProvider,
contextProvider,
pageProvider,
instanceNameProvider,
],
exports: [browserProvider, contextProvider, pageProvider],
};
}