fix(core): update

This commit is contained in:
2019-11-15 21:44:11 +01:00
parent 0e9c81b898
commit 2d3f59cc65
5 changed files with 78 additions and 29 deletions

View File

@ -1,25 +1,9 @@
import puppeteer from 'puppeteer';
// module exports
export interface IEnvAwareOptions {
forceNoSandbox?: boolean;
}
export const getEnvAwareBrowserInstance = async (optionsArg: IEnvAwareOptions = {}): Promise<puppeteer.Browser> => {
const options: IEnvAwareOptions = {
...{
forceNoSandbox: false
},
...optionsArg
}
let chromeArgs: string[] = [];
if (process.env.CI || options.forceNoSandbox) {
chromeArgs = chromeArgs.concat(['--no-sandbox', '--disable-setuid-sandbox']);
}
const headlessBrowser = await puppeteer.launch({
args: chromeArgs
});
return headlessBrowser;
};
export * from './smartpuppeteer.classes.smartpuppeteer';
// direct exports
import { puppeteer } from './smartpuppeteer.plugins';
export { puppeteer };

View File

@ -0,0 +1,39 @@
import * as plugins from './smartpuppeteer.plugins';
export interface IEnvAwareOptions {
forceNoSandbox?: boolean;
}
export const getEnvAwareBrowserInstance = async (
optionsArg: IEnvAwareOptions = {}
): Promise<plugins.puppeteer.Browser> => {
const smartenv = new plugins.smartenv.Smartenv();
const options: IEnvAwareOptions = {
...{
forceNoSandbox: false
},
...optionsArg
};
let chromeArgs: string[] = [];
if ((process.env.CI || options.forceNoSandbox) && !smartenv.isWsl) {
chromeArgs = chromeArgs.concat([
'--no-sandbox',
'--disable-setuid-sandbox'
// '--disable-dev-shm-usage'
]);
}
let headlessBrowser: plugins.puppeteer.Browser;
if (!smartenv.isWsl) {
// lets get the actual instance
headlessBrowser = await plugins.puppeteer.launch({
args: chromeArgs
});
} else {
console.log('Detected WSL. Using chromium.');
headlessBrowser = await plugins.puppeteer.launch({executablePath: '/usr/bin/chromium-browser'});
}
return headlessBrowser;
};

View File

@ -0,0 +1,13 @@
// @pushrocks scope
import * as smartenv from '@pushrocks/smartenv';
export {
smartenv
};
// third party scope
import puppeteer from 'puppeteer';
export {
puppeteer
}