Skip to content

Commit

Permalink
fix: use chrome-aws-lambda
Browse files Browse the repository at this point in the history
  • Loading branch information
Buzzertech committed Jun 22, 2019
1 parent 2205207 commit 03542ee
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 11 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,14 @@
"dependencies": {
"@ffmpeg-installer/ffmpeg": "^1.0.18",
"axios": "^0.19.0",
"chrome-aws-lambda": "^1.17.1",
"date-fns": "^1.30.1",
"debug": "^4.1.1",
"fluent-ffmpeg": "^2.1.2",
"fs-extra": "^8.0.1",
"googleapis": "^40.0.0",
"lodash": "^4.17.11",
"puppeteer": "^1.17.0",
"puppeteer": "^1.18.0",
"qs": "^6.7.0",
"serverless": "^1.45.1"
}
Expand Down
11 changes: 9 additions & 2 deletions src/video.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import ffmpeg from 'fluent-ffmpeg';
import { PickedTrack } from './audio';
import { Browser, launch } from 'puppeteer';
import chromium from 'chrome-aws-lambda';
import { Browser, LaunchOptions } from 'puppeteer';
import config from './config';
import { IUnsplashResponse } from 'image';
import { imageLogger, videoLogger, durationToSeconds } from './lib/utils';
Expand All @@ -10,7 +11,13 @@ ffmpeg.setFfmpegPath(installer.path);

let window: Browser;

export const launchPage = async () => (window = await launch());
export const launchPage = async (opts?: LaunchOptions) =>
(window = await chromium.puppeteer.launch({
...opts,
args: [...(opts && opts.args ? opts.args : []), ...chromium.args],
defaultViewport: chromium.defaultViewport,
executablePath: await chromium.executablePath,
}));

export const closePage = async () => window && (await window.close());

Expand Down
Binary file not shown.
13 changes: 9 additions & 4 deletions test/video.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
import { launchPage, closePage, prepareSvg, generateImage } from '../src/video';
import puppeteer from 'puppeteer';
import { puppeteer } from 'chrome-aws-lambda';
import { LaunchOptions } from 'puppeteer';
import fs from 'fs-extra';
import { toMatchImageSnapshot } from 'jest-image-snapshot';

expect.extend({ toMatchImageSnapshot });

const PUPPETEER_OPTS: LaunchOptions = {
args: ['-disable-sandbox', '–disable-setuid-sandbox'],
};

describe('video', () => {
afterAll(async () => await closePage());
describe('#launchPage', () => {
Expand All @@ -21,7 +26,7 @@ describe('video', () => {
afterAll(() => jest.restoreAllMocks());

it('create a new browser instance', async () => {
await launchPage();
await launchPage(PUPPETEER_OPTS);
expect(launchSpy).toHaveBeenCalled();
});
});
Expand All @@ -30,7 +35,7 @@ describe('video', () => {
let closePageSpy: jest.SpyInstance;

beforeAll(async () => {
const window = await launchPage();
const window = await launchPage(PUPPETEER_OPTS);
closePageSpy = jest.spyOn(window, 'close');
});

Expand All @@ -53,7 +58,7 @@ describe('video', () => {
let svgStr: string;

beforeAll(async () => {
await launchPage();
await launchPage(PUPPETEER_OPTS);
svgStr = prepareSvg(
'https://placehold.it/1920x1080',
'Sandstorm',
Expand Down
13 changes: 9 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1573,6 +1573,11 @@ chownr@^1.1.1:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==

chrome-aws-lambda@^1.17.1:
version "1.17.1"
resolved "https://registry.yarnpkg.com/chrome-aws-lambda/-/chrome-aws-lambda-1.17.1.tgz#d3ca2ae13a5cacd465582a9084c07976adc1ff3a"
integrity sha512-ooUkcyWRUyRLg4XCEVbM0fKMQUf5XRWb1flc1755w/0S9UMp+5fT0MRl0YQLlU2WIDo82fqWLY7mKtuBPkTOmg==

chrome-trace-event@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48"
Expand Down Expand Up @@ -5795,10 +5800,10 @@ punycode@^2.1.0, punycode@^2.1.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==

puppeteer@^1.17.0:
version "1.17.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.17.0.tgz#371957d227a2f450fa74b78e78a2dadb2be7f14f"
integrity sha512-3EXZSximCzxuVKpIHtyec8Wm2dWZn1fc5tQi34qWfiUgubEVYHjUvr0GOJojqf3mifI6oyKnCdrGxaOI+lWReA==
puppeteer@^1.18.0:
version "1.18.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.18.0.tgz#227bccc52806db37b3ccf762a7d95c06163f296e"
integrity sha512-NCwSN4wEIj43k4jO8Asa5nzibrIDFHWykqkZFjkGr0/f6U73k1ysql0gadQmOGLtZewXvvWqlNo+4ZMgX+5vZA==
dependencies:
debug "^4.1.0"
extract-zip "^1.6.6"
Expand Down

0 comments on commit 03542ee

Please sign in to comment.